Check-in [3613fe5666]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
SHA1 Hash:3613fe5666661355764d4300fcdb4b71f1e5c662
Date: 2012-05-12 19:03:50
User: drh
Comment:Update the built-in SQLite to the first 3.7.12 release candidate.
Tags And Properties
Changes

Changes to src/sqlite3.c

655 ** 655 ** 656 ** See also: [sqlite3_libversion()], 656 ** See also: [sqlite3_libversion()], 657 ** [sqlite3_libversion_number()], [sqlite3_sourceid()], 657 ** [sqlite3_libversion_number()], [sqlite3_sourceid()], 658 ** [sqlite_version()] and [sqlite_source_id()]. 658 ** [sqlite_version()] and [sqlite_source_id()]. 659 */ 659 */ 660 #define SQLITE_VERSION "3.7.12" 660 #define SQLITE_VERSION "3.7.12" 661 #define SQLITE_VERSION_NUMBER 3007012 661 #define SQLITE_VERSION_NUMBER 3007012 662 #define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e8 | 662 #define SQLITE_SOURCE_ID "2012-05-12 18:29:53 e536ac041815b118c461ceee798f9 663 663 664 /* 664 /* 665 ** CAPI3REF: Run-Time Library Version Numbers 665 ** CAPI3REF: Run-Time Library Version Numbers 666 ** KEYWORDS: sqlite3_version, sqlite3_sourceid 666 ** KEYWORDS: sqlite3_version, sqlite3_sourceid 667 ** 667 ** 668 ** These interfaces provide the same information as the [SQLITE_VERSION], 668 ** These interfaces provide the same information as the [SQLITE_VERSION], 669 ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros 669 ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros ................................................................................................................................................................................ 6561 ** [[SQLITE_DBSTATUS_CACHE_WRITE]] ^(<dt>SQLITE_DBSTATUS_CACHE_WRITE</dt> 6561 ** [[SQLITE_DBSTATUS_CACHE_WRITE]] ^(<dt>SQLITE_DBSTATUS_CACHE_WRITE</dt> 6562 ** <dd>This parameter returns the number of dirty cache entries that have 6562 ** <dd>This parameter returns the number of dirty cache entries that have 6563 ** been written to disk. Specifically, the number of pages written to the 6563 ** been written to disk. Specifically, the number of pages written to the 6564 ** wal file in wal mode databases, or the number of pages written to the 6564 ** wal file in wal mode databases, or the number of pages written to the 6565 ** database file in rollback mode databases. Any pages written as part of 6565 ** database file in rollback mode databases. Any pages written as part of 6566 ** transaction rollback or database recovery operations are not included. 6566 ** transaction rollback or database recovery operations are not included. 6567 ** If an IO or other error occurs while writing a page to disk, the effect 6567 ** If an IO or other error occurs while writing a page to disk, the effect 6568 ** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined). ^The | 6568 ** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined.)^ ^The 6569 ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. 6569 ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. 6570 ** </dd> 6570 ** </dd> 6571 ** </dl> 6571 ** </dl> 6572 */ 6572 */ 6573 #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 6573 #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 6574 #define SQLITE_DBSTATUS_CACHE_USED 1 6574 #define SQLITE_DBSTATUS_CACHE_USED 1 6575 #define SQLITE_DBSTATUS_SCHEMA_USED 2 6575 #define SQLITE_DBSTATUS_SCHEMA_USED 2 ................................................................................................................................................................................ 104673 return 1; 104673 return 1; 104674 } 104674 } 104675 if( pIdx->onError!=OE_None && i==pIdx->nColumn 104675 if( pIdx->onError!=OE_None && i==pIdx->nColumn 104676 && (wsFlags & WHERE_COLUMN_NULL)==0 104676 && (wsFlags & WHERE_COLUMN_NULL)==0 104677 && !referencesOtherTables(pOrderBy, pMaskSet, j, base) 104677 && !referencesOtherTables(pOrderBy, pMaskSet, j, base) 104678 ){ 104678 ){ 104679 Column *aCol = pIdx->pTable->aCol; 104679 Column *aCol = pIdx->pTable->aCol; 104680 int i; < 104681 104680 104682 /* All terms of this index match some prefix of the ORDER BY clause, 104681 /* All terms of this index match some prefix of the ORDER BY clause, 104683 ** the index is UNIQUE, and no terms on the tail of the ORDER BY 104682 ** the index is UNIQUE, and no terms on the tail of the ORDER BY 104684 ** refer to other tables in a join. So, assuming that the index entries 104683 ** refer to other tables in a join. So, assuming that the index entries 104685 ** visited contain no NULL values, then this index delivers rows in 104684 ** visited contain no NULL values, then this index delivers rows in 104686 ** the required order. 104685 ** the required order. 104687 ** 104686 ** ................................................................................................................................................................................ 108442 #ifndef YYSTACKDEPTH 108441 #ifndef YYSTACKDEPTH 108443 #define YYSTACKDEPTH 100 108442 #define YYSTACKDEPTH 100 108444 #endif 108443 #endif 108445 #define sqlite3ParserARG_SDECL Parse *pParse; 108444 #define sqlite3ParserARG_SDECL Parse *pParse; 108446 #define sqlite3ParserARG_PDECL ,Parse *pParse 108445 #define sqlite3ParserARG_PDECL ,Parse *pParse 108447 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse 108446 #define sqlite3ParserARG_FETCH Parse *pParse = yypParser->pParse 108448 #define sqlite3ParserARG_STORE yypParser->pParse = pParse 108447 #define sqlite3ParserARG_STORE yypParser->pParse = pParse 108449 #define YYNSTATE 630 | 108448 #define YYNSTATE 627 108450 #define YYNRULE 327 108449 #define YYNRULE 327 108451 #define YYFALLBACK 1 108450 #define YYFALLBACK 1 108452 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) 108451 #define YY_NO_ACTION (YYNSTATE+YYNRULE+2) 108453 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) 108452 #define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) 108454 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) 108453 #define YY_ERROR_ACTION (YYNSTATE+YYNRULE) 108455 108454 108456 /* The yyzerominor constant is used to initialize instances of 108455 /* The yyzerominor constant is used to initialize instances of ................................................................................................................................................................................ 108513 ** yy_action. Used to detect hash collisions. 108512 ** yy_action. Used to detect hash collisions. 108514 ** yy_shift_ofst[] For each state, the offset into yy_action for 108513 ** yy_shift_ofst[] For each state, the offset into yy_action for 108515 ** shifting terminals. 108514 ** shifting terminals. 108516 ** yy_reduce_ofst[] For each state, the offset into yy_action for 108515 ** yy_reduce_ofst[] For each state, the offset into yy_action for 108517 ** shifting non-terminals after a reduce. 108516 ** shifting non-terminals after a reduce. 108518 ** yy_default[] Default action for each state. 108517 ** yy_default[] Default action for each state. 108519 */ 108518 */ 108520 #define YY_ACTTAB_COUNT (1562) | 108519 #define YY_ACTTAB_COUNT (1564) 108521 static const YYACTIONTYPE yy_action[] = { 108520 static const YYACTIONTYPE yy_action[] = { 108522 /* 0 */ 312, 330, 575, 574, 15, 171, 186, 597, 56, 56, | 108521 /* 0 */ 309, 955, 184, 417, 2, 171, 624, 594, 56, 56, 108523 /* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52, 108522 /* 10 */ 56, 56, 49, 54, 54, 54, 54, 53, 53, 52, 108524 /* 20 */ 52, 52, 51, 235, 52, 52, 52, 51, 235, 627, | 108523 /* 20 */ 52, 52, 51, 233, 620, 619, 298, 620, 619, 234, 108525 /* 30 */ 590, 584, 56, 56, 56, 56, 316, 54, 54, 54, | 108524 /* 30 */ 587, 581, 56, 56, 56, 56, 19, 54, 54, 54, 108526 /* 40 */ 54, 53, 53, 52, 52, 52, 51, 235, 301, 57, | 108525 /* 40 */ 54, 53, 53, 52, 52, 52, 51, 233, 605, 57, 108527 /* 50 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56, | 108526 /* 50 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56, 108528 /* 60 */ 56, 56, 571, 54, 54, 54, 54, 53, 53, 52, | 108527 /* 60 */ 56, 56, 541, 54, 54, 54, 54, 53, 53, 52, 108529 /* 70 */ 52, 52, 51, 235, 312, 597, 328, 198, 197, 196, | 108528 /* 70 */ 52, 52, 51, 233, 309, 594, 325, 196, 195, 194, 108530 /* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52, 108529 /* 80 */ 33, 54, 54, 54, 54, 53, 53, 52, 52, 52, 108531 /* 90 */ 51, 235, 53, 53, 52, 52, 52, 51, 235, 492, | 108530 /* 90 */ 51, 233, 617, 616, 165, 617, 616, 380, 377, 376, 108532 /* 100 */ 597, 441, 66, 237, 590, 584, 597, 299, 365, 59, | 108531 /* 100 */ 407, 532, 576, 576, 587, 581, 303, 422, 375, 59, 108533 /* 110 */ 482, 67, 362, 1, 621, 353, 621, 623, 622, 516, | 108532 /* 110 */ 53, 53, 52, 52, 52, 51, 233, 50, 47, 146, 108534 /* 120 */ 515, 442, 443, 57, 58, 48, 582, 581, 583, 583, | 108533 /* 120 */ 574, 545, 65, 57, 58, 48, 579, 578, 580, 580, 108535 /* 130 */ 55, 55, 56, 56, 56, 56, 608, 54, 54, 54, | 108534 /* 130 */ 55, 55, 56, 56, 56, 56, 213, 54, 54, 54, 108536 /* 140 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 225, | 108535 /* 140 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 223, 108537 /* 150 */ 618, 617, 616, 176, 138, 283, 386, 278, 385, 168, | 108536 /* 150 */ 539, 420, 170, 176, 138, 280, 383, 275, 382, 168, 108538 /* 160 */ 492, 554, 623, 622, 623, 622, 274, 441, 597, 412, | 108537 /* 160 */ 489, 551, 409, 668, 620, 619, 271, 438, 409, 438, 108539 /* 170 */ 553, 607, 67, 215, 597, 621, 506, 507, 590, 584, | 108538 /* 170 */ 550, 604, 67, 482, 507, 618, 599, 412, 587, 581, 108540 /* 180 */ 444, 571, 621, 391, 415, 620, 619, 442, 338, 623, | 108539 /* 180 */ 600, 483, 618, 412, 618, 598, 91, 439, 440, 439, 108541 /* 190 */ 622, 392, 601, 92, 224, 193, 671, 57, 58, 48, | 108540 /* 190 */ 335, 598, 73, 669, 222, 266, 480, 57, 58, 48, 108542 /* 200 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56, | 108541 /* 200 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56, 108543 /* 210 */ 672, 54, 54, 54, 54, 53, 53, 52, 52, 52, | 108542 /* 210 */ 670, 54, 54, 54, 54, 53, 53, 52, 52, 52, 108544 /* 220 */ 51, 235, 312, 262, 234, 233, 505, 132, 486, 510, | 108543 /* 220 */ 51, 233, 309, 279, 232, 231, 1, 132, 200, 385, 108545 /* 230 */ 620, 619, 620, 619, 399, 438, 487, 566, 621, 389, | 108544 /* 230 */ 620, 619, 617, 616, 278, 435, 289, 563, 175, 262, 108546 /* 240 */ 412, 384, 440, 532, 439, 602, 339, 571, 504, 603, | 108545 /* 240 */ 409, 264, 437, 497, 436, 166, 441, 568, 336, 568, 108547 /* 250 */ 203, 533, 590, 584, 45, 415, 548, 620, 619, 383, | 108546 /* 250 */ 201, 537, 587, 581, 599, 412, 165, 594, 600, 380, 108548 /* 260 */ 380, 379, 6, 601, 92, 526, 261, 572, 572, 595, | 108547 /* 260 */ 377, 376, 597, 598, 92, 523, 618, 569, 569, 592, 108549 /* 270 */ 378, 57, 58, 48, 582, 581, 583, 583, 55, 55, | 108548 /* 270 */ 375, 57, 58, 48, 579, 578, 580, 580, 55, 55, 108550 /* 280 */ 56, 56, 56, 56, 600, 54, 54, 54, 54, 53, | 108549 /* 280 */ 56, 56, 56, 56, 597, 54, 54, 54, 54, 53, 108551 /* 290 */ 53, 52, 52, 52, 51, 235, 312, 466, 326, 561, | 108550 /* 290 */ 53, 52, 52, 52, 51, 233, 309, 463, 617, 616, 108552 /* 300 */ 593, 593, 593, 282, 311, 399, 412, 568, 493, 214, | 108551 /* 300 */ 590, 590, 590, 174, 272, 396, 409, 272, 409, 548, 108553 /* 310 */ 400, 623, 622, 68, 281, 560, 7, 623, 622, 167, | 108552 /* 310 */ 397, 620, 619, 68, 326, 620, 619, 620, 619, 618, 108554 /* 320 */ 577, 415, 65, 408, 575, 574, 590, 584, 673, 601, | 108553 /* 320 */ 546, 412, 618, 412, 471, 594, 587, 581, 472, 598, 108555 /* 330 */ 92, 559, 410, 520, 579, 579, 306, 425, 623, 622, | 108554 /* 330 */ 92, 598, 92, 52, 52, 52, 51, 233, 513, 512, 108556 /* 340 */ 208, 572, 572, 467, 519, 57, 58, 48, 582, 581, | 108555 /* 340 */ 206, 322, 363, 464, 221, 57, 58, 48, 579, 578, 108557 /* 350 */ 583, 583, 55, 55, 56, 56, 56, 56, 576, 54, | 108556 /* 350 */ 580, 580, 55, 55, 56, 56, 56, 56, 529, 54, 108558 /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235, | 108557 /* 360 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233, 108559 /* 370 */ 312, 399, 412, 317, 600, 412, 350, 549, 578, 620, | 108558 /* 370 */ 309, 396, 409, 396, 597, 372, 386, 530, 347, 617, 108560 /* 380 */ 619, 423, 204, 175, 571, 620, 619, 415, 551, 355, | 108559 /* 380 */ 616, 575, 202, 617, 616, 617, 616, 412, 620, 619, 108561 /* 390 */ 415, 257, 349, 256, 174, 601, 74, 354, 601, 91, | 108560 /* 390 */ 145, 255, 346, 254, 577, 598, 74, 351, 45, 489, 108562 /* 400 */ 590, 584, 237, 467, 621, 547, 620, 619, 164, 623, | 108561 /* 400 */ 587, 581, 235, 189, 464, 544, 167, 296, 187, 469, 108563 /* 410 */ 622, 544, 62, 39, 251, 580, 600, 348, 555, 57, | 108562 /* 410 */ 479, 67, 62, 39, 618, 546, 597, 345, 573, 57, 108564 /* 420 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56, | 108563 /* 420 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56, 108565 /* 430 */ 56, 56, 565, 54, 54, 54, 54, 53, 53, 52, | 108564 /* 430 */ 56, 56, 6, 54, 54, 54, 54, 53, 53, 52, 108566 /* 440 */ 52, 52, 51, 235, 312, 554, 182, 145, 531, 292, | 108565 /* 440 */ 52, 52, 51, 233, 309, 562, 558, 407, 528, 576, 108567 /* 450 */ 231, 257, 349, 256, 553, 221, 412, 181, 248, 549, | 108566 /* 450 */ 576, 344, 255, 346, 254, 182, 617, 616, 503, 504, 108568 /* 460 */ 250, 412, 237, 50, 47, 146, 412, 410, 412, 579, | 108567 /* 460 */ 314, 409, 557, 235, 166, 271, 409, 352, 564, 181, 108569 /* 470 */ 579, 415, 549, 567, 590, 584, 415, 620, 619, 601, | 108568 /* 470 */ 407, 546, 576, 576, 587, 581, 412, 537, 556, 561, 108570 /* 480 */ 16, 415, 189, 415, 601, 92, 268, 36, 544, 601, | 108569 /* 480 */ 517, 412, 618, 249, 598, 16, 7, 36, 467, 598, 108571 /* 490 */ 92, 601, 73, 57, 58, 48, 582, 581, 583, 583, | 108570 /* 490 */ 92, 516, 618, 57, 58, 48, 579, 578, 580, 580, 108572 /* 500 */ 55, 55, 56, 56, 56, 56, 187, 54, 54, 54, | 108571 /* 500 */ 55, 55, 56, 56, 56, 56, 541, 54, 54, 54, 108573 /* 510 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 564, | 108572 /* 510 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 327, 108574 /* 520 */ 397, 410, 528, 579, 579, 561, 395, 535, 201, 145, | 108573 /* 520 */ 572, 571, 525, 558, 560, 394, 871, 246, 409, 248, 108575 /* 530 */ 264, 320, 266, 388, 375, 410, 249, 579, 579, 236, | 108574 /* 530 */ 171, 392, 594, 219, 407, 409, 576, 576, 502, 557, 108576 /* 540 */ 40, 560, 38, 50, 47, 146, 19, 606, 590, 584, | 108575 /* 540 */ 364, 145, 510, 412, 407, 229, 576, 576, 587, 581, 108577 /* 550 */ 422, 948, 563, 948, 549, 496, 472, 559, 602, 403, | 108576 /* 550 */ 412, 598, 92, 381, 269, 556, 166, 400, 598, 69, 108578 /* 560 */ 422, 947, 603, 947, 562, 167, 200, 57, 58, 48, | 108577 /* 560 */ 501, 419, 945, 199, 945, 198, 546, 57, 58, 48, 108579 /* 570 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56, | 108578 /* 570 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56, 108580 /* 580 */ 156, 54, 54, 54, 54, 53, 53, 52, 52, 52, | 108579 /* 580 */ 568, 54, 54, 54, 54, 53, 53, 52, 52, 52, 108581 /* 590 */ 51, 235, 312, 262, 412, 426, 511, 208, 347, 492, | 108580 /* 590 */ 51, 233, 309, 317, 419, 944, 508, 944, 308, 597, 108582 /* 600 */ 600, 50, 47, 146, 410, 426, 579, 579, 621, 415, | 108581 /* 600 */ 594, 565, 490, 212, 173, 247, 423, 615, 614, 613, 108583 /* 610 */ 430, 67, 199, 143, 621, 166, 474, 601, 69, 317, | 108582 /* 610 */ 323, 197, 143, 405, 572, 571, 489, 66, 50, 47, 108584 /* 620 */ 475, 435, 590, 584, 274, 234, 233, 958, 184, 420, | 108583 /* 620 */ 146, 594, 587, 581, 232, 231, 559, 427, 67, 555, 108585 /* 630 */ 2, 600, 358, 552, 366, 470, 336, 476, 476, 368, | 108584 /* 630 */ 15, 618, 186, 543, 303, 421, 35, 206, 432, 423, 108586 /* 640 */ 359, 57, 58, 48, 582, 581, 583, 583, 55, 55, | 108585 /* 640 */ 552, 57, 58, 48, 579, 578, 580, 580, 55, 55, 108587 /* 650 */ 56, 56, 56, 56, 354, 54, 54, 54, 54, 53, | 108586 /* 650 */ 56, 56, 56, 56, 205, 54, 54, 54, 54, 53, 108588 /* 660 */ 53, 52, 52, 52, 51, 235, 312, 412, 572, 572, | 108587 /* 660 */ 53, 52, 52, 52, 51, 233, 309, 569, 569, 260, 108589 /* 670 */ 271, 412, 558, 874, 361, 213, 143, 412, 50, 47, | 108588 /* 670 */ 268, 597, 12, 373, 568, 166, 409, 313, 409, 420, 108590 /* 680 */ 146, 30, 415, 540, 355, 334, 415, 412, 629, 2, | 108589 /* 680 */ 409, 473, 473, 365, 618, 50, 47, 146, 597, 594, 108591 /* 690 */ 601, 94, 415, 513, 601, 97, 590, 584, 621, 621, | 108590 /* 690 */ 468, 412, 166, 412, 351, 412, 587, 581, 32, 598, 108592 /* 700 */ 601, 95, 415, 306, 424, 630, 628, 332, 173, 269, | 108591 /* 700 */ 94, 598, 97, 598, 95, 627, 625, 329, 142, 50, 108593 /* 710 */ 601, 104, 171, 546, 597, 57, 58, 48, 582, 581, | 108592 /* 710 */ 47, 146, 333, 349, 358, 57, 58, 48, 579, 578, 108594 /* 720 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54, | 108593 /* 720 */ 580, 580, 55, 55, 56, 56, 56, 56, 409, 54, 108595 /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235, | 108594 /* 730 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233, 108596 /* 740 */ 312, 412, 275, 415, 412, 22, 329, 340, 423, 544, | 108595 /* 740 */ 309, 409, 388, 412, 409, 22, 565, 404, 212, 362, 108597 /* 750 */ 217, 601, 103, 568, 407, 214, 415, 621, 35, 415, | 108596 /* 750 */ 389, 598, 104, 359, 409, 156, 412, 409, 603, 412, 108598 /* 760 */ 412, 540, 412, 12, 601, 105, 237, 601, 106, 11, | 108597 /* 760 */ 537, 331, 569, 569, 598, 103, 493, 598, 105, 412, 108599 /* 770 */ 590, 584, 50, 47, 146, 415, 621, 415, 353, 325, | 108598 /* 770 */ 587, 581, 412, 260, 549, 618, 11, 598, 106, 521, 108600 /* 780 */ 164, 129, 597, 601, 133, 601, 134, 207, 287, 57, | 108599 /* 780 */ 598, 133, 169, 457, 456, 170, 35, 601, 618, 57, 108601 /* 790 */ 58, 48, 582, 581, 583, 583, 55, 55, 56, 56, | 108600 /* 790 */ 58, 48, 579, 578, 580, 580, 55, 55, 56, 56, 108602 /* 800 */ 56, 56, 412, 54, 54, 54, 54, 53, 53, 52, | 108601 /* 800 */ 56, 56, 409, 54, 54, 54, 54, 53, 53, 52, 108603 /* 810 */ 52, 52, 51, 235, 312, 412, 275, 415, 412, 275, | 108602 /* 810 */ 52, 52, 51, 233, 309, 409, 259, 412, 409, 50, 108604 /* 820 */ 275, 600, 275, 544, 367, 601, 98, 542, 412, 170, | 108603 /* 820 */ 47, 146, 357, 318, 355, 598, 134, 527, 352, 337, 108605 /* 830 */ 415, 621, 524, 415, 621, 621, 169, 621, 601, 102, | 108604 /* 830 */ 412, 409, 356, 412, 357, 409, 357, 618, 598, 98, 108606 /* 840 */ 604, 601, 101, 415, 590, 584, 352, 21, 500, 32, | 108605 /* 840 */ 129, 598, 102, 618, 587, 581, 412, 21, 235, 618, 108607 /* 850 */ 166, 601, 93, 223, 318, 147, 324, 323, 272, 322, | 108606 /* 850 */ 412, 618, 211, 143, 598, 101, 30, 167, 598, 93, 108608 /* 860 */ 166, 205, 285, 57, 58, 48, 582, 581, 583, 583, | 108607 /* 860 */ 350, 535, 203, 57, 58, 48, 579, 578, 580, 580, 108609 /* 870 */ 55, 55, 56, 56, 56, 56, 412, 54, 54, 54, | 108608 /* 870 */ 55, 55, 56, 56, 56, 56, 409, 54, 54, 54, 108610 /* 880 */ 54, 53, 53, 52, 52, 52, 51, 235, 312, 412, | 108609 /* 880 */ 54, 53, 53, 52, 52, 52, 51, 233, 309, 409, 108611 /* 890 */ 262, 415, 412, 538, 360, 600, 360, 202, 142, 601, | 108610 /* 890 */ 526, 412, 409, 425, 215, 305, 597, 551, 141, 598, 108612 /* 900 */ 100, 376, 412, 166, 415, 621, 540, 415, 360, 621, | 108611 /* 900 */ 100, 40, 409, 38, 412, 409, 550, 412, 409, 228, 108613 /* 910 */ 141, 621, 601, 77, 230, 601, 96, 415, 590, 584, | 108612 /* 910 */ 220, 314, 598, 77, 500, 598, 96, 412, 587, 581, 108614 /* 920 */ 341, 621, 530, 621, 529, 601, 137, 471, 382, 166, | 108613 /* 920 */ 412, 338, 253, 412, 218, 598, 137, 379, 598, 136, 108615 /* 930 */ 460, 600, 170, 453, 427, 307, 28, 57, 58, 48, | 108614 /* 930 */ 28, 598, 135, 270, 715, 210, 481, 57, 58, 48, 108616 /* 940 */ 582, 581, 583, 583, 55, 55, 56, 56, 56, 56, | 108615 /* 940 */ 579, 578, 580, 580, 55, 55, 56, 56, 56, 56, 108617 /* 950 */ 412, 54, 54, 54, 54, 53, 53, 52, 52, 52, | 108616 /* 950 */ 409, 54, 54, 54, 54, 53, 53, 52, 52, 52, 108618 /* 960 */ 51, 235, 312, 412, 503, 415, 412, 212, 459, 321, | 108617 /* 960 */ 51, 233, 309, 409, 272, 412, 409, 315, 147, 597, 108619 /* 970 */ 35, 211, 127, 601, 136, 428, 412, 308, 415, 412, | 108618 /* 970 */ 272, 626, 2, 598, 76, 209, 409, 127, 412, 618, 108620 /* 980 */ 273, 415, 222, 126, 255, 27, 601, 135, 377, 601, | 108619 /* 980 */ 126, 412, 409, 621, 235, 618, 598, 90, 374, 598, 108621 /* 990 */ 76, 415, 590, 584, 415, 262, 220, 51, 235, 601, | 108620 /* 990 */ 89, 412, 587, 581, 27, 260, 350, 412, 618, 598, 108622 /* 1000 */ 90, 600, 601, 89, 125, 600, 281, 522, 521, 373, | 108621 /* 1000 */ 75, 321, 541, 541, 125, 598, 88, 320, 278, 597, 108623 /* 1010 */ 621, 57, 46, 48, 582, 581, 583, 583, 55, 55, | 108622 /* 1010 */ 618, 57, 46, 48, 579, 578, 580, 580, 55, 55, 108624 /* 1020 */ 56, 56, 56, 56, 412, 54, 54, 54, 54, 53, | 108623 /* 1020 */ 56, 56, 56, 56, 409, 54, 54, 54, 54, 53, 108625 /* 1030 */ 53, 52, 52, 52, 51, 235, 312, 412, 451, 415, | 108624 /* 1030 */ 53, 52, 52, 52, 51, 233, 309, 409, 450, 412, 108626 /* 1040 */ 165, 624, 612, 611, 469, 521, 480, 601, 75, 185, | 108625 /* 1040 */ 164, 284, 282, 272, 609, 424, 304, 598, 87, 370, 108627 /* 1050 */ 412, 122, 415, 412, 369, 412, 621, 621, 621, 477, | 108626 /* 1050 */ 409, 477, 412, 409, 608, 409, 607, 602, 618, 618, 108628 /* 1060 */ 601, 88, 589, 588, 170, 415, 590, 584, 415, 121, | 108627 /* 1060 */ 598, 99, 586, 585, 122, 412, 587, 581, 412, 618, 108629 /* 1070 */ 415, 473, 259, 601, 87, 159, 601, 99, 601, 86, | 108628 /* 1070 */ 412, 618, 618, 598, 86, 366, 598, 17, 598, 85, 108630 /* 1080 */ 628, 332, 120, 14, 586, 585, 58, 48, 582, 581, | 108629 /* 1080 */ 319, 185, 519, 518, 583, 582, 58, 48, 579, 578, 108631 /* 1090 */ 583, 583, 55, 55, 56, 56, 56, 56, 412, 54, | 108630 /* 1090 */ 580, 580, 55, 55, 56, 56, 56, 56, 409, 54, 108632 /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 235, | 108631 /* 1100 */ 54, 54, 54, 53, 53, 52, 52, 52, 51, 233, 108633 /* 1110 */ 312, 587, 412, 415, 412, 465, 262, 262, 610, 605, | 108632 /* 1110 */ 309, 584, 409, 412, 409, 260, 260, 260, 408, 591, 108634 /* 1120 */ 158, 601, 17, 157, 412, 462, 25, 415, 118, 415, | 108633 /* 1120 */ 474, 598, 84, 170, 409, 466, 518, 412, 121, 412, 108635 /* 1130 */ 412, 621, 621, 621, 621, 601, 85, 601, 84, 415, | 108634 /* 1130 */ 618, 618, 618, 618, 618, 598, 83, 598, 72, 412, 108636 /* 1140 */ 590, 584, 411, 262, 24, 415, 117, 601, 83, 10, | 108635 /* 1140 */ 587, 581, 51, 233, 625, 329, 470, 598, 71, 257, 108637 /* 1150 */ 351, 4, 115, 601, 72, 458, 456, 621, 621, 450, | 108636 /* 1150 */ 159, 120, 14, 462, 157, 158, 117, 260, 448, 447, 108638 /* 1160 */ 449, 48, 582, 581, 583, 583, 55, 55, 56, 56, | 108637 /* 1160 */ 446, 48, 579, 578, 580, 580, 55, 55, 56, 56, 108639 /* 1170 */ 56, 56, 253, 54, 54, 54, 54, 53, 53, 52, | 108638 /* 1170 */ 56, 56, 618, 54, 54, 54, 54, 53, 53, 52, 108640 /* 1180 */ 52, 52, 51, 235, 44, 406, 219, 3, 412, 452, | 108639 /* 1180 */ 52, 52, 51, 233, 44, 403, 260, 3, 409, 459, 108641 /* 1190 */ 262, 416, 622, 154, 594, 110, 107, 108, 401, 446, | 108640 /* 1190 */ 260, 413, 619, 118, 398, 10, 25, 24, 554, 348, 108642 /* 1200 */ 64, 557, 409, 415, 412, 621, 437, 44, 406, 621, | 108641 /* 1200 */ 217, 618, 406, 412, 409, 618, 4, 44, 403, 618, 108643 /* 1210 */ 3, 601, 71, 621, 416, 622, 621, 545, 335, 415, | 108642 /* 1210 */ 3, 598, 82, 618, 413, 619, 455, 542, 115, 412, 108644 /* 1220 */ 436, 404, 149, 239, 262, 409, 188, 601, 82, 331, | 108643 /* 1220 */ 538, 401, 536, 274, 506, 406, 251, 598, 81, 216, 108645 /* 1230 */ 541, 566, 621, 218, 421, 539, 229, 139, 124, 621, | 108644 /* 1230 */ 273, 563, 618, 243, 453, 618, 154, 618, 618, 618, 108646 /* 1240 */ 148, 419, 626, 625, 404, 621, 412, 238, 315, 123, | 108645 /* 1240 */ 449, 416, 623, 110, 401, 618, 409, 236, 64, 123, 108647 /* 1250 */ 621, 41, 42, 534, 566, 206, 412, 277, 43, 414, | 108646 /* 1250 */ 487, 41, 42, 531, 563, 204, 409, 267, 43, 411, 108648 /* 1260 */ 413, 415, 509, 595, 314, 615, 180, 245, 614, 601, | 108647 /* 1260 */ 410, 412, 265, 592, 108, 618, 107, 434, 332, 598, 108649 /* 1270 */ 81, 415, 621, 276, 41, 42, 613, 621, 412, 601, | 108648 /* 1270 */ 80, 412, 618, 263, 41, 42, 443, 618, 409, 598, 108650 /* 1280 */ 80, 43, 414, 413, 179, 270, 595, 418, 621, 600, | 108649 /* 1280 */ 70, 43, 411, 410, 433, 261, 592, 149, 618, 597, 108651 /* 1290 */ 484, 8, 177, 415, 593, 593, 593, 592, 591, 13, | 108650 /* 1290 */ 256, 237, 188, 412, 590, 590, 590, 589, 588, 13, 108652 /* 1300 */ 621, 601, 70, 417, 237, 621, 44, 406, 267, 3, | 108651 /* 1300 */ 618, 598, 18, 328, 235, 618, 44, 403, 360, 3, 108653 /* 1310 */ 237, 265, 342, 416, 622, 599, 296, 593, 593, 593, | 108652 /* 1310 */ 418, 461, 339, 413, 619, 227, 124, 590, 590, 590, 108654 /* 1320 */ 592, 591, 13, 621, 409, 412, 621, 412, 396, 34, | 108653 /* 1320 */ 589, 588, 13, 618, 406, 409, 618, 409, 139, 34, 108655 /* 1330 */ 406, 412, 3, 31, 30, 294, 416, 622, 293, 333, | 108654 /* 1330 */ 403, 387, 3, 148, 622, 312, 413, 619, 311, 330, 108656 /* 1340 */ 415, 263, 415, 404, 398, 258, 415, 409, 601, 18, | 108655 /* 1340 */ 412, 460, 412, 401, 180, 353, 412, 406, 598, 79, 108657 /* 1350 */ 601, 79, 363, 566, 601, 78, 621, 295, 60, 37, | 108656 /* 1350 */ 598, 78, 250, 563, 598, 9, 618, 612, 611, 610, 108658 /* 1360 */ 621, 172, 464, 390, 463, 598, 404, 621, 356, 288, | 108657 /* 1360 */ 618, 8, 452, 442, 242, 415, 401, 618, 239, 235, 108659 /* 1370 */ 232, 29, 556, 41, 42, 252, 566, 621, 415, 621, | 108658 /* 1370 */ 179, 238, 428, 41, 42, 288, 563, 618, 618, 618, 108660 /* 1380 */ 43, 414, 413, 621, 455, 595, 601, 9, 183, 61, | 108659 /* 1380 */ 43, 411, 410, 618, 144, 592, 618, 618, 177, 61, 108661 /* 1390 */ 621, 543, 445, 623, 622, 244, 41, 42, 241, 621, | 108660 /* 1390 */ 618, 596, 391, 620, 619, 287, 41, 42, 414, 618, 108662 /* 1400 */ 240, 393, 286, 43, 414, 413, 284, 621, 595, 431, | 108661 /* 1400 */ 293, 30, 393, 43, 411, 410, 292, 618, 592, 31, 108663 /* 1410 */ 621, 291, 537, 621, 536, 621, 593, 593, 593, 592, | 108662 /* 1410 */ 618, 395, 291, 60, 230, 37, 590, 590, 590, 589, 108664 /* 1420 */ 591, 13, 216, 144, 621, 387, 621, 304, 303, 302, | 108663 /* 1420 */ 588, 13, 214, 553, 183, 290, 172, 301, 300, 299, 108665 /* 1430 */ 178, 300, 394, 566, 454, 517, 290, 523, 621, 593, | 108664 /* 1430 */ 178, 297, 595, 563, 451, 29, 285, 390, 540, 590, 108666 /* 1440 */ 593, 593, 592, 591, 13, 518, 327, 621, 150, 279, | 108665 /* 1440 */ 590, 590, 589, 588, 13, 283, 520, 534, 150, 533, 108667 /* 1450 */ 243, 621, 514, 192, 191, 513, 512, 310, 128, 242, | 108666 /* 1450 */ 241, 281, 384, 192, 191, 324, 515, 514, 276, 240, 108668 /* 1460 */ 228, 526, 227, 226, 490, 595, 494, 489, 488, 309, | 108667 /* 1460 */ 510, 523, 307, 511, 128, 592, 509, 225, 226, 486, 108669 /* 1470 */ 194, 164, 152, 163, 467, 374, 481, 372, 153, 162, | 108668 /* 1470 */ 485, 224, 152, 491, 464, 306, 484, 163, 153, 371, 108670 /* 1480 */ 161, 151, 210, 479, 260, 370, 26, 478, 160, 468, | 108669 /* 1480 */ 478, 151, 162, 258, 369, 161, 367, 208, 475, 476, 108671 /* 1490 */ 364, 140, 119, 116, 131, 457, 593, 593, 593, 155, | 108670 /* 1490 */ 26, 160, 465, 140, 361, 131, 590, 590, 590, 116, 108672 /* 1500 */ 114, 346, 345, 113, 112, 111, 448, 109, 130, 23, | 108671 /* 1500 */ 119, 454, 343, 155, 114, 342, 113, 112, 445, 111, 108673 /* 1510 */ 319, 20, 434, 433, 432, 63, 429, 609, 190, 510, | 108672 /* 1510 */ 130, 109, 431, 316, 426, 430, 23, 429, 20, 606, 108674 /* 1520 */ 596, 405, 257, 344, 246, 297, 280, 573, 313, 570, | 108673 /* 1520 */ 190, 507, 255, 341, 244, 63, 294, 593, 310, 570, 108675 /* 1530 */ 195, 499, 498, 237, 497, 495, 381, 289, 461, 247, | 108674 /* 1530 */ 277, 402, 354, 235, 567, 496, 495, 492, 494, 302, 108676 /* 1540 */ 357, 254, 305, 343, 5, 447, 569, 209, 550, 371, | 108675 /* 1540 */ 458, 378, 286, 245, 566, 5, 252, 547, 193, 444, 108677 /* 1550 */ 508, 491, 402, 502, 501, 298, 337, 527, 525, 485, | 108676 /* 1550 */ 233, 340, 207, 524, 368, 505, 334, 522, 499, 399, 108678 /* 1560 */ 483, 235, | 108677 /* 1560 */ 295, 498, 956, 488, 108679 }; 108678 }; 108680 static const YYCODETYPE yy_lookahead[] = { 108679 static const YYCODETYPE yy_lookahead[] = { 108681 /* 0 */ 19, 169, 170, 171, 22, 24, 24, 26, 77, 78, | 108680 /* 0 */ 19, 142, 143, 144, 145, 24, 1, 26, 77, 78, 108682 /* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 108681 /* 10 */ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 108683 /* 20 */ 89, 90, 91, 92, 88, 89, 90, 91, 92, 1, | 108682 /* 20 */ 89, 90, 91, 92, 26, 27, 15, 26, 27, 197, 108684 /* 30 */ 49, 50, 77, 78, 79, 80, 155, 82, 83, 84, | 108683 /* 30 */ 49, 50, 77, 78, 79, 80, 204, 82, 83, 84, 108685 /* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 15, 68, | 108684 /* 40 */ 85, 86, 87, 88, 89, 90, 91, 92, 23, 68, 108686 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108685 /* 50 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108687 /* 60 */ 79, 80, 230, 82, 83, 84, 85, 86, 87, 88, | 108686 /* 60 */ 79, 80, 166, 82, 83, 84, 85, 86, 87, 88, 108688 /* 70 */ 89, 90, 91, 92, 19, 94, 19, 105, 106, 107, 108687 /* 70 */ 89, 90, 91, 92, 19, 94, 19, 105, 106, 107, 108689 /* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108688 /* 80 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108690 /* 90 */ 91, 92, 86, 87, 88, 89, 90, 91, 92, 150, | 108689 /* 90 */ 91, 92, 94, 95, 96, 94, 95, 99, 100, 101, 108691 /* 100 */ 26, 150, 22, 116, 49, 50, 26, 158, 227, 54, | 108690 /* 100 */ 112, 205, 114, 115, 49, 50, 22, 23, 110, 54, 108692 /* 110 */ 161, 162, 231, 22, 165, 128, 165, 26, 27, 7, | 108691 /* 110 */ 86, 87, 88, 89, 90, 91, 92, 221, 222, 223, 108693 /* 120 */ 8, 170, 171, 68, 69, 70, 71, 72, 73, 74, | 108692 /* 120 */ 23, 120, 25, 68, 69, 70, 71, 72, 73, 74, 108694 /* 130 */ 75, 76, 77, 78, 79, 80, 23, 82, 83, 84, | 108693 /* 130 */ 75, 76, 77, 78, 79, 80, 22, 82, 83, 84, 108695 /* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 92, 108694 /* 140 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 92, 108696 /* 150 */ 7, 8, 9, 96, 97, 98, 99, 100, 101, 102, | 108695 /* 150 */ 23, 67, 25, 96, 97, 98, 99, 100, 101, 102, 108697 /* 160 */ 150, 32, 26, 27, 26, 27, 109, 150, 94, 150, | 108696 /* 160 */ 150, 32, 150, 118, 26, 27, 109, 150, 150, 150, 108698 /* 170 */ 41, 161, 162, 22, 94, 165, 97, 98, 49, 50, | 108697 /* 170 */ 41, 161, 162, 180, 181, 165, 113, 165, 49, 50, 108699 /* 180 */ 229, 230, 165, 19, 165, 94, 95, 170, 171, 26, | 108698 /* 180 */ 117, 188, 165, 165, 165, 173, 174, 170, 171, 170, 108700 /* 190 */ 27, 27, 173, 174, 184, 185, 118, 68, 69, 70, | 108699 /* 190 */ 171, 173, 174, 118, 184, 16, 186, 68, 69, 70, 108701 /* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108700 /* 200 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108702 /* 210 */ 118, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108701 /* 210 */ 118, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108703 /* 220 */ 91, 92, 19, 150, 86, 87, 36, 24, 180, 181, | 108702 /* 220 */ 91, 92, 19, 98, 86, 87, 22, 24, 160, 88, 108704 /* 230 */ 94, 95, 94, 95, 215, 97, 188, 66, 165, 220, | 108703 /* 230 */ 26, 27, 94, 95, 109, 97, 224, 66, 118, 60, 108705 /* 240 */ 150, 51, 104, 23, 106, 113, 229, 230, 58, 117, | 108704 /* 240 */ 150, 62, 104, 23, 106, 25, 229, 230, 229, 230, 108706 /* 250 */ 160, 88, 49, 50, 22, 165, 120, 94, 95, 99, | 108705 /* 250 */ 160, 150, 49, 50, 113, 165, 96, 26, 117, 99, 108707 /* 260 */ 100, 101, 22, 173, 174, 94, 193, 129, 130, 98, | 108706 /* 260 */ 100, 101, 194, 173, 174, 94, 165, 129, 130, 98, 108708 /* 270 */ 110, 68, 69, 70, 71, 72, 73, 74, 75, 76, 108707 /* 270 */ 110, 68, 69, 70, 71, 72, 73, 74, 75, 76, 108709 /* 280 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86, 108708 /* 280 */ 77, 78, 79, 80, 194, 82, 83, 84, 85, 86, 108710 /* 290 */ 87, 88, 89, 90, 91, 92, 19, 11, 108, 12, | 108709 /* 290 */ 87, 88, 89, 90, 91, 92, 19, 11, 94, 95, 108711 /* 300 */ 129, 130, 131, 98, 163, 215, 150, 166, 167, 168, | 108710 /* 300 */ 129, 130, 131, 118, 150, 215, 150, 150, 150, 25, 108712 /* 310 */ 220, 26, 27, 22, 109, 28, 76, 26, 27, 50, | 108711 /* 310 */ 220, 26, 27, 22, 213, 26, 27, 26, 27, 165, 108713 /* 320 */ 23, 165, 25, 169, 170, 171, 49, 50, 118, 173, | 108712 /* 320 */ 25, 165, 165, 165, 30, 94, 49, 50, 34, 173, 108714 /* 330 */ 174, 44, 112, 46, 114, 115, 22, 23, 26, 27, | 108713 /* 330 */ 174, 173, 174, 88, 89, 90, 91, 92, 7, 8, 108715 /* 340 */ 160, 129, 130, 57, 57, 68, 69, 70, 71, 72, | 108714 /* 340 */ 160, 187, 48, 57, 187, 68, 69, 70, 71, 72, 108716 /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 23, 82, 108715 /* 350 */ 73, 74, 75, 76, 77, 78, 79, 80, 23, 82, 108717 /* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108716 /* 360 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108718 /* 370 */ 19, 215, 150, 104, 194, 150, 220, 25, 23, 94, | 108717 /* 370 */ 19, 215, 150, 215, 194, 19, 220, 88, 220, 94, 108719 /* 380 */ 95, 67, 160, 118, 230, 94, 95, 165, 25, 150, | 108718 /* 380 */ 95, 23, 160, 94, 95, 94, 95, 165, 26, 27, 108720 /* 390 */ 165, 105, 106, 107, 118, 173, 174, 217, 173, 174, | 108719 /* 390 */ 95, 105, 106, 107, 113, 173, 174, 217, 22, 150, 108721 /* 400 */ 49, 50, 116, 57, 165, 120, 94, 95, 96, 26, | 108720 /* 400 */ 49, 50, 116, 119, 57, 120, 50, 158, 22, 21, 108722 /* 410 */ 27, 166, 232, 136, 16, 113, 194, 237, 176, 68, | 108721 /* 410 */ 161, 162, 232, 136, 165, 120, 194, 237, 23, 68, 108723 /* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108722 /* 420 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108724 /* 430 */ 79, 80, 23, 82, 83, 84, 85, 86, 87, 88, | 108723 /* 430 */ 79, 80, 22, 82, 83, 84, 85, 86, 87, 88, 108725 /* 440 */ 89, 90, 91, 92, 19, 32, 23, 95, 23, 224, | 108724 /* 440 */ 89, 90, 91, 92, 19, 23, 12, 112, 23, 114, 108726 /* 450 */ 205, 105, 106, 107, 41, 216, 150, 23, 60, 25, | 108725 /* 450 */ 115, 63, 105, 106, 107, 23, 94, 95, 97, 98, 108727 /* 460 */ 62, 150, 116, 221, 222, 223, 150, 112, 150, 114, | 108726 /* 460 */ 104, 150, 28, 116, 25, 109, 150, 150, 23, 23, 108728 /* 470 */ 115, 165, 120, 23, 49, 50, 165, 94, 95, 173, | 108727 /* 470 */ 112, 25, 114, 115, 49, 50, 165, 150, 44, 11, 108729 /* 480 */ 174, 165, 119, 165, 173, 174, 16, 136, 166, 173, | 108728 /* 480 */ 46, 165, 165, 16, 173, 174, 76, 136, 100, 173, 108730 /* 490 */ 174, 173, 174, 68, 69, 70, 71, 72, 73, 74, | 108729 /* 490 */ 174, 57, 165, 68, 69, 70, 71, 72, 73, 74, 108731 /* 500 */ 75, 76, 77, 78, 79, 80, 22, 82, 83, 84, | 108730 /* 500 */ 75, 76, 77, 78, 79, 80, 166, 82, 83, 84, 108732 /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 11, | 108731 /* 510 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 169, 108733 /* 520 */ 214, 112, 23, 114, 115, 12, 215, 205, 22, 95, | 108732 /* 520 */ 170, 171, 23, 12, 23, 214, 138, 60, 150, 62, 108734 /* 530 */ 60, 215, 62, 88, 19, 112, 138, 114, 115, 197, | 108733 /* 530 */ 24, 215, 26, 216, 112, 150, 114, 115, 36, 28, 108735 /* 540 */ 135, 28, 137, 221, 222, 223, 204, 172, 49, 50, | 108734 /* 540 */ 213, 95, 103, 165, 112, 205, 114, 115, 49, 50, 108736 /* 550 */ 22, 23, 23, 25, 120, 180, 21, 44, 113, 46, | 108735 /* 550 */ 165, 173, 174, 51, 23, 44, 25, 46, 173, 174, 108737 /* 560 */ 22, 23, 117, 25, 23, 50, 160, 68, 69, 70, | 108736 /* 560 */ 58, 22, 23, 22, 25, 160, 120, 68, 69, 70, 108738 /* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108737 /* 570 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108739 /* 580 */ 25, 82, 83, 84, 85, 86, 87, 88, 89, 90, | 108738 /* 580 */ 230, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108740 /* 590 */ 91, 92, 19, 150, 150, 67, 23, 160, 63, 150, | 108739 /* 590 */ 91, 92, 19, 215, 22, 23, 23, 25, 163, 194, 108741 /* 600 */ 194, 221, 222, 223, 112, 67, 114, 115, 165, 165, | 108740 /* 600 */ 94, 166, 167, 168, 25, 138, 67, 7, 8, 9, 108742 /* 610 */ 161, 162, 206, 207, 165, 25, 30, 173, 174, 104, | 108741 /* 610 */ 108, 206, 207, 169, 170, 171, 150, 22, 221, 222, 108743 /* 620 */ 34, 241, 49, 50, 109, 86, 87, 142, 143, 144, | 108742 /* 620 */ 223, 26, 49, 50, 86, 87, 23, 161, 162, 23, 108744 /* 630 */ 145, 194, 19, 176, 48, 100, 193, 105, 106, 107, | 108743 /* 630 */ 22, 165, 24, 120, 22, 23, 25, 160, 241, 67, 108745 /* 640 */ 27, 68, 69, 70, 71, 72, 73, 74, 75, 76, | 108744 /* 640 */ 176, 68, 69, 70, 71, 72, 73, 74, 75, 76, 108746 /* 650 */ 77, 78, 79, 80, 217, 82, 83, 84, 85, 86, | 108745 /* 650 */ 77, 78, 79, 80, 160, 82, 83, 84, 85, 86, 108747 /* 660 */ 87, 88, 89, 90, 91, 92, 19, 150, 129, 130, | 108746 /* 660 */ 87, 88, 89, 90, 91, 92, 19, 129, 130, 150, 108748 /* 670 */ 23, 150, 23, 138, 237, 206, 207, 150, 221, 222, | 108747 /* 670 */ 23, 194, 35, 23, 230, 25, 150, 155, 150, 67, 108749 /* 680 */ 223, 126, 165, 150, 150, 242, 165, 150, 144, 145, | 108748 /* 680 */ 150, 105, 106, 107, 165, 221, 222, 223, 194, 94, 108750 /* 690 */ 173, 174, 165, 103, 173, 174, 49, 50, 165, 165, | 108749 /* 690 */ 23, 165, 25, 165, 217, 165, 49, 50, 25, 173, 108751 /* 700 */ 173, 174, 165, 22, 23, 0, 1, 2, 25, 25, | 108750 /* 700 */ 174, 173, 174, 173, 174, 0, 1, 2, 118, 221, 108752 /* 710 */ 173, 174, 24, 120, 26, 68, 69, 70, 71, 72, | 108751 /* 710 */ 222, 223, 193, 219, 237, 68, 69, 70, 71, 72, 108753 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82, 108752 /* 720 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82, 108754 /* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108753 /* 730 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108755 /* 740 */ 19, 150, 150, 165, 150, 24, 213, 97, 67, 166, | 108754 /* 740 */ 19, 150, 19, 165, 150, 24, 166, 167, 168, 227, 108756 /* 750 */ 216, 173, 174, 166, 167, 168, 165, 165, 25, 165, | 108755 /* 750 */ 27, 173, 174, 231, 150, 25, 165, 150, 172, 165, 108757 /* 760 */ 150, 150, 150, 35, 173, 174, 116, 173, 174, 35, | 108756 /* 760 */ 150, 242, 129, 130, 173, 174, 180, 173, 174, 165, 108758 /* 770 */ 49, 50, 221, 222, 223, 165, 165, 165, 128, 187, | 108757 /* 770 */ 49, 50, 165, 150, 176, 165, 35, 173, 174, 165, 108759 /* 780 */ 96, 22, 94, 173, 174, 173, 174, 160, 205, 68, | 108758 /* 780 */ 173, 174, 35, 23, 23, 25, 25, 173, 165, 68, 108760 /* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108759 /* 790 */ 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108761 /* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88, 108760 /* 800 */ 79, 80, 150, 82, 83, 84, 85, 86, 87, 88, 108762 /* 810 */ 89, 90, 91, 92, 19, 150, 150, 165, 150, 150, | 108761 /* 810 */ 89, 90, 91, 92, 19, 150, 193, 165, 150, 221, 108763 /* 820 */ 150, 194, 150, 166, 213, 173, 174, 23, 150, 25, | 108762 /* 820 */ 222, 223, 150, 213, 19, 173, 174, 23, 150, 97, 108764 /* 830 */ 165, 165, 165, 165, 165, 165, 35, 165, 173, 174, | 108763 /* 830 */ 165, 150, 27, 165, 150, 150, 150, 165, 173, 174, 108765 /* 840 */ 173, 173, 174, 165, 49, 50, 219, 52, 23, 25, | 108764 /* 840 */ 22, 173, 174, 165, 49, 50, 165, 52, 116, 165, 108766 /* 850 */ 25, 173, 174, 187, 245, 246, 187, 187, 23, 187, | 108765 /* 850 */ 165, 165, 206, 207, 173, 174, 126, 50, 173, 174, 108767 /* 860 */ 25, 160, 205, 68, 69, 70, 71, 72, 73, 74, | 108766 /* 860 */ 128, 27, 160, 68, 69, 70, 71, 72, 73, 74, 108768 /* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84, 108767 /* 870 */ 75, 76, 77, 78, 79, 80, 150, 82, 83, 84, 108769 /* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150, 108768 /* 880 */ 85, 86, 87, 88, 89, 90, 91, 92, 19, 150, 108770 /* 890 */ 150, 165, 150, 27, 150, 194, 150, 160, 118, 173, | 108769 /* 890 */ 23, 165, 150, 23, 216, 25, 194, 32, 39, 173, 108771 /* 900 */ 174, 23, 150, 25, 165, 165, 150, 165, 150, 165, | 108770 /* 900 */ 174, 135, 150, 137, 165, 150, 41, 165, 150, 52, 108772 /* 910 */ 39, 165, 173, 174, 52, 173, 174, 165, 49, 50, | 108771 /* 910 */ 238, 104, 173, 174, 29, 173, 174, 165, 49, 50, 108773 /* 920 */ 219, 165, 23, 165, 23, 173, 174, 23, 52, 25, | 108772 /* 920 */ 165, 219, 238, 165, 238, 173, 174, 52, 173, 174, 108774 /* 930 */ 23, 194, 25, 193, 247, 248, 22, 68, 69, 70, | 108773 /* 930 */ 22, 173, 174, 23, 23, 160, 25, 68, 69, 70, 108775 /* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108774 /* 940 */ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 108776 /* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108775 /* 950 */ 150, 82, 83, 84, 85, 86, 87, 88, 89, 90, 108777 /* 960 */ 91, 92, 19, 150, 29, 165, 150, 160, 23, 213, | 108776 /* 960 */ 91, 92, 19, 150, 150, 165, 150, 245, 246, 194, 108778 /* 970 */ 25, 160, 22, 173, 174, 23, 150, 25, 165, 150, | 108777 /* 970 */ 150, 144, 145, 173, 174, 160, 150, 22, 165, 165, 108779 /* 980 */ 23, 165, 238, 22, 238, 22, 173, 174, 52, 173, | 108778 /* 980 */ 22, 165, 150, 150, 116, 165, 173, 174, 52, 173, 108780 /* 990 */ 174, 165, 49, 50, 165, 150, 238, 91, 92, 173, | 108779 /* 990 */ 174, 165, 49, 50, 22, 150, 128, 165, 165, 173, 108781 /* 1000 */ 174, 194, 173, 174, 22, 194, 109, 190, 191, 19, | 108780 /* 1000 */ 174, 187, 166, 166, 22, 173, 174, 187, 109, 194, 108782 /* 1010 */ 165, 68, 69, 70, 71, 72, 73, 74, 75, 76, 108781 /* 1010 */ 165, 68, 69, 70, 71, 72, 73, 74, 75, 76, 108783 /* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86, 108782 /* 1020 */ 77, 78, 79, 80, 150, 82, 83, 84, 85, 86, 108784 /* 1030 */ 87, 88, 89, 90, 91, 92, 19, 150, 193, 165, 108783 /* 1030 */ 87, 88, 89, 90, 91, 92, 19, 150, 193, 165, 108785 /* 1040 */ 102, 150, 150, 150, 190, 191, 20, 173, 174, 24, | 108784 /* 1040 */ 102, 205, 205, 150, 150, 247, 248, 173, 174, 19, 108786 /* 1050 */ 150, 104, 165, 150, 43, 150, 165, 165, 165, 59, | 108785 /* 1050 */ 150, 20, 165, 150, 150, 150, 150, 150, 165, 165, 108787 /* 1060 */ 173, 174, 49, 50, 25, 165, 49, 50, 165, 53, | 108786 /* 1060 */ 173, 174, 49, 50, 104, 165, 49, 50, 165, 165, 108788 /* 1070 */ 165, 53, 138, 173, 174, 104, 173, 174, 173, 174, | 108787 /* 1070 */ 165, 165, 165, 173, 174, 43, 173, 174, 173, 174, 108789 /* 1080 */ 1, 2, 22, 5, 71, 72, 69, 70, 71, 72, | 108788 /* 1080 */ 187, 24, 190, 191, 71, 72, 69, 70, 71, 72, 108790 /* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82, 108789 /* 1090 */ 73, 74, 75, 76, 77, 78, 79, 80, 150, 82, 108791 /* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108790 /* 1100 */ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 108792 /* 1110 */ 19, 98, 150, 165, 150, 1, 150, 150, 150, 150, | 108791 /* 1110 */ 19, 98, 150, 165, 150, 150, 150, 150, 150, 150, 108793 /* 1120 */ 118, 173, 174, 35, 150, 27, 76, 165, 108, 165, | 108792 /* 1120 */ 59, 173, 174, 25, 150, 190, 191, 165, 53, 165, 108794 /* 1130 */ 150, 165, 165, 165, 165, 173, 174, 173, 174, 165, | 108793 /* 1130 */ 165, 165, 165, 165, 165, 173, 174, 173, 174, 165, 108795 /* 1140 */ 49, 50, 150, 150, 76, 165, 127, 173, 174, 22, | 108794 /* 1140 */ 49, 50, 91, 92, 1, 2, 53, 173, 174, 138, 108796 /* 1150 */ 25, 22, 119, 173, 174, 23, 1, 165, 165, 193, | 108795 /* 1150 */ 104, 22, 5, 1, 35, 118, 127, 150, 193, 193, 108797 /* 1160 */ 193, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108796 /* 1160 */ 193, 70, 71, 72, 73, 74, 75, 76, 77, 78, 108798 /* 1170 */ 79, 80, 16, 82, 83, 84, 85, 86, 87, 88, | 108797 /* 1170 */ 79, 80, 165, 82, 83, 84, 85, 86, 87, 88, 108799 /* 1180 */ 89, 90, 91, 92, 19, 20, 193, 22, 150, 20, | 108798 /* 1180 */ 89, 90, 91, 92, 19, 20, 150, 22, 150, 27, 108800 /* 1190 */ 150, 26, 27, 121, 150, 119, 127, 108, 150, 128, | 108799 /* 1190 */ 150, 26, 27, 108, 150, 22, 76, 76, 150, 25, 108801 /* 1200 */ 16, 150, 37, 165, 150, 165, 23, 19, 20, 165, | 108800 /* 1200 */ 193, 165, 37, 165, 150, 165, 22, 19, 20, 165, 108802 /* 1210 */ 22, 173, 174, 165, 26, 27, 165, 150, 65, 165, | 108801 /* 1210 */ 22, 173, 174, 165, 26, 27, 23, 150, 119, 165, 108803 /* 1220 */ 23, 56, 15, 140, 150, 37, 22, 173, 174, 3, | 108802 /* 1220 */ 150, 56, 150, 150, 150, 37, 16, 173, 174, 193, 108804 /* 1230 */ 150, 66, 165, 193, 4, 150, 179, 164, 179, 165, | 108803 /* 1230 */ 150, 66, 165, 193, 1, 165, 121, 165, 165, 165, 108805 /* 1240 */ 246, 146, 147, 149, 56, 165, 150, 152, 249, 154, | 108804 /* 1240 */ 20, 146, 147, 119, 56, 165, 150, 152, 16, 154, 108806 /* 1250 */ 165, 86, 87, 88, 66, 160, 150, 150, 93, 94, | 108805 /* 1250 */ 150, 86, 87, 88, 66, 160, 150, 150, 93, 94, 108807 /* 1260 */ 95, 165, 150, 98, 249, 149, 6, 193, 149, 173, | 108806 /* 1260 */ 95, 165, 150, 98, 108, 165, 127, 23, 65, 173, 108808 /* 1270 */ 174, 165, 165, 150, 86, 87, 13, 165, 150, 173, | 108807 /* 1270 */ 174, 165, 165, 150, 86, 87, 128, 165, 150, 173, 108809 /* 1280 */ 174, 93, 94, 95, 151, 150, 98, 149, 165, 194, | 108808 /* 1280 */ 174, 93, 94, 95, 23, 150, 98, 15, 165, 194, 108810 /* 1290 */ 150, 25, 151, 165, 129, 130, 131, 132, 133, 134, | 108809 /* 1290 */ 150, 140, 22, 165, 129, 130, 131, 132, 133, 134, 108811 /* 1300 */ 165, 173, 174, 159, 116, 165, 19, 20, 150, 22, | 108810 /* 1300 */ 165, 173, 174, 3, 116, 165, 19, 20, 150, 22, 108812 /* 1310 */ 116, 150, 217, 26, 27, 194, 199, 129, 130, 131, | 108811 /* 1310 */ 4, 150, 217, 26, 27, 179, 179, 129, 130, 131, 108813 /* 1320 */ 132, 133, 134, 165, 37, 150, 165, 150, 123, 19, | 108812 /* 1320 */ 132, 133, 134, 165, 37, 150, 165, 150, 164, 19, 108814 /* 1330 */ 20, 150, 22, 124, 126, 201, 26, 27, 202, 244, | 108813 /* 1330 */ 20, 150, 22, 246, 149, 249, 26, 27, 249, 244, 108815 /* 1340 */ 165, 150, 165, 56, 122, 150, 165, 37, 173, 174, | 108814 /* 1340 */ 165, 150, 165, 56, 6, 150, 165, 37, 173, 174, 108816 /* 1350 */ 173, 174, 150, 66, 173, 174, 165, 200, 125, 135, | 108815 /* 1350 */ 173, 174, 150, 66, 173, 174, 165, 149, 149, 13, 108817 /* 1360 */ 165, 118, 150, 150, 150, 203, 56, 165, 150, 210, | 108816 /* 1360 */ 165, 25, 150, 150, 150, 149, 56, 165, 150, 116, 108818 /* 1370 */ 225, 104, 157, 86, 87, 150, 66, 165, 165, 165, | 108817 /* 1370 */ 151, 150, 150, 86, 87, 150, 66, 165, 165, 165, 108819 /* 1380 */ 93, 94, 95, 165, 150, 98, 173, 174, 157, 22, | 108818 /* 1380 */ 93, 94, 95, 165, 150, 98, 165, 165, 151, 22, 108820 /* 1390 */ 165, 211, 150, 26, 27, 150, 86, 87, 150, 165, | 108819 /* 1390 */ 165, 194, 150, 26, 27, 150, 86, 87, 159, 165, 108821 /* 1400 */ 150, 121, 210, 93, 94, 95, 210, 165, 98, 150, | 108820 /* 1400 */ 199, 126, 123, 93, 94, 95, 200, 165, 98, 124, 108822 /* 1410 */ 165, 150, 211, 165, 211, 165, 129, 130, 131, 132, | 108821 /* 1410 */ 165, 122, 201, 125, 225, 135, 129, 130, 131, 132, 108823 /* 1420 */ 133, 134, 5, 150, 165, 104, 165, 10, 11, 12, | 108822 /* 1420 */ 133, 134, 5, 157, 157, 202, 118, 10, 11, 12, 108824 /* 1430 */ 13, 14, 150, 66, 17, 183, 150, 175, 165, 129, | 108823 /* 1430 */ 13, 14, 203, 66, 17, 104, 210, 121, 211, 129, 108825 /* 1440 */ 130, 131, 132, 133, 134, 175, 47, 165, 31, 175, | 108824 /* 1440 */ 130, 131, 132, 133, 134, 210, 175, 211, 31, 211, 108826 /* 1450 */ 33, 165, 177, 86, 87, 103, 175, 178, 22, 42, | 108825 /* 1450 */ 33, 210, 104, 86, 87, 47, 175, 183, 175, 42, 108827 /* 1460 */ 228, 94, 92, 228, 175, 98, 183, 175, 175, 178, | 108826 /* 1460 */ 103, 94, 178, 177, 22, 98, 175, 92, 228, 175, 108828 /* 1470 */ 185, 96, 55, 156, 57, 18, 157, 157, 61, 156, | 108827 /* 1470 */ 175, 228, 55, 183, 57, 178, 175, 156, 61, 18, 108829 /* 1480 */ 156, 64, 157, 157, 235, 45, 135, 236, 156, 189, | 108828 /* 1480 */ 157, 64, 156, 235, 157, 156, 45, 157, 236, 157, 108830 /* 1490 */ 157, 68, 189, 22, 218, 199, 129, 130, 131, 156, | 108829 /* 1490 */ 135, 156, 189, 68, 157, 218, 129, 130, 131, 22, 108831 /* 1500 */ 192, 157, 18, 192, 192, 192, 199, 189, 218, 240, | 108830 /* 1500 */ 189, 199, 157, 156, 192, 18, 192, 192, 199, 192, 108832 /* 1510 */ 157, 240, 40, 157, 157, 243, 38, 153, 196, 181, | 108831 /* 1510 */ 218, 189, 40, 157, 38, 157, 240, 157, 240, 153, 108833 /* 1520 */ 166, 226, 105, 106, 107, 198, 176, 230, 111, 230, | 108832 /* 1520 */ 196, 181, 105, 106, 107, 243, 198, 166, 111, 230, 108834 /* 1530 */ 185, 176, 166, 116, 176, 166, 177, 209, 199, 209, | 108833 /* 1530 */ 176, 226, 239, 116, 230, 176, 166, 166, 176, 148, 108835 /* 1540 */ 239, 239, 148, 209, 196, 199, 166, 233, 208, 234, | 108834 /* 1540 */ 199, 177, 209, 209, 166, 196, 239, 208, 185, 199, 108836 /* 1550 */ 182, 186, 191, 182, 182, 195, 139, 173, 173, 186, | 108835 /* 1550 */ 92, 209, 233, 173, 234, 182, 139, 173, 182, 191, 108837 /* 1560 */ 186, 92, | 108836 /* 1560 */ 195, 182, 250, 186, 108838 }; 108837 }; 108839 #define YY_SHIFT_USE_DFLT (-70) 108838 #define YY_SHIFT_USE_DFLT (-70) 108840 #define YY_SHIFT_COUNT (419) | 108839 #define YY_SHIFT_COUNT (416) 108841 #define YY_SHIFT_MIN (-69) 108840 #define YY_SHIFT_MIN (-69) 108842 #define YY_SHIFT_MAX (1484) | 108841 #define YY_SHIFT_MAX (1487) 108843 static const short yy_shift_ofst[] = { 108842 static const short yy_shift_ofst[] = { 108844 /* 0 */ 1079, 1188, 1417, 1188, 1287, 1287, 138, 138, 312, -19, | 108843 /* 0 */ 1143, 1188, 1417, 1188, 1287, 1287, 138, 138, -2, -19, 108845 /* 10 */ 1287, 1287, 1287, 1287, 346, 383, 129, 129, 795, 1165, | 108844 /* 10 */ 1287, 1287, 1287, 1287, 347, 362, 129, 129, 795, 1165, 108846 /* 20 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108845 /* 20 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108847 /* 30 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108846 /* 30 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108848 /* 40 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287, 108847 /* 40 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1310, 1287, 108849 /* 50 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108848 /* 50 */ 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 1287, 108850 /* 60 */ 1287, 1287, 286, 383, 383, 539, 539, 74, 1194, 55, | 108849 /* 60 */ 1287, 1287, 286, 362, 362, 538, 538, 231, 1253, 55, 108851 /* 70 */ 721, 647, 573, 499, 425, 351, 277, 203, 869, 869, 108850 /* 70 */ 721, 647, 573, 499, 425, 351, 277, 203, 869, 869, 108852 /* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869, 108851 /* 80 */ 869, 869, 869, 869, 869, 869, 869, 869, 869, 869, 108853 /* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45, 108852 /* 90 */ 869, 869, 869, 943, 869, 1017, 1091, 1091, -69, -45, 108854 /* 100 */ -45, -45, -45, -45, -1, 6, -64, 383, 383, 383, | 108853 /* 100 */ -45, -45, -45, -45, -1, 24, 245, 362, 362, 362, 108855 /* 110 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, | 108854 /* 110 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 108856 /* 120 */ 383, 383, 383, 535, 515, 383, 383, 383, 383, 383, | 108855 /* 120 */ 362, 362, 362, 388, 356, 362, 362, 362, 362, 362, 108857 /* 130 */ 650, -13, 74, 906, 1469, -70, -70, -70, 1367, 57, | 108856 /* 130 */ 732, 868, 231, 1051, 1458, -70, -70, -70, 1367, 57, 108858 /* 140 */ 287, 287, 163, 291, 285, 136, 91, 538, 528, 383, | 108857 /* 140 */ 434, 434, 289, 291, 285, 1, 204, 572, 539, 362, 108859 /* 150 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, | 108858 /* 150 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 108860 /* 160 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, | 108859 /* 160 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 108861 /* 170 */ 383, 383, 383, 383, 383, 383, 383, 383, 383, 383, | 108860 /* 170 */ 362, 362, 362, 362, 362, 362, 362, 362, 362, 362, 108862 /* 180 */ 383, 688, 688, 688, 705, 1194, 1194, 1194, -70, -70, | 108861 /* 180 */ 362, 506, 506, 506, 705, 1253, 1253, 1253, -70, -70, 108863 /* 190 */ -70, 171, 171, 160, 160, 160, 190, 190, 190, 434, | 108862 /* 190 */ -70, 171, 171, 160, 502, 502, 502, 446, 432, 511, 108864 /* 200 */ 423, 513, 409, 355, 220, 492, 492, 492, 492, 532, | 108863 /* 200 */ 422, 358, 335, -12, -12, -12, -12, 576, 294, -12, 108865 /* 210 */ 586, 492, 492, 352, 80, 445, 143, 555, 164, 164, | 108864 /* 210 */ -12, 295, 595, 141, 600, 730, 723, 723, 805, 730, 108866 /* 220 */ 613, 555, 613, 590, 684, 74, 413, 74, 413, 269, | 108865 /* 220 */ 805, 439, 911, 231, 865, 231, 865, 807, 865, 723, 108867 /* 230 */ 413, 164, 405, 212, 212, 74, 363, 132, -18, 1478, | 108866 /* 230 */ 766, 633, 633, 231, 284, 63, 608, 1476, 1308, 1308, 108868 /* 240 */ 1243, 1243, 1472, 1472, 1243, 1471, 1423, 1208, 1484, 1484, | 108867 /* 240 */ 1472, 1472, 1308, 1477, 1425, 1275, 1487, 1487, 1487, 1487, 108869 /* 250 */ 1484, 1484, 1243, 1457, 1208, 1471, 1423, 1423, 1243, 1457, | 108868 /* 250 */ 1308, 1461, 1275, 1477, 1425, 1425, 1308, 1461, 1355, 1441, 108870 /* 260 */ 1351, 1440, 1243, 1243, 1457, 1243, 1457, 1243, 1457, 1375, | 108869 /* 260 */ 1308, 1308, 1461, 1308, 1461, 1308, 1461, 1442, 1348, 1348, 108871 /* 270 */ 1436, 1321, 1321, 1321, 1399, 1370, 1370, 1436, 1321, 1352, | 108870 /* 270 */ 1348, 1408, 1375, 1375, 1442, 1348, 1357, 1348, 1408, 1348, 108872 /* 280 */ 1321, 1399, 1321, 1321, 1280, 1267, 1280, 1267, 1280, 1267, | 108871 /* 280 */ 1348, 1316, 1331, 1316, 1331, 1316, 1331, 1308, 1308, 1280, 108873 /* 290 */ 1243, 1243, 1224, 1233, 1222, 1209, 1205, 1208, 1194, 1266, | 108872 /* 290 */ 1288, 1289, 1285, 1279, 1275, 1253, 1336, 1346, 1346, 1338, 108874 /* 300 */ 1263, 1263, 1260, 1260, 1260, 1260, -70, -70, -70, -70, | 108873 /* 300 */ 1338, 1338, 1338, -70, -70, -70, -70, -70, -70, 1013, 108875 /* 310 */ -70, -70, 1013, 398, 681, 314, 470, -28, 952, 240, | 108874 /* 310 */ 467, 612, 84, 179, -28, 870, 410, 761, 760, 667, 108876 /* 320 */ 945, 907, 904, 878, 835, 825, 79, 112, 205, 804, | 108875 /* 320 */ 650, 531, 220, 361, 331, 125, 127, 97, 1306, 1300, 108877 /* 330 */ 297, 1230, 1226, 1204, 1083, 1207, 1153, 1184, 1197, 1183, | 108876 /* 330 */ 1270, 1151, 1272, 1203, 1232, 1261, 1244, 1148, 1174, 1139, 108878 /* 340 */ 1071, 1125, 1069, 1089, 1076, 1169, 1072, 1156, 1155, 1033, | 108877 /* 340 */ 1156, 1124, 1220, 1115, 1210, 1233, 1099, 1193, 1184, 1174, 108879 /* 350 */ 1132, 1129, 1125, 1127, 1019, 1068, 1050, 1020, 1098, 1088, | 108878 /* 350 */ 1173, 1029, 1121, 1120, 1085, 1162, 1119, 1037, 1152, 1147, 108880 /* 360 */ 1002, 1114, 1078, 1060, 971, 934, 1018, 1039, 1016, 1000, | 108879 /* 360 */ 1129, 1046, 1011, 1093, 1098, 1075, 1061, 1032, 960, 1057, 108881 /* 370 */ 1011, 947, 1025, 1026, 990, 897, 938, 982, 936, 963, | 108880 /* 370 */ 1031, 1030, 899, 938, 982, 936, 972, 958, 910, 955, 108882 /* 380 */ 961, 957, 950, 876, 935, 914, 862, 871, 901, 899, | 108881 /* 380 */ 875, 885, 908, 857, 859, 867, 804, 590, 834, 747, 108883 /* 390 */ 780, 866, 801, 759, 593, 733, 734, 824, 728, 733, | 108882 /* 390 */ 818, 513, 611, 741, 673, 637, 611, 606, 603, 579, 108884 /* 400 */ 649, 541, 683, 529, 506, 508, 484, 450, 335, 232, | 108883 /* 400 */ 501, 541, 468, 386, 445, 395, 376, 281, 185, 120, 108885 /* 410 */ 302, 276, 265, 210, 92, 78, 151, 113, 33, 28, | 108884 /* 410 */ 92, 75, 45, 114, 25, 11, 5, 108886 }; 108885 }; 108887 #define YY_REDUCE_USE_DFLT (-169) 108886 #define YY_REDUCE_USE_DFLT (-169) 108888 #define YY_REDUCE_COUNT (311) | 108887 #define YY_REDUCE_COUNT (308) 108889 #define YY_REDUCE_MIN (-168) 108888 #define YY_REDUCE_MIN (-168) 108890 #define YY_REDUCE_MAX (1394) | 108889 #define YY_REDUCE_MAX (1391) 108891 static const short yy_reduce_ofst[] = { 108890 static const short yy_reduce_ofst[] = { 108892 /* 0 */ 485, 90, 1095, 222, 156, 19, 17, -49, 10, 322, | 108891 /* 0 */ -141, 90, 1095, 222, 158, 156, 19, 17, 10, -104, 108893 /* 10 */ 316, 311, 306, 225, 180, -51, 457, 242, 380, 1213, | 108892 /* 10 */ 378, 316, 311, 12, 180, 249, 598, 464, 397, 1181, 108894 /* 20 */ 1181, 1177, 1175, 1128, 1106, 1096, 1054, 1038, 980, 974, | 108893 /* 20 */ 1177, 1175, 1128, 1106, 1096, 1054, 1038, 974, 964, 962, 108895 /* 30 */ 964, 962, 948, 905, 903, 900, 887, 874, 829, 826, | 108894 /* 30 */ 948, 905, 903, 900, 887, 874, 832, 826, 816, 813, 108896 /* 40 */ 816, 813, 800, 752, 742, 739, 726, 678, 668, 665, | 108895 /* 40 */ 800, 758, 755, 752, 742, 739, 726, 685, 681, 668, 108897 /* 50 */ 652, 612, 610, 594, 591, 578, 537, 527, 521, 517, | 108896 /* 50 */ 665, 652, 607, 604, 594, 591, 578, 530, 528, 526, 108898 /* 60 */ 444, 318, 437, 449, 443, 154, -168, 141, 406, 551, | 108897 /* 60 */ 385, 18, 477, 466, 519, 444, 350, 435, 405, 488, 108899 /* 70 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, | 108898 /* 70 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 108900 /* 80 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, | 108899 /* 80 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 108901 /* 90 */ 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, | 108900 /* 90 */ 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 108902 /* 100 */ 551, 551, 551, 551, 551, 551, 551, 1074, 534, 1040, | 108901 /* 100 */ 488, 488, 488, 488, 488, 488, 488, 1040, 678, 1036, 108903 /* 110 */ 993, 967, 966, 845, 740, 758, 756, 746, 239, 744, | 108902 /* 110 */ 1007, 967, 966, 965, 845, 686, 610, 684, 317, 672, 108904 /* 120 */ 672, 611, 73, -119, 48, 670, 669, 666, 592, 533, | 108903 /* 120 */ 893, 327, 623, 522, -7, 820, 814, 157, 154, 101, 108905 /* 130 */ 701, 627, 587, 551, 551, 551, 551, 551, 667, 375, | 108904 /* 130 */ 702, 494, 580, 488, 488, 488, 488, 488, 614, 586, 108906 /* 140 */ 854, 817, 992, 1286, 1282, 1273, 1261, 687, 687, 1259, | 108905 /* 140 */ 935, 892, 968, 1245, 1242, 1234, 1225, 798, 798, 1222, 108907 /* 150 */ 1250, 1248, 1245, 1242, 1234, 1225, 1218, 1214, 1212, 1202, | 108906 /* 150 */ 1221, 1218, 1214, 1213, 1212, 1202, 1195, 1191, 1161, 1158, 108908 /* 160 */ 1195, 1191, 1161, 1158, 1140, 1135, 1123, 1112, 1107, 1085, | 108907 /* 160 */ 1140, 1135, 1123, 1112, 1107, 1100, 1080, 1074, 1073, 1072, 108909 /* 170 */ 1080, 1067, 1051, 1048, 1044, 992, 969, 968, 893, 892, | 108908 /* 170 */ 1070, 1067, 1048, 1044, 969, 968, 907, 906, 904, 894, 108910 /* 180 */ 891, 657, 583, 245, 544, 811, 807, 737, 609, 469, | 108909 /* 180 */ 833, 837, 836, 340, 827, 815, 775, 68, 722, 646, 108911 /* 190 */ 342, 1385, 1384, 1374, 1373, 1365, 1372, 1371, 1368, 1340, | 108910 /* 190 */ -168, 1384, 1380, 1377, 1379, 1376, 1373, 1339, 1365, 1368, 108912 /* 200 */ 1360, 1361, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1315, | 108911 /* 200 */ 1365, 1365, 1365, 1365, 1365, 1365, 1365, 1320, 1319, 1365, 108913 /* 210 */ 1314, 1360, 1360, 1340, 1380, 1348, 1394, 1346, 1334, 1330, | 108912 /* 210 */ 1365, 1339, 1378, 1349, 1391, 1350, 1342, 1334, 1307, 1341, 108914 /* 220 */ 1302, 1339, 1301, 1359, 1345, 1369, 1358, 1366, 1355, 1338, | 108913 /* 220 */ 1293, 1364, 1363, 1371, 1362, 1370, 1359, 1340, 1354, 1333, 108915 /* 230 */ 1350, 1328, 1295, 1299, 1297, 1354, 1327, 1322, 1364, 1272, | 108914 /* 230 */ 1305, 1304, 1299, 1361, 1328, 1324, 1366, 1282, 1360, 1358, 108916 /* 240 */ 1357, 1356, 1271, 1269, 1353, 1290, 1318, 1307, 1313, 1312, | 108915 /* 240 */ 1278, 1276, 1356, 1292, 1322, 1309, 1317, 1315, 1314, 1312, 108917 /* 250 */ 1311, 1308, 1344, 1343, 1296, 1276, 1303, 1300, 1333, 1332, | 108916 /* 250 */ 1345, 1347, 1302, 1277, 1311, 1303, 1337, 1335, 1252, 1248, 108918 /* 260 */ 1251, 1249, 1326, 1325, 1324, 1320, 1323, 1319, 1317, 1285, | 108917 /* 260 */ 1332, 1330, 1329, 1327, 1326, 1323, 1321, 1297, 1301, 1295, 108919 /* 270 */ 1291, 1293, 1292, 1289, 1283, 1235, 1232, 1279, 1281, 1275, | 108918 /* 270 */ 1294, 1290, 1243, 1240, 1284, 1291, 1286, 1283, 1274, 1281, 108920 /* 280 */ 1274, 1252, 1270, 1262, 1203, 1196, 1201, 1192, 1180, 1159, | 108919 /* 280 */ 1271, 1238, 1241, 1236, 1235, 1227, 1226, 1267, 1266, 1189, 108921 /* 290 */ 1231, 1215, 1145, 1162, 1136, 1134, 1157, 1117, 1121, 1144, | 108920 /* 290 */ 1229, 1223, 1211, 1206, 1201, 1197, 1239, 1237, 1219, 1216, 108922 /* 300 */ 1141, 1133, 1138, 1119, 1116, 1094, 1015, 999, 994, 1059, | 108921 /* 300 */ 1209, 1208, 1185, 1089, 1086, 1087, 1137, 1136, 1164, 108923 /* 310 */ 1057, 1073, < 108924 }; 108922 }; 108925 static const YYACTIONTYPE yy_default[] = { 108923 static const YYACTIONTYPE yy_default[] = { > 108924 /* 0 */ 632, 866, 954, 954, 866, 866, 954, 954, 954, 756, 108926 /* 0 */ 635, 869, 957, 957, 869, 869, 957, 957, 722, 759, | 108925 /* 10 */ 954, 954, 954, 864, 954, 954, 784, 784, 928, 954, 108927 /* 10 */ 957, 957, 957, 867, 957, 957, 787, 787, 931, 957, | 108926 /* 20 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108928 /* 20 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108927 /* 30 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108929 /* 30 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108928 /* 40 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108930 /* 40 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108929 /* 50 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108931 /* 50 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108930 /* 60 */ 954, 954, 954, 954, 954, 954, 954, 671, 760, 790, 108932 /* 60 */ 957, 957, 957, 957, 957, 957, 957, 674, 763, 793, | 108931 /* 70 */ 954, 954, 954, 954, 954, 954, 954, 954, 927, 929, 108933 /* 70 */ 957, 957, 957, 957, 957, 957, 957, 957, 930, 932, | 108932 /* 80 */ 798, 797, 907, 771, 795, 788, 792, 867, 860, 861, 108934 /* 80 */ 801, 800, 910, 774, 798, 791, 795, 870, 863, 864, | 108933 /* 90 */ 859, 863, 868, 954, 791, 827, 844, 826, 838, 843, 108935 /* 90 */ 862, 866, 871, 957, 794, 830, 847, 829, 841, 846, | 108934 /* 100 */ 850, 842, 839, 829, 828, 830, 831, 954, 954, 954, 108936 /* 100 */ 853, 845, 842, 832, 831, 833, 834, 957, 957, 957, | 108935 /* 110 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108937 /* 110 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108936 /* 120 */ 954, 954, 954, 658, 725, 954, 954, 954, 954, 954, 108938 /* 120 */ 957, 957, 957, 661, 728, 957, 957, 957, 957, 957, | 108937 /* 130 */ 954, 954, 954, 832, 833, 847, 846, 845, 954, 663, 108939 /* 130 */ 957, 957, 957, 835, 836, 850, 849, 848, 957, 666, | 108938 /* 140 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108940 /* 140 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108939 /* 150 */ 934, 932, 954, 879, 954, 954, 954, 954, 954, 954, 108941 /* 150 */ 937, 935, 957, 882, 957, 957, 957, 957, 957, 957, | 108940 /* 160 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108942 /* 160 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108941 /* 170 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108943 /* 170 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108942 /* 180 */ 638, 756, 756, 756, 632, 954, 954, 954, 946, 760, 108944 /* 180 */ 641, 759, 759, 759, 635, 957, 957, 957, 949, 763, | 108943 /* 190 */ 750, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108945 /* 190 */ 753, 957, 957, 957, 957, 718, 957, 957, 957, 957, | 108944 /* 200 */ 954, 954, 954, 800, 739, 917, 919, 954, 900, 737, 108946 /* 200 */ 957, 957, 957, 957, 957, 803, 742, 920, 922, 957, | 108945 /* 210 */ 660, 758, 673, 748, 640, 794, 773, 773, 912, 794, 108947 /* 210 */ 903, 740, 663, 761, 676, 751, 643, 797, 776, 776, | 108946 /* 220 */ 912, 696, 719, 954, 784, 954, 784, 693, 784, 773, 108948 /* 220 */ 915, 797, 915, 699, 722, 957, 787, 957, 787, 696, | 108947 /* 230 */ 862, 954, 954, 954, 757, 748, 954, 939, 764, 764, 108949 /* 230 */ 787, 776, 865, 957, 957, 957, 760, 751, 957, 942, | 108948 /* 240 */ 931, 931, 764, 806, 729, 794, 736, 736, 736, 736, 108950 /* 240 */ 767, 767, 934, 934, 767, 809, 732, 797, 739, 739, | 108949 /* 250 */ 764, 655, 794, 806, 729, 729, 764, 655, 906, 904, 108951 /* 250 */ 739, 739, 767, 658, 797, 809, 732, 732, 767, 658, | 108950 /* 260 */ 764, 764, 655, 764, 655, 764, 655, 872, 727, 727, 108952 /* 260 */ 909, 907, 767, 767, 658, 767, 658, 767, 658, 722, | 108951 /* 270 */ 727, 711, 876, 876, 872, 727, 696, 727, 711, 727, 108953 /* 270 */ 875, 730, 730, 730, 714, 879, 879, 875, 730, 699, | 108952 /* 280 */ 727, 777, 772, 777, 772, 777, 772, 764, 764, 954, 108954 /* 280 */ 730, 714, 730, 730, 780, 775, 780, 775, 780, 775, | 108953 /* 290 */ 789, 778, 787, 785, 794, 954, 714, 648, 648, 637, 108955 /* 290 */ 767, 767, 957, 792, 781, 790, 788, 797, 957, 717, | 108954 /* 300 */ 637, 637, 637, 951, 951, 946, 698, 698, 681, 954, 108956 /* 300 */ 651, 651, 640, 640, 640, 640, 954, 954, 949, 701, | 108955 /* 310 */ 954, 954, 954, 954, 954, 954, 881, 954, 954, 954, 108957 /* 310 */ 701, 684, 957, 957, 957, 957, 957, 957, 957, 884, | 108956 /* 320 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 633, 108958 /* 320 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108957 /* 330 */ 941, 954, 954, 938, 954, 954, 954, 954, 799, 954, 108959 /* 330 */ 957, 957, 636, 944, 957, 957, 941, 957, 957, 957, | 108958 /* 340 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 916, 108960 /* 340 */ 957, 802, 957, 957, 957, 957, 957, 957, 957, 957, | 108959 /* 350 */ 954, 954, 954, 954, 954, 954, 954, 910, 954, 954, 108961 /* 350 */ 957, 957, 919, 957, 957, 957, 957, 957, 957, 957, | 108960 /* 360 */ 954, 954, 954, 954, 903, 902, 954, 954, 954, 954, 108962 /* 360 */ 913, 957, 957, 957, 957, 957, 957, 906, 905, 957, | 108961 /* 370 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108963 /* 370 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108962 /* 380 */ 954, 954, 954, 954, 954, 954, 954, 954, 954, 954, 108964 /* 380 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108963 /* 390 */ 954, 954, 786, 954, 779, 954, 865, 954, 954, 954, 108965 /* 390 */ 957, 957, 957, 957, 957, 789, 957, 782, 957, 868, | 108964 /* 400 */ 954, 954, 954, 954, 954, 954, 954, 742, 815, 954, 108966 /* 400 */ 957, 957, 957, 957, 957, 957, 957, 957, 957, 957, | 108965 /* 410 */ 814, 818, 813, 665, 954, 646, 954, 629, 634, 950, 108967 /* 410 */ 745, 818, 957, 817, 821, 816, 668, 957, 649, 957, | 108966 /* 420 */ 953, 952, 949, 948, 947, 942, 940, 937, 936, 935, 108968 /* 420 */ 632, 637, 953, 956, 955, 952, 951, 950, 945, 943, | 108967 /* 430 */ 933, 930, 926, 885, 883, 890, 889, 888, 887, 886, 108969 /* 430 */ 940, 939, 938, 936, 933, 929, 888, 886, 893, 892, | 108968 /* 440 */ 884, 882, 880, 801, 796, 793, 925, 878, 738, 735, 108970 /* 440 */ 891, 890, 889, 887, 885, 883, 804, 799, 796, 928, | 108969 /* 450 */ 734, 654, 943, 909, 918, 805, 804, 807, 915, 914, 108971 /* 450 */ 881, 741, 738, 737, 657, 946, 912, 921, 808, 807, | 108970 /* 460 */ 913, 911, 908, 895, 803, 802, 730, 870, 869, 657, 108972 /* 460 */ 810, 918, 917, 916, 914, 911, 898, 806, 805, 733, | 108971 /* 470 */ 899, 898, 897, 901, 905, 896, 766, 656, 653, 662, 108973 /* 470 */ 873, 872, 660, 902, 901, 900, 904, 908, 899, 769, | 108972 /* 480 */ 717, 718, 726, 724, 723, 722, 721, 720, 716, 664, 108974 /* 480 */ 659, 656, 665, 721, 723, 719, 729, 727, 726, 725, | 108973 /* 490 */ 672, 710, 695, 694, 875, 877, 874, 873, 703, 702, 108975 /* 490 */ 724, 720, 667, 675, 713, 698, 697, 878, 880, 877, | 108974 /* 500 */ 708, 707, 706, 705, 704, 701, 700, 699, 692, 691, 108976 /* 500 */ 876, 706, 705, 711, 710, 709, 708, 707, 704, 703, | 108975 /* 510 */ 697, 690, 713, 712, 709, 689, 733, 732, 731, 728, 108977 /* 510 */ 702, 695, 694, 700, 693, 716, 715, 712, 692, 736, | 108976 /* 520 */ 688, 687, 686, 818, 685, 684, 824, 823, 811, 854, 108978 /* 520 */ 735, 734, 731, 691, 690, 689, 821, 688, 687, 827, | 108977 /* 530 */ 753, 752, 751, 763, 762, 775, 774, 809, 808, 776, 108979 /* 530 */ 826, 814, 857, 756, 755, 754, 766, 765, 778, 777, | 108978 /* 540 */ 761, 755, 754, 770, 769, 768, 767, 759, 749, 781, 108980 /* 540 */ 812, 811, 779, 764, 758, 757, 773, 772, 771, 770, | 108979 /* 550 */ 783, 782, 780, 856, 765, 853, 924, 923, 922, 921, 108981 /* 550 */ 762, 752, 784, 786, 785, 783, 859, 768, 856, 927, | 108980 /* 560 */ 920, 858, 857, 825, 822, 676, 677, 893, 892, 894, 108982 /* 560 */ 926, 925, 924, 923, 861, 860, 828, 825, 679, 680, | 108981 /* 570 */ 891, 679, 678, 675, 674, 855, 744, 743, 851, 848, 108983 /* 570 */ 896, 895, 897, 894, 682, 681, 678, 677, 858, 747, | 108982 /* 580 */ 840, 836, 852, 849, 841, 837, 835, 834, 820, 819, 108984 /* 580 */ 746, 854, 851, 843, 839, 855, 852, 844, 840, 838, | 108983 /* 590 */ 817, 816, 812, 821, 667, 745, 741, 740, 810, 747, 108985 /* 590 */ 837, 823, 822, 820, 819, 815, 824, 670, 748, 744, | 108984 /* 600 */ 746, 683, 682, 680, 661, 659, 652, 650, 649, 651, 108986 /* 600 */ 743, 813, 750, 749, 686, 685, 683, 664, 662, 655, | 108985 /* 610 */ 647, 645, 644, 643, 642, 641, 670, 669, 668, 666, 108987 /* 610 */ 653, 652, 654, 650, 648, 647, 646, 645, 644, 673, | 108986 /* 620 */ 665, 639, 636, 635, 631, 630, 628, 108988 /* 620 */ 672, 671, 669, 668, 642, 639, 638, 634, 633, 631, < 108989 }; 108987 }; 108990 108988 108991 /* The next table maps tokens into fallback tokens. If a construct 108989 /* The next table maps tokens into fallback tokens. If a construct 108992 ** like the following: 108990 ** like the following: 108993 ** 108991 ** 108994 ** %fallback ID X Y Z. 108992 ** %fallback ID X Y Z. 108995 ** 108993 ** ................................................................................................................................................................................ 109187 "ifnotexists", "dbnm", "columnlist", "conslist_opt", 109185 "ifnotexists", "dbnm", "columnlist", "conslist_opt", 109188 "select", "column", "columnid", "type", 109186 "select", "column", "columnid", "type", 109189 "carglist", "id", "ids", "typetoken", 109187 "carglist", "id", "ids", "typetoken", 109190 "typename", "signed", "plus_num", "minus_num", 109188 "typename", "signed", "plus_num", "minus_num", 109191 "ccons", "term", "expr", "onconf", 109189 "ccons", "term", "expr", "onconf", 109192 "sortorder", "autoinc", "idxlist_opt", "refargs", 109190 "sortorder", "autoinc", "idxlist_opt", "refargs", 109193 "defer_subclause", "refarg", "refact", "init_deferred_pred_opt" 109191 "defer_subclause", "refarg", "refact", "init_deferred_pred_opt" 109194 "conslist", "cname", "tcons", "idxlist", | 109192 "conslist", "tconscomma", "tcons", "idxlist", 109195 "defer_subclause_opt", "orconf", "resolvetype", "raisetype", 109193 "defer_subclause_opt", "orconf", "resolvetype", "raisetype", 109196 "ifexists", "fullname", "oneselect", "multiselect_op", 109194 "ifexists", "fullname", "oneselect", "multiselect_op", 109197 "distinct", "selcollist", "from", "where_opt", 109195 "distinct", "selcollist", "from", "where_opt", 109198 "groupby_opt", "having_opt", "orderby_opt", "limit_opt", 109196 "groupby_opt", "having_opt", "orderby_opt", "limit_opt", 109199 "sclp", "as", "seltablist", "stl_prefix", 109197 "sclp", "as", "seltablist", "stl_prefix", 109200 "joinop", "indexed_opt", "on_opt", "using_opt", 109198 "joinop", "indexed_opt", "on_opt", "using_opt", 109201 "joinop2", "inscollist", "sortlist", "nexprlist", 109199 "joinop2", "inscollist", "sortlist", "nexprlist", ................................................................................................................................................................................ 109299 /* 81 */ "refact ::= NO ACTION", 109297 /* 81 */ "refact ::= NO ACTION", 109300 /* 82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", 109298 /* 82 */ "defer_subclause ::= NOT DEFERRABLE init_deferred_pred_opt", 109301 /* 83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", 109299 /* 83 */ "defer_subclause ::= DEFERRABLE init_deferred_pred_opt", 109302 /* 84 */ "init_deferred_pred_opt ::=", 109300 /* 84 */ "init_deferred_pred_opt ::=", 109303 /* 85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", 109301 /* 85 */ "init_deferred_pred_opt ::= INITIALLY DEFERRED", 109304 /* 86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", 109302 /* 86 */ "init_deferred_pred_opt ::= INITIALLY IMMEDIATE", 109305 /* 87 */ "conslist_opt ::=", 109303 /* 87 */ "conslist_opt ::=", 109306 /* 88 */ "conslist_opt ::= COMMA conslist cname", | 109304 /* 88 */ "conslist_opt ::= COMMA conslist", 109307 /* 89 */ "conslist ::= conslist COMMA cname tcons", | 109305 /* 89 */ "conslist ::= conslist tconscomma tcons", 109308 /* 90 */ "conslist ::= conslist cname tcons", | 109306 /* 90 */ "conslist ::= tcons", 109309 /* 91 */ "conslist ::= cname tcons", | 109307 /* 91 */ "tconscomma ::= COMMA", 109310 /* 92 */ "cname ::=", | 109308 /* 92 */ "tconscomma ::=", 109311 /* 93 */ "cname ::= CONSTRAINT nm", | 109309 /* 93 */ "tcons ::= CONSTRAINT nm", 109312 /* 94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", 109310 /* 94 */ "tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf", 109313 /* 95 */ "tcons ::= UNIQUE LP idxlist RP onconf", 109311 /* 95 */ "tcons ::= UNIQUE LP idxlist RP onconf", 109314 /* 96 */ "tcons ::= CHECK LP expr RP onconf", 109312 /* 96 */ "tcons ::= CHECK LP expr RP onconf", 109315 /* 97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refarg 109313 /* 97 */ "tcons ::= FOREIGN KEY LP idxlist RP REFERENCES nm idxlist_opt refarg 109316 /* 98 */ "defer_subclause_opt ::=", 109314 /* 98 */ "defer_subclause_opt ::=", 109317 /* 99 */ "defer_subclause_opt ::= defer_subclause", 109315 /* 99 */ "defer_subclause_opt ::= defer_subclause", 109318 /* 100 */ "onconf ::=", 109316 /* 100 */ "onconf ::=", ................................................................................................................................................................................ 110018 { 182, 2 }, 110016 { 182, 2 }, 110019 { 180, 3 }, 110017 { 180, 3 }, 110020 { 180, 2 }, 110018 { 180, 2 }, 110021 { 183, 0 }, 110019 { 183, 0 }, 110022 { 183, 2 }, 110020 { 183, 2 }, 110023 { 183, 2 }, 110021 { 183, 2 }, 110024 { 159, 0 }, 110022 { 159, 0 }, 110025 { 159, 3 }, | 110023 { 159, 2 }, 110026 { 184, 4 }, | 110024 { 184, 3 }, 110027 { 184, 3 }, | 110025 { 184, 1 }, 110028 { 184, 2 }, | 110026 { 185, 1 }, 110029 { 185, 0 }, 110027 { 185, 0 }, 110030 { 185, 2 }, | 110028 { 186, 2 }, 110031 { 186, 7 }, 110029 { 186, 7 }, 110032 { 186, 5 }, 110030 { 186, 5 }, 110033 { 186, 5 }, 110031 { 186, 5 }, 110034 { 186, 10 }, 110032 { 186, 10 }, 110035 { 188, 0 }, 110033 { 188, 0 }, 110036 { 188, 1 }, 110034 { 188, 1 }, 110037 { 175, 0 }, 110035 { 175, 0 }, ................................................................................................................................................................................ 110461 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ 110459 yygotominor.yy0.n = (int)(&yymsp[0].minor.yy0.z[yymsp[0].minor.yy0.n] - yymsp[ 110462 } 110460 } 110463 break; 110461 break; 110464 case 50: /* typename ::= typename ids */ 110462 case 50: /* typename ::= typename ids */ 110465 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n 110463 {yygotominor.yy0.z=yymsp[-1].minor.yy0.z; yygotominor.yy0.n=yymsp[0].minor.yy0.n 110466 break; 110464 break; 110467 case 55: /* ccons ::= CONSTRAINT nm */ 110465 case 55: /* ccons ::= CONSTRAINT nm */ 110468 case 93: /* cname ::= CONSTRAINT nm */ yytestcase(yyruleno==93); | 110466 case 93: /* tcons ::= CONSTRAINT nm */ yytestcase(yyruleno==93); 110469 {pParse->constraintName = yymsp[0].minor.yy0;} 110467 {pParse->constraintName = yymsp[0].minor.yy0;} 110470 break; 110468 break; 110471 case 56: /* ccons ::= DEFAULT term */ 110469 case 56: /* ccons ::= DEFAULT term */ 110472 case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58); 110470 case 58: /* ccons ::= DEFAULT PLUS term */ yytestcase(yyruleno==58); 110473 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);} 110471 {sqlite3AddDefaultValue(pParse,&yymsp[0].minor.yy342);} 110474 break; 110472 break; 110475 case 57: /* ccons ::= DEFAULT LP expr RP */ 110473 case 57: /* ccons ::= DEFAULT LP expr RP */ ................................................................................................................................................................................ 110548 case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==10 110546 case 101: /* onconf ::= ON CONFLICT resolvetype */ yytestcase(yyruleno==10 110549 case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104); 110547 case 104: /* resolvetype ::= raisetype */ yytestcase(yyruleno==104); 110550 {yygotominor.yy392 = yymsp[0].minor.yy392;} 110548 {yygotominor.yy392 = yymsp[0].minor.yy392;} 110551 break; 110549 break; 110552 case 87: /* conslist_opt ::= */ 110550 case 87: /* conslist_opt ::= */ 110553 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;} 110551 {yygotominor.yy0.n = 0; yygotominor.yy0.z = 0;} 110554 break; 110552 break; 110555 case 88: /* conslist_opt ::= COMMA conslist cname */ | 110553 case 88: /* conslist_opt ::= COMMA conslist */ 110556 {yygotominor.yy0 = yymsp[-2].minor.yy0;} | 110554 {yygotominor.yy0 = yymsp[-1].minor.yy0;} 110557 break; 110555 break; 110558 case 92: /* cname ::= */ | 110556 case 91: /* tconscomma ::= COMMA */ 110559 {pParse->constraintName.n = 0;} 110557 {pParse->constraintName.n = 0;} 110560 break; 110558 break; 110561 case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ 110559 case 94: /* tcons ::= PRIMARY KEY LP idxlist autoinc RP onconf */ 110562 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2 110560 {sqlite3AddPrimaryKey(pParse,yymsp[-3].minor.yy442,yymsp[0].minor.yy392,yymsp[-2 110563 break; 110561 break; 110564 case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */ 110562 case 95: /* tcons ::= UNIQUE LP idxlist RP onconf */ 110565 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0, 110563 {sqlite3CreateIndex(pParse,0,0,0,yymsp[-2].minor.yy442,yymsp[0].minor.yy392,0,0, ................................................................................................................................................................................ 111424 /* (35) columnlist ::= column */ yytestcase(yyruleno==35); 111422 /* (35) columnlist ::= column */ yytestcase(yyruleno==35); 111425 /* (44) type ::= */ yytestcase(yyruleno==44); 111423 /* (44) type ::= */ yytestcase(yyruleno==44); 111426 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51); 111424 /* (51) signed ::= plus_num */ yytestcase(yyruleno==51); 111427 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52); 111425 /* (52) signed ::= minus_num */ yytestcase(yyruleno==52); 111428 /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53); 111426 /* (53) carglist ::= carglist ccons */ yytestcase(yyruleno==53); 111429 /* (54) carglist ::= */ yytestcase(yyruleno==54); 111427 /* (54) carglist ::= */ yytestcase(yyruleno==54); 111430 /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61); 111428 /* (61) ccons ::= NULL onconf */ yytestcase(yyruleno==61); 111431 /* (89) conslist ::= conslist COMMA cname tcons */ yytestcase(yyruleno==89 | 111429 /* (89) conslist ::= conslist tconscomma tcons */ yytestcase(yyruleno==89) 111432 /* (90) conslist ::= conslist cname tcons */ yytestcase(yyruleno==90); | 111430 /* (90) conslist ::= tcons */ yytestcase(yyruleno==90); 111433 /* (91) conslist ::= cname tcons */ yytestcase(yyruleno==91); | 111431 /* (92) tconscomma ::= */ yytestcase(yyruleno==92); 111434 /* (277) foreach_clause ::= */ yytestcase(yyruleno==277); 111432 /* (277) foreach_clause ::= */ yytestcase(yyruleno==277); 111435 /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278); 111433 /* (278) foreach_clause ::= FOR EACH ROW */ yytestcase(yyruleno==278); 111436 /* (285) tridxby ::= */ yytestcase(yyruleno==285); 111434 /* (285) tridxby ::= */ yytestcase(yyruleno==285); 111437 /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303); 111435 /* (303) database_kw_opt ::= DATABASE */ yytestcase(yyruleno==303); 111438 /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304); 111436 /* (304) database_kw_opt ::= */ yytestcase(yyruleno==304); 111439 /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312); 111437 /* (312) kwcolumn_opt ::= */ yytestcase(yyruleno==312); 111440 /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313); 111438 /* (313) kwcolumn_opt ::= COLUMNKW */ yytestcase(yyruleno==313); ................................................................................................................................................................................ 117369 117367 117370 SQLITE_PRIVATE void sqlite3Fts3EvalPhraseCleanup(Fts3Phrase *); 117368 SQLITE_PRIVATE void sqlite3Fts3EvalPhraseCleanup(Fts3Phrase *); 117371 117369 117372 SQLITE_PRIVATE int sqlite3Fts3MsrIncrStart( 117370 SQLITE_PRIVATE int sqlite3Fts3MsrIncrStart( 117373 Fts3Table*, Fts3MultiSegReader*, int, const char*, int); 117371 Fts3Table*, Fts3MultiSegReader*, int, const char*, int); 117374 SQLITE_PRIVATE int sqlite3Fts3MsrIncrNext( 117372 SQLITE_PRIVATE int sqlite3Fts3MsrIncrNext( 117375 Fts3Table *, Fts3MultiSegReader *, sqlite3_int64 *, char **, int *); 117373 Fts3Table *, Fts3MultiSegReader *, sqlite3_int64 *, char **, int *); 117376 SQLITE_PRIVATE char *sqlite3Fts3EvalPhrasePoslist(Fts3Cursor *, Fts3Expr *, int | 117374 SQLITE_PRIVATE int sqlite3Fts3EvalPhrasePoslist(Fts3Cursor *, Fts3Expr *, int iC 117377 SQLITE_PRIVATE int sqlite3Fts3MsrOvfl(Fts3Cursor *, Fts3MultiSegReader *, int *) 117375 SQLITE_PRIVATE int sqlite3Fts3MsrOvfl(Fts3Cursor *, Fts3MultiSegReader *, int *) 117378 SQLITE_PRIVATE int sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr); 117376 SQLITE_PRIVATE int sqlite3Fts3MsrIncrRestart(Fts3MultiSegReader *pCsr); 117379 117377 117380 SQLITE_PRIVATE int sqlite3Fts3DeferredTokenList(Fts3DeferredToken *, char **, in 117378 SQLITE_PRIVATE int sqlite3Fts3DeferredTokenList(Fts3DeferredToken *, char **, in 117381 117379 117382 #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ 117380 #endif /* !SQLITE_CORE || SQLITE_ENABLE_FTS3 */ 117383 #endif /* _FTSINT_H */ 117381 #endif /* _FTSINT_H */ ................................................................................................................................................................................ 121034 */ 121032 */ 121035 SQLITE_PRIVATE void sqlite3Fts3DoclistPrev( 121033 SQLITE_PRIVATE void sqlite3Fts3DoclistPrev( 121036 int bDescIdx, /* True if the doclist is desc */ 121034 int bDescIdx, /* True if the doclist is desc */ 121037 char *aDoclist, /* Pointer to entire doclist */ 121035 char *aDoclist, /* Pointer to entire doclist */ 121038 int nDoclist, /* Length of aDoclist in bytes */ 121036 int nDoclist, /* Length of aDoclist in bytes */ 121039 char **ppIter, /* IN/OUT: Iterator pointer */ 121037 char **ppIter, /* IN/OUT: Iterator pointer */ 121040 sqlite3_int64 *piDocid, /* IN/OUT: Docid pointer */ 121038 sqlite3_int64 *piDocid, /* IN/OUT: Docid pointer */ 121041 int *pnList, /* IN/OUT: List length pointer */ | 121039 int *pnList, /* OUT: List length pointer */ 121042 u8 *pbEof /* OUT: End-of-file flag */ 121040 u8 *pbEof /* OUT: End-of-file flag */ 121043 ){ 121041 ){ 121044 char *p = *ppIter; 121042 char *p = *ppIter; 121045 121043 121046 assert( nDoclist>0 ); 121044 assert( nDoclist>0 ); 121047 assert( *pbEof==0 ); 121045 assert( *pbEof==0 ); 121048 assert( p || *piDocid==0 ); 121046 assert( p || *piDocid==0 ); ................................................................................................................................................................................ 121080 char *pSave = p; 121078 char *pSave = p; 121081 fts3ReversePoslist(aDoclist, &p); 121079 fts3ReversePoslist(aDoclist, &p); 121082 *pnList = (int)(pSave - p); 121080 *pnList = (int)(pSave - p); 121083 } 121081 } 121084 *ppIter = p; 121082 *ppIter = p; 121085 } 121083 } 121086 } 121084 } > 121085 > 121086 /* > 121087 ** Iterate forwards through a doclist. > 121088 */ > 121089 SQLITE_PRIVATE void sqlite3Fts3DoclistNext( > 121090 int bDescIdx, /* True if the doclist is desc */ > 121091 char *aDoclist, /* Pointer to entire doclist */ > 121092 int nDoclist, /* Length of aDoclist in bytes */ > 121093 char **ppIter, /* IN/OUT: Iterator pointer */ > 121094 sqlite3_int64 *piDocid, /* IN/OUT: Docid pointer */ > 121095 u8 *pbEof /* OUT: End-of-file flag */ > 121096 ){ > 121097 char *p = *ppIter; > 121098 > 121099 assert( nDoclist>0 ); > 121100 assert( *pbEof==0 ); > 121101 assert( p || *piDocid==0 ); > 121102 assert( !p || (p>=aDoclist && p<=&aDoclist[nDoclist]) ); > 121103 > 121104 if( p==0 ){ > 121105 p = aDoclist; > 121106 p += sqlite3Fts3GetVarint(p, piDocid); > 121107 }else{ > 121108 fts3PoslistCopy(0, &p); > 121109 if( p>=&aDoclist[nDoclist] ){ > 121110 *pbEof = 1; > 121111 }else{ > 121112 sqlite3_int64 iVar; > 121113 p += sqlite3Fts3GetVarint(p, &iVar); > 121114 *piDocid += ((bDescIdx ? -1 : 1) * iVar); > 121115 } > 121116 } > 121117 > 121118 *ppIter = p; > 121119 } 121087 121120 121088 /* 121121 /* 121089 ** Attempt to move the phrase iterator to point to the next matching docid. 121122 ** Attempt to move the phrase iterator to point to the next matching docid. 121090 ** If an error occurs, return an SQLite error code. Otherwise, return 121123 ** If an error occurs, return an SQLite error code. Otherwise, return 121091 ** SQLITE_OK. 121124 ** SQLITE_OK. 121092 ** 121125 ** 121093 ** If there is no "next" entry and no error occurs, then *pbEof is set to 121126 ** If there is no "next" entry and no error occurs, then *pbEof is set to ................................................................................................................................................................................ 122236 ** for 'X' is requested, the buffer returned may contain: 122269 ** for 'X' is requested, the buffer returned may contain: 122237 ** 122270 ** 122238 ** 0x04 0x05 0x03 0x01 or 0x04 0x05 0x03 0x00 122271 ** 0x04 0x05 0x03 0x01 or 0x04 0x05 0x03 0x00 122239 ** 122272 ** 122240 ** This function works regardless of whether or not the phrase is deferred, 122273 ** This function works regardless of whether or not the phrase is deferred, 122241 ** incremental, or neither. 122274 ** incremental, or neither. 122242 */ 122275 */ 122243 SQLITE_PRIVATE char *sqlite3Fts3EvalPhrasePoslist( | 122276 SQLITE_PRIVATE int sqlite3Fts3EvalPhrasePoslist( 122244 Fts3Cursor *pCsr, /* FTS3 cursor object */ 122277 Fts3Cursor *pCsr, /* FTS3 cursor object */ 122245 Fts3Expr *pExpr, /* Phrase to return doclist for */ 122278 Fts3Expr *pExpr, /* Phrase to return doclist for */ 122246 int iCol /* Column to return position list for */ | 122279 int iCol, /* Column to return position list for */ > 122280 char **ppOut /* OUT: Pointer to position list */ 122247 ){ 122281 ){ 122248 Fts3Phrase *pPhrase = pExpr->pPhrase; 122282 Fts3Phrase *pPhrase = pExpr->pPhrase; 122249 Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; 122283 Fts3Table *pTab = (Fts3Table *)pCsr->base.pVtab; 122250 char *pIter = pPhrase->doclist.pList; | 122284 char *pIter; 122251 int iThis; 122285 int iThis; > 122286 sqlite3_int64 iDocid; 122252 122287 > 122288 /* If this phrase is applies specifically to some column other than > 122289 ** column iCol, return a NULL pointer. */ > 122290 *ppOut = 0; 122253 assert( iCol>=0 && iCol<pTab->nColumn ); 122291 assert( iCol>=0 && iCol<pTab->nColumn ); 122254 if( !pIter < 122255 || pExpr->bEof < 122256 || pExpr->iDocid!=pCsr->iPrevId < 122257 || (pPhrase->iColumn<pTab->nColumn && pPhrase->iColumn!=iCol) | 122292 if( (pPhrase->iColumn<pTab->nColumn && pPhrase->iColumn!=iCol) ){ 122258 ){ < 122259 return 0; | 122293 return SQLITE_OK; 122260 } 122294 } 122261 122295 > 122296 iDocid = pExpr->iDocid; 122262 assert( pPhrase->doclist.nList>0 ); | 122297 pIter = pPhrase->doclist.pList; > 122298 if( iDocid!=pCsr->iPrevId || pExpr->bEof ){ > 122299 int bDescDoclist = pTab->bDescIdx; /* For DOCID_CMP macro */ > 122300 int bOr = 0; > 122301 u8 bEof = 0; > 122302 Fts3Expr *p; > 122303 > 122304 /* Check if this phrase descends from an OR expression node. If not, > 122305 ** return NULL. Otherwise, the entry that corresponds to docid > 122306 ** pCsr->iPrevId may lie earlier in the doclist buffer. */ > 122307 for(p=pExpr->pParent; p; p=p->pParent){ > 122308 if( p->eType==FTSQUERY_OR ) bOr = 1; > 122309 } > 122310 if( bOr==0 ) return SQLITE_OK; > 122311 > 122312 /* This is the descendent of an OR node. In this case we cannot use > 122313 ** an incremental phrase. Load the entire doclist for the phrase > 122314 ** into memory in this case. */ > 122315 if( pPhrase->bIncr ){ > 122316 int rc = SQLITE_OK; > 122317 int bEofSave = pExpr->bEof; > 122318 fts3EvalRestart(pCsr, pExpr, &rc); > 122319 while( rc==SQLITE_OK && !pExpr->bEof ){ > 122320 fts3EvalNextRow(pCsr, pExpr, &rc); > 122321 if( bEofSave==0 && pExpr->iDocid==iDocid ) break; > 122322 } > 122323 pIter = pPhrase->doclist.pList; > 122324 assert( rc!=SQLITE_OK || pPhrase->bIncr==0 ); > 122325 if( rc!=SQLITE_OK ) return rc; > 122326 } > 122327 > 122328 if( pExpr->bEof ){ > 122329 pIter = 0; > 122330 iDocid = 0; > 122331 } > 122332 bEof = (pPhrase->doclist.nAll==0); > 122333 assert( bDescDoclist==0 || bDescDoclist==1 ); > 122334 assert( pCsr->bDesc==0 || pCsr->bDesc==1 ); > 122335 > 122336 if( pCsr->bDesc==bDescDoclist ){ > 122337 int dummy; > 122338 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)>0 ) && bEof==0 ){ > 122339 sqlite3Fts3DoclistPrev( > 122340 bDescDoclist, pPhrase->doclist.aAll, pPhrase->doclist.nAll, > 122341 &pIter, &iDocid, &dummy, &bEof > 122342 ); > 122343 } > 122344 }else{ > 122345 while( (pIter==0 || DOCID_CMP(iDocid, pCsr->iPrevId)<0 ) && bEof==0 ){ > 122346 sqlite3Fts3DoclistNext( > 122347 bDescDoclist, pPhrase->doclist.aAll, pPhrase->doclist.nAll, > 122348 &pIter, &iDocid, &bEof > 122349 ); > 122350 } > 122351 } > 122352 > 122353 if( bEof || iDocid!=pCsr->iPrevId ) pIter = 0; > 122354 } > 122355 if( pIter==0 ) return SQLITE_OK; > 122356 122263 if( *pIter==0x01 ){ 122357 if( *pIter==0x01 ){ 122264 pIter++; 122358 pIter++; 122265 pIter += sqlite3Fts3GetVarint32(pIter, &iThis); 122359 pIter += sqlite3Fts3GetVarint32(pIter, &iThis); 122266 }else{ 122360 }else{ 122267 iThis = 0; 122361 iThis = 0; 122268 } 122362 } 122269 while( iThis<iCol ){ 122363 while( iThis<iCol ){ 122270 fts3ColumnlistCopy(0, &pIter); 122364 fts3ColumnlistCopy(0, &pIter); 122271 if( *pIter==0x00 ) return 0; 122365 if( *pIter==0x00 ) return 0; 122272 pIter++; 122366 pIter++; 122273 pIter += sqlite3Fts3GetVarint32(pIter, &iThis); 122367 pIter += sqlite3Fts3GetVarint32(pIter, &iThis); 122274 } 122368 } 122275 122369 122276 return ((iCol==iThis)?pIter:0); | 122370 *ppOut = ((iCol==iThis)?pIter:0); > 122371 return SQLITE_OK; 122277 } 122372 } 122278 122373 122279 /* 122374 /* 122280 ** Free all components of the Fts3Phrase structure that were allocated by 122375 ** Free all components of the Fts3Phrase structure that were allocated by 122281 ** the eval module. Specifically, this means to free: 122376 ** the eval module. Specifically, this means to free: 122282 ** 122377 ** 122283 ** * the contents of pPhrase->doclist, and 122378 ** * the contents of pPhrase->doclist, and ................................................................................................................................................................................ 131316 ** This function is an fts3ExprIterate() callback used by fts3BestSnippet(). 131411 ** This function is an fts3ExprIterate() callback used by fts3BestSnippet(). 131317 ** Each invocation populates an element of the SnippetIter.aPhrase[] array. 131412 ** Each invocation populates an element of the SnippetIter.aPhrase[] array. 131318 */ 131413 */ 131319 static int fts3SnippetFindPositions(Fts3Expr *pExpr, int iPhrase, void *ctx){ 131414 static int fts3SnippetFindPositions(Fts3Expr *pExpr, int iPhrase, void *ctx){ 131320 SnippetIter *p = (SnippetIter *)ctx; 131415 SnippetIter *p = (SnippetIter *)ctx; 131321 SnippetPhrase *pPhrase = &p->aPhrase[iPhrase]; 131416 SnippetPhrase *pPhrase = &p->aPhrase[iPhrase]; 131322 char *pCsr; 131417 char *pCsr; > 131418 int rc; 131323 131419 131324 pPhrase->nToken = pExpr->pPhrase->nToken; 131420 pPhrase->nToken = pExpr->pPhrase->nToken; 131325 < 131326 pCsr = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol); | 131421 rc = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol, &pCsr); > 131422 assert( rc==SQLITE_OK || pCsr==0 ); 131327 if( pCsr ){ 131423 if( pCsr ){ 131328 int iFirst = 0; 131424 int iFirst = 0; 131329 pPhrase->pList = pCsr; 131425 pPhrase->pList = pCsr; 131330 fts3GetDeltaPosition(&pCsr, &iFirst); 131426 fts3GetDeltaPosition(&pCsr, &iFirst); 131331 assert( iFirst>=0 ); 131427 assert( iFirst>=0 ); 131332 pPhrase->pHead = pCsr; 131428 pPhrase->pHead = pCsr; 131333 pPhrase->pTail = pCsr; 131429 pPhrase->pTail = pCsr; 131334 pPhrase->iHead = iFirst; 131430 pPhrase->iHead = iFirst; 131335 pPhrase->iTail = iFirst; 131431 pPhrase->iTail = iFirst; 131336 }else{ 131432 }else{ > 131433 assert( rc!=SQLITE_OK || ( 131337 assert( pPhrase->pList==0 && pPhrase->pHead==0 && pPhrase->pTail==0 ); | 131434 pPhrase->pList==0 && pPhrase->pHead==0 && pPhrase->pTail==0 > 131435 )); 131338 } 131436 } 131339 131437 131340 return SQLITE_OK; | 131438 return rc; 131341 } 131439 } 131342 131440 131343 /* 131441 /* 131344 ** Select the fragment of text consisting of nFragment contiguous tokens 131442 ** Select the fragment of text consisting of nFragment contiguous tokens 131345 ** from column iCol that represent the "best" snippet. The best snippet 131443 ** from column iCol that represent the "best" snippet. The best snippet 131346 ** is the snippet with the highest score, where scores are calculated 131444 ** is the snippet with the highest score, where scores are calculated 131347 ** by adding: 131445 ** by adding: ................................................................................................................................................................................ 131726 ** array that are different for each row returned by the query. 131824 ** array that are different for each row returned by the query. 131727 */ 131825 */ 131728 static int fts3ExprLocalHitsCb( 131826 static int fts3ExprLocalHitsCb( 131729 Fts3Expr *pExpr, /* Phrase expression node */ 131827 Fts3Expr *pExpr, /* Phrase expression node */ 131730 int iPhrase, /* Phrase number */ 131828 int iPhrase, /* Phrase number */ 131731 void *pCtx /* Pointer to MatchInfo structure */ 131829 void *pCtx /* Pointer to MatchInfo structure */ 131732 ){ 131830 ){ > 131831 int rc = SQLITE_OK; 131733 MatchInfo *p = (MatchInfo *)pCtx; 131832 MatchInfo *p = (MatchInfo *)pCtx; 131734 int iStart = iPhrase * p->nCol * 3; 131833 int iStart = iPhrase * p->nCol * 3; 131735 int i; 131834 int i; 131736 131835 131737 for(i=0; i<p->nCol; i++){ | 131836 for(i=0; i<p->nCol && rc==SQLITE_OK; i++){ 131738 char *pCsr; 131837 char *pCsr; 131739 pCsr = sqlite3Fts3EvalPhrasePoslist(p->pCursor, pExpr, i); | 131838 rc = sqlite3Fts3EvalPhrasePoslist(p->pCursor, pExpr, i, &pCsr); 131740 if( pCsr ){ 131839 if( pCsr ){ 131741 p->aMatchinfo[iStart+i*3] = fts3ColumnlistCount(&pCsr); 131840 p->aMatchinfo[iStart+i*3] = fts3ColumnlistCount(&pCsr); 131742 }else{ 131841 }else{ 131743 p->aMatchinfo[iStart+i*3] = 0; 131842 p->aMatchinfo[iStart+i*3] = 0; 131744 } 131843 } 131745 } 131844 } 131746 131845 131747 return SQLITE_OK; | 131846 return rc; 131748 } 131847 } 131749 131848 131750 static int fts3MatchinfoCheck( 131849 static int fts3MatchinfoCheck( 131751 Fts3Table *pTab, 131850 Fts3Table *pTab, 131752 char cArg, 131851 char cArg, 131753 char **pzErr 131852 char **pzErr 131754 ){ 131853 ){ ................................................................................................................................................................................ 131901 } 132000 } 131902 132001 131903 for(iCol=0; iCol<pInfo->nCol; iCol++){ 132002 for(iCol=0; iCol<pInfo->nCol; iCol++){ 131904 int nLcs = 0; /* LCS value for this column */ 132003 int nLcs = 0; /* LCS value for this column */ 131905 int nLive = 0; /* Number of iterators in aIter not at EOF */ 132004 int nLive = 0; /* Number of iterators in aIter not at EOF */ 131906 132005 131907 for(i=0; i<pInfo->nPhrase; i++){ 132006 for(i=0; i<pInfo->nPhrase; i++){ > 132007 int rc; 131908 LcsIterator *pIt = &aIter[i]; 132008 LcsIterator *pIt = &aIter[i]; 131909 pIt->pRead = sqlite3Fts3EvalPhrasePoslist(pCsr, pIt->pExpr, iCol); | 132009 rc = sqlite3Fts3EvalPhrasePoslist(pCsr, pIt->pExpr, iCol, &pIt->pRead); > 132010 if( rc!=SQLITE_OK ) return rc; 131910 if( pIt->pRead ){ 132011 if( pIt->pRead ){ 131911 pIt->iPos = pIt->iPosOffset; 132012 pIt->iPos = pIt->iPosOffset; 131912 fts3LcsIteratorAdvance(&aIter[i]); 132013 fts3LcsIteratorAdvance(&aIter[i]); 131913 nLive++; 132014 nLive++; 131914 } 132015 } 131915 } 132016 } 131916 132017 ................................................................................................................................................................................ 132254 */ 132355 */ 132255 static int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx){ 132356 static int fts3ExprTermOffsetInit(Fts3Expr *pExpr, int iPhrase, void *ctx){ 132256 TermOffsetCtx *p = (TermOffsetCtx *)ctx; 132357 TermOffsetCtx *p = (TermOffsetCtx *)ctx; 132257 int nTerm; /* Number of tokens in phrase */ 132358 int nTerm; /* Number of tokens in phrase */ 132258 int iTerm; /* For looping through nTerm phrase terms */ 132359 int iTerm; /* For looping through nTerm phrase terms */ 132259 char *pList; /* Pointer to position list for phrase */ 132360 char *pList; /* Pointer to position list for phrase */ 132260 int iPos = 0; /* First position in position-list */ 132361 int iPos = 0; /* First position in position-list */ > 132362 int rc; 132261 132363 132262 UNUSED_PARAMETER(iPhrase); 132364 UNUSED_PARAMETER(iPhrase); 132263 pList = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol); | 132365 rc = sqlite3Fts3EvalPhrasePoslist(p->pCsr, pExpr, p->iCol, &pList); 132264 nTerm = pExpr->pPhrase->nToken; 132366 nTerm = pExpr->pPhrase->nToken; 132265 if( pList ){ 132367 if( pList ){ 132266 fts3GetDeltaPosition(&pList, &iPos); 132368 fts3GetDeltaPosition(&pList, &iPos); 132267 assert( iPos>=0 ); 132369 assert( iPos>=0 ); 132268 } 132370 } 132269 132371 132270 for(iTerm=0; iTerm<nTerm; iTerm++){ 132372 for(iTerm=0; iTerm<nTerm; iTerm++){ 132271 TermOffset *pT = &p->aTerm[p->iTerm++]; 132373 TermOffset *pT = &p->aTerm[p->iTerm++]; 132272 pT->iOff = nTerm-iTerm-1; 132374 pT->iOff = nTerm-iTerm-1; 132273 pT->pList = pList; 132375 pT->pList = pList; 132274 pT->iPos = iPos; 132376 pT->iPos = iPos; 132275 } 132377 } 132276 132378 132277 return SQLITE_OK; | 132379 return rc; 132278 } 132380 } 132279 132381 132280 /* 132382 /* 132281 ** Implementation of offsets() function. 132383 ** Implementation of offsets() function. 132282 */ 132384 */ 132283 SQLITE_PRIVATE void sqlite3Fts3Offsets( 132385 SQLITE_PRIVATE void sqlite3Fts3Offsets( 132284 sqlite3_context *pCtx, /* SQLite function call context */ 132386 sqlite3_context *pCtx, /* SQLite function call context */

Changes to src/sqlite3.h

105 ** 105 ** 106 ** See also: [sqlite3_libversion()], 106 ** See also: [sqlite3_libversion()], 107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()], 107 ** [sqlite3_libversion_number()], [sqlite3_sourceid()], 108 ** [sqlite_version()] and [sqlite_source_id()]. 108 ** [sqlite_version()] and [sqlite_source_id()]. 109 */ 109 */ 110 #define SQLITE_VERSION "3.7.12" 110 #define SQLITE_VERSION "3.7.12" 111 #define SQLITE_VERSION_NUMBER 3007012 111 #define SQLITE_VERSION_NUMBER 3007012 112 #define SQLITE_SOURCE_ID "2012-05-08 11:17:33 38bf90af1ede6ee64ef7be66392e8 | 112 #define SQLITE_SOURCE_ID "2012-05-12 18:29:53 e536ac041815b118c461ceee798f9 113 113 114 /* 114 /* 115 ** CAPI3REF: Run-Time Library Version Numbers 115 ** CAPI3REF: Run-Time Library Version Numbers 116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid 116 ** KEYWORDS: sqlite3_version, sqlite3_sourceid 117 ** 117 ** 118 ** These interfaces provide the same information as the [SQLITE_VERSION], 118 ** These interfaces provide the same information as the [SQLITE_VERSION], 119 ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros 119 ** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros ................................................................................................................................................................................ 6011 ** [[SQLITE_DBSTATUS_CACHE_WRITE]] ^(<dt>SQLITE_DBSTATUS_CACHE_WRITE</dt> 6011 ** [[SQLITE_DBSTATUS_CACHE_WRITE]] ^(<dt>SQLITE_DBSTATUS_CACHE_WRITE</dt> 6012 ** <dd>This parameter returns the number of dirty cache entries that have 6012 ** <dd>This parameter returns the number of dirty cache entries that have 6013 ** been written to disk. Specifically, the number of pages written to the 6013 ** been written to disk. Specifically, the number of pages written to the 6014 ** wal file in wal mode databases, or the number of pages written to the 6014 ** wal file in wal mode databases, or the number of pages written to the 6015 ** database file in rollback mode databases. Any pages written as part of 6015 ** database file in rollback mode databases. Any pages written as part of 6016 ** transaction rollback or database recovery operations are not included. 6016 ** transaction rollback or database recovery operations are not included. 6017 ** If an IO or other error occurs while writing a page to disk, the effect 6017 ** If an IO or other error occurs while writing a page to disk, the effect 6018 ** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined). ^The | 6018 ** on subsequent SQLITE_DBSTATUS_CACHE_WRITE requests is undefined.)^ ^The 6019 ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. 6019 ** highwater mark associated with SQLITE_DBSTATUS_CACHE_WRITE is always 0. 6020 ** </dd> 6020 ** </dd> 6021 ** </dl> 6021 ** </dl> 6022 */ 6022 */ 6023 #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 6023 #define SQLITE_DBSTATUS_LOOKASIDE_USED 0 6024 #define SQLITE_DBSTATUS_CACHE_USED 1 6024 #define SQLITE_DBSTATUS_CACHE_USED 1 6025 #define SQLITE_DBSTATUS_SCHEMA_USED 2 6025 #define SQLITE_DBSTATUS_SCHEMA_USED 2