github.com/pingcap/tidb/parser@v0.0.0-20231013125129-93a834a6bf8d/hintparser.go (about) 1 // Code generated by goyacc DO NOT EDIT. 2 3 // Copyright 2020 PingCAP, Inc. 4 // 5 // Licensed under the Apache License, Version 2.0 (the "License"); 6 // you may not use this file except in compliance with the License. 7 // You may obtain a copy of the License at 8 // 9 // http://www.apache.org/licenses/LICENSE-2.0 10 // 11 // Unless required by applicable law or agreed to in writing, software 12 // distributed under the License is distributed on an "AS IS" BASIS, 13 // See the License for the specific language governing permissions and 14 // limitations under the License. 15 16 package parser 17 18 import __yyfmt__ "fmt" 19 20 import ( 21 "math" 22 "strconv" 23 24 "github.com/pingcap/tidb/parser/ast" 25 "github.com/pingcap/tidb/parser/model" 26 ) 27 28 type yyhintSymType struct { 29 yys int 30 offset int 31 ident string 32 number uint64 33 hint *ast.TableOptimizerHint 34 hints []*ast.TableOptimizerHint 35 table ast.HintTable 36 modelIdents []model.CIStr 37 } 38 39 type yyhintXError struct { 40 state, xsym int 41 } 42 43 const ( 44 yyhintDefault = 57433 45 yyhintEOFCode = 57344 46 yyhintErrCode = 57345 47 hintAggToCop = 57379 48 hintBCJoin = 57401 49 hintBKA = 57355 50 hintBNL = 57357 51 hintDupsWeedOut = 57429 52 hintFalse = 57425 53 hintFirstMatch = 57430 54 hintForceIndex = 57415 55 hintGB = 57428 56 hintHashAgg = 57381 57 hintHashJoin = 57359 58 hintHashJoinBuild = 57360 59 hintHashJoinProbe = 57361 60 hintIdentifier = 57347 61 hintIgnoreIndex = 57384 62 hintIgnorePlanCache = 57380 63 hintIndexHashJoin = 57388 64 hintIndexJoin = 57385 65 hintIndexMerge = 57365 66 hintIndexMergeJoin = 57392 67 hintInlHashJoin = 57387 68 hintInlJoin = 57390 69 hintInlMergeJoin = 57391 70 hintIntLit = 57346 71 hintInvalid = 57348 72 hintJoinFixedOrder = 57351 73 hintJoinOrder = 57352 74 hintJoinPrefix = 57353 75 hintJoinSuffix = 57354 76 hintLeading = 57417 77 hintLimitToCop = 57414 78 hintLooseScan = 57431 79 hintMB = 57427 80 hintMRR = 57367 81 hintMaterialization = 57432 82 hintMaxExecutionTime = 57375 83 hintMemoryQuota = 57394 84 hintMerge = 57363 85 hintMpp1PhaseAgg = 57382 86 hintMpp2PhaseAgg = 57383 87 hintNoBKA = 57356 88 hintNoBNL = 57358 89 hintNoDecorrelate = 57419 90 hintNoHashJoin = 57362 91 hintNoICP = 57369 92 hintNoIndexHashJoin = 57389 93 hintNoIndexJoin = 57386 94 hintNoIndexMerge = 57366 95 hintNoIndexMergeJoin = 57393 96 hintNoMRR = 57368 97 hintNoMerge = 57364 98 hintNoOrderIndex = 57408 99 hintNoRangeOptimization = 57370 100 hintNoSMJoin = 57400 101 hintNoSemijoin = 57374 102 hintNoSkipScan = 57372 103 hintNoSwapJoinInputs = 57395 104 hintNthPlan = 57413 105 hintOLAP = 57420 106 hintOLTP = 57421 107 hintOrderIndex = 57407 108 hintPartition = 57422 109 hintQBName = 57378 110 hintQueryType = 57396 111 hintReadConsistentReplica = 57397 112 hintReadFromStorage = 57398 113 hintResourceGroup = 57377 114 hintSMJoin = 57399 115 hintSemiJoinRewrite = 57418 116 hintSemijoin = 57373 117 hintSetVar = 57376 118 hintShuffleJoin = 57402 119 hintSingleAtIdentifier = 57349 120 hintSkipScan = 57371 121 hintStraightJoin = 57416 122 hintStreamAgg = 57403 123 hintStringLit = 57350 124 hintSwapJoinInputs = 57404 125 hintTiFlash = 57424 126 hintTiKV = 57423 127 hintTimeRange = 57411 128 hintTrue = 57426 129 hintUseCascades = 57412 130 hintUseIndex = 57406 131 hintUseIndexMerge = 57405 132 hintUsePlanCache = 57409 133 hintUseToja = 57410 134 135 yyhintMaxDepth = 200 136 yyhintTabOfs = -213 137 ) 138 139 var ( 140 yyhintXLAT = map[int]int{ 141 41: 0, // ')' (157x) 142 57379: 1, // hintAggToCop (142x) 143 57401: 2, // hintBCJoin (142x) 144 57355: 3, // hintBKA (142x) 145 57357: 4, // hintBNL (142x) 146 57415: 5, // hintForceIndex (142x) 147 57381: 6, // hintHashAgg (142x) 148 57359: 7, // hintHashJoin (142x) 149 57360: 8, // hintHashJoinBuild (142x) 150 57361: 9, // hintHashJoinProbe (142x) 151 57384: 10, // hintIgnoreIndex (142x) 152 57380: 11, // hintIgnorePlanCache (142x) 153 57388: 12, // hintIndexHashJoin (142x) 154 57385: 13, // hintIndexJoin (142x) 155 57365: 14, // hintIndexMerge (142x) 156 57392: 15, // hintIndexMergeJoin (142x) 157 57387: 16, // hintInlHashJoin (142x) 158 57390: 17, // hintInlJoin (142x) 159 57391: 18, // hintInlMergeJoin (142x) 160 57351: 19, // hintJoinFixedOrder (142x) 161 57352: 20, // hintJoinOrder (142x) 162 57353: 21, // hintJoinPrefix (142x) 163 57354: 22, // hintJoinSuffix (142x) 164 57417: 23, // hintLeading (142x) 165 57414: 24, // hintLimitToCop (142x) 166 57375: 25, // hintMaxExecutionTime (142x) 167 57394: 26, // hintMemoryQuota (142x) 168 57363: 27, // hintMerge (142x) 169 57382: 28, // hintMpp1PhaseAgg (142x) 170 57383: 29, // hintMpp2PhaseAgg (142x) 171 57367: 30, // hintMRR (142x) 172 57356: 31, // hintNoBKA (142x) 173 57358: 32, // hintNoBNL (142x) 174 57419: 33, // hintNoDecorrelate (142x) 175 57362: 34, // hintNoHashJoin (142x) 176 57369: 35, // hintNoICP (142x) 177 57389: 36, // hintNoIndexHashJoin (142x) 178 57386: 37, // hintNoIndexJoin (142x) 179 57366: 38, // hintNoIndexMerge (142x) 180 57393: 39, // hintNoIndexMergeJoin (142x) 181 57364: 40, // hintNoMerge (142x) 182 57368: 41, // hintNoMRR (142x) 183 57408: 42, // hintNoOrderIndex (142x) 184 57370: 43, // hintNoRangeOptimization (142x) 185 57374: 44, // hintNoSemijoin (142x) 186 57372: 45, // hintNoSkipScan (142x) 187 57400: 46, // hintNoSMJoin (142x) 188 57395: 47, // hintNoSwapJoinInputs (142x) 189 57413: 48, // hintNthPlan (142x) 190 57407: 49, // hintOrderIndex (142x) 191 57378: 50, // hintQBName (142x) 192 57396: 51, // hintQueryType (142x) 193 57397: 52, // hintReadConsistentReplica (142x) 194 57398: 53, // hintReadFromStorage (142x) 195 57377: 54, // hintResourceGroup (142x) 196 57373: 55, // hintSemijoin (142x) 197 57418: 56, // hintSemiJoinRewrite (142x) 198 57376: 57, // hintSetVar (142x) 199 57402: 58, // hintShuffleJoin (142x) 200 57371: 59, // hintSkipScan (142x) 201 57399: 60, // hintSMJoin (142x) 202 57416: 61, // hintStraightJoin (142x) 203 57403: 62, // hintStreamAgg (142x) 204 57404: 63, // hintSwapJoinInputs (142x) 205 57411: 64, // hintTimeRange (142x) 206 57412: 65, // hintUseCascades (142x) 207 57406: 66, // hintUseIndex (142x) 208 57405: 67, // hintUseIndexMerge (142x) 209 57409: 68, // hintUsePlanCache (142x) 210 57410: 69, // hintUseToja (142x) 211 44: 70, // ',' (139x) 212 57429: 71, // hintDupsWeedOut (119x) 213 57430: 72, // hintFirstMatch (119x) 214 57431: 73, // hintLooseScan (119x) 215 57432: 74, // hintMaterialization (119x) 216 57424: 75, // hintTiFlash (119x) 217 57423: 76, // hintTiKV (119x) 218 57425: 77, // hintFalse (118x) 219 57420: 78, // hintOLAP (118x) 220 57421: 79, // hintOLTP (118x) 221 57426: 80, // hintTrue (118x) 222 57428: 81, // hintGB (117x) 223 57427: 82, // hintMB (117x) 224 57347: 83, // hintIdentifier (116x) 225 57349: 84, // hintSingleAtIdentifier (102x) 226 93: 85, // ']' (93x) 227 46: 86, // '.' (92x) 228 57422: 87, // hintPartition (87x) 229 61: 88, // '=' (83x) 230 40: 89, // '(' (78x) 231 57344: 90, // $end (25x) 232 57453: 91, // QueryBlockOpt (20x) 233 57445: 92, // Identifier (15x) 234 57346: 93, // hintIntLit (10x) 235 57350: 94, // hintStringLit (5x) 236 57435: 95, // CommaOpt (4x) 237 57441: 96, // HintTable (4x) 238 57442: 97, // HintTableList (4x) 239 91: 98, // '[' (3x) 240 57434: 99, // BooleanHintName (2x) 241 57436: 100, // HintIndexList (2x) 242 57438: 101, // HintStorageType (2x) 243 57439: 102, // HintStorageTypeAndTable (2x) 244 57443: 103, // HintTableListOpt (2x) 245 57448: 104, // JoinOrderOptimizerHintName (2x) 246 57449: 105, // NullaryHintName (2x) 247 57452: 106, // PartitionListOpt (2x) 248 57455: 107, // StorageOptimizerHintOpt (2x) 249 57456: 108, // SubqueryOptimizerHintName (2x) 250 57459: 109, // SubqueryStrategy (2x) 251 57460: 110, // SupportedIndexLevelOptimizerHintName (2x) 252 57461: 111, // SupportedTableLevelOptimizerHintName (2x) 253 57462: 112, // TableOptimizerHintOpt (2x) 254 57464: 113, // UnsupportedIndexLevelOptimizerHintName (2x) 255 57465: 114, // UnsupportedTableLevelOptimizerHintName (2x) 256 57467: 115, // ViewName (2x) 257 43: 116, // '+' (1x) 258 45: 117, // '-' (1x) 259 57437: 118, // HintQueryType (1x) 260 57440: 119, // HintStorageTypeAndTableList (1x) 261 57444: 120, // HintTrueOrFalse (1x) 262 57446: 121, // IndexNameList (1x) 263 57447: 122, // IndexNameListOpt (1x) 264 57450: 123, // OptimizerHintList (1x) 265 57451: 124, // PartitionList (1x) 266 57454: 125, // Start (1x) 267 57457: 126, // SubqueryStrategies (1x) 268 57458: 127, // SubqueryStrategiesOpt (1x) 269 57463: 128, // UnitOfBytes (1x) 270 57466: 129, // Value (1x) 271 57468: 130, // ViewNameList (1x) 272 57433: 131, // $default (0x) 273 57345: 132, // error (0x) 274 57348: 133, // hintInvalid (0x) 275 } 276 277 yyhintSymNames = []string{ 278 "')'", 279 "hintAggToCop", 280 "hintBCJoin", 281 "hintBKA", 282 "hintBNL", 283 "hintForceIndex", 284 "hintHashAgg", 285 "hintHashJoin", 286 "hintHashJoinBuild", 287 "hintHashJoinProbe", 288 "hintIgnoreIndex", 289 "hintIgnorePlanCache", 290 "hintIndexHashJoin", 291 "hintIndexJoin", 292 "hintIndexMerge", 293 "hintIndexMergeJoin", 294 "hintInlHashJoin", 295 "hintInlJoin", 296 "hintInlMergeJoin", 297 "hintJoinFixedOrder", 298 "hintJoinOrder", 299 "hintJoinPrefix", 300 "hintJoinSuffix", 301 "hintLeading", 302 "hintLimitToCop", 303 "hintMaxExecutionTime", 304 "hintMemoryQuota", 305 "hintMerge", 306 "hintMpp1PhaseAgg", 307 "hintMpp2PhaseAgg", 308 "hintMRR", 309 "hintNoBKA", 310 "hintNoBNL", 311 "hintNoDecorrelate", 312 "hintNoHashJoin", 313 "hintNoICP", 314 "hintNoIndexHashJoin", 315 "hintNoIndexJoin", 316 "hintNoIndexMerge", 317 "hintNoIndexMergeJoin", 318 "hintNoMerge", 319 "hintNoMRR", 320 "hintNoOrderIndex", 321 "hintNoRangeOptimization", 322 "hintNoSemijoin", 323 "hintNoSkipScan", 324 "hintNoSMJoin", 325 "hintNoSwapJoinInputs", 326 "hintNthPlan", 327 "hintOrderIndex", 328 "hintQBName", 329 "hintQueryType", 330 "hintReadConsistentReplica", 331 "hintReadFromStorage", 332 "hintResourceGroup", 333 "hintSemijoin", 334 "hintSemiJoinRewrite", 335 "hintSetVar", 336 "hintShuffleJoin", 337 "hintSkipScan", 338 "hintSMJoin", 339 "hintStraightJoin", 340 "hintStreamAgg", 341 "hintSwapJoinInputs", 342 "hintTimeRange", 343 "hintUseCascades", 344 "hintUseIndex", 345 "hintUseIndexMerge", 346 "hintUsePlanCache", 347 "hintUseToja", 348 "','", 349 "hintDupsWeedOut", 350 "hintFirstMatch", 351 "hintLooseScan", 352 "hintMaterialization", 353 "hintTiFlash", 354 "hintTiKV", 355 "hintFalse", 356 "hintOLAP", 357 "hintOLTP", 358 "hintTrue", 359 "hintGB", 360 "hintMB", 361 "hintIdentifier", 362 "hintSingleAtIdentifier", 363 "']'", 364 "'.'", 365 "hintPartition", 366 "'='", 367 "'('", 368 "$end", 369 "QueryBlockOpt", 370 "Identifier", 371 "hintIntLit", 372 "hintStringLit", 373 "CommaOpt", 374 "HintTable", 375 "HintTableList", 376 "'['", 377 "BooleanHintName", 378 "HintIndexList", 379 "HintStorageType", 380 "HintStorageTypeAndTable", 381 "HintTableListOpt", 382 "JoinOrderOptimizerHintName", 383 "NullaryHintName", 384 "PartitionListOpt", 385 "StorageOptimizerHintOpt", 386 "SubqueryOptimizerHintName", 387 "SubqueryStrategy", 388 "SupportedIndexLevelOptimizerHintName", 389 "SupportedTableLevelOptimizerHintName", 390 "TableOptimizerHintOpt", 391 "UnsupportedIndexLevelOptimizerHintName", 392 "UnsupportedTableLevelOptimizerHintName", 393 "ViewName", 394 "'+'", 395 "'-'", 396 "HintQueryType", 397 "HintStorageTypeAndTableList", 398 "HintTrueOrFalse", 399 "IndexNameList", 400 "IndexNameListOpt", 401 "OptimizerHintList", 402 "PartitionList", 403 "Start", 404 "SubqueryStrategies", 405 "SubqueryStrategiesOpt", 406 "UnitOfBytes", 407 "Value", 408 "ViewNameList", 409 "$default", 410 "error", 411 "hintInvalid", 412 } 413 414 yyhintReductions = []struct{ xsym, components int }{ 415 {0, 1}, 416 {125, 1}, 417 {123, 1}, 418 {123, 3}, 419 {123, 1}, 420 {123, 3}, 421 {112, 4}, 422 {112, 4}, 423 {112, 4}, 424 {112, 4}, 425 {112, 4}, 426 {112, 4}, 427 {112, 5}, 428 {112, 5}, 429 {112, 5}, 430 {112, 6}, 431 {112, 4}, 432 {112, 4}, 433 {112, 6}, 434 {112, 6}, 435 {112, 6}, 436 {112, 5}, 437 {112, 4}, 438 {112, 5}, 439 {107, 5}, 440 {119, 1}, 441 {119, 3}, 442 {102, 4}, 443 {91, 0}, 444 {91, 1}, 445 {95, 0}, 446 {95, 1}, 447 {106, 0}, 448 {106, 4}, 449 {124, 1}, 450 {124, 3}, 451 {103, 1}, 452 {103, 1}, 453 {97, 2}, 454 {97, 3}, 455 {96, 3}, 456 {96, 5}, 457 {130, 3}, 458 {130, 1}, 459 {115, 2}, 460 {115, 1}, 461 {100, 4}, 462 {122, 0}, 463 {122, 1}, 464 {121, 1}, 465 {121, 3}, 466 {127, 0}, 467 {127, 1}, 468 {126, 1}, 469 {126, 3}, 470 {129, 1}, 471 {129, 1}, 472 {129, 1}, 473 {129, 2}, 474 {129, 2}, 475 {128, 1}, 476 {128, 1}, 477 {120, 1}, 478 {120, 1}, 479 {104, 1}, 480 {104, 1}, 481 {104, 1}, 482 {114, 1}, 483 {114, 1}, 484 {114, 1}, 485 {114, 1}, 486 {114, 1}, 487 {111, 1}, 488 {111, 1}, 489 {111, 1}, 490 {111, 1}, 491 {111, 1}, 492 {111, 1}, 493 {111, 1}, 494 {111, 1}, 495 {111, 1}, 496 {111, 1}, 497 {111, 1}, 498 {111, 1}, 499 {111, 1}, 500 {111, 1}, 501 {111, 1}, 502 {111, 1}, 503 {111, 1}, 504 {111, 1}, 505 {111, 1}, 506 {111, 1}, 507 {111, 1}, 508 {113, 1}, 509 {113, 1}, 510 {113, 1}, 511 {113, 1}, 512 {113, 1}, 513 {113, 1}, 514 {113, 1}, 515 {110, 1}, 516 {110, 1}, 517 {110, 1}, 518 {110, 1}, 519 {110, 1}, 520 {110, 1}, 521 {108, 1}, 522 {108, 1}, 523 {109, 1}, 524 {109, 1}, 525 {109, 1}, 526 {109, 1}, 527 {99, 1}, 528 {99, 1}, 529 {105, 1}, 530 {105, 1}, 531 {105, 1}, 532 {105, 1}, 533 {105, 1}, 534 {105, 1}, 535 {105, 1}, 536 {105, 1}, 537 {105, 1}, 538 {105, 1}, 539 {105, 1}, 540 {105, 1}, 541 {105, 1}, 542 {118, 1}, 543 {118, 1}, 544 {101, 1}, 545 {101, 1}, 546 {92, 1}, 547 {92, 1}, 548 {92, 1}, 549 {92, 1}, 550 {92, 1}, 551 {92, 1}, 552 {92, 1}, 553 {92, 1}, 554 {92, 1}, 555 {92, 1}, 556 {92, 1}, 557 {92, 1}, 558 {92, 1}, 559 {92, 1}, 560 {92, 1}, 561 {92, 1}, 562 {92, 1}, 563 {92, 1}, 564 {92, 1}, 565 {92, 1}, 566 {92, 1}, 567 {92, 1}, 568 {92, 1}, 569 {92, 1}, 570 {92, 1}, 571 {92, 1}, 572 {92, 1}, 573 {92, 1}, 574 {92, 1}, 575 {92, 1}, 576 {92, 1}, 577 {92, 1}, 578 {92, 1}, 579 {92, 1}, 580 {92, 1}, 581 {92, 1}, 582 {92, 1}, 583 {92, 1}, 584 {92, 1}, 585 {92, 1}, 586 {92, 1}, 587 {92, 1}, 588 {92, 1}, 589 {92, 1}, 590 {92, 1}, 591 {92, 1}, 592 {92, 1}, 593 {92, 1}, 594 {92, 1}, 595 {92, 1}, 596 {92, 1}, 597 {92, 1}, 598 {92, 1}, 599 {92, 1}, 600 {92, 1}, 601 {92, 1}, 602 {92, 1}, 603 {92, 1}, 604 {92, 1}, 605 {92, 1}, 606 {92, 1}, 607 {92, 1}, 608 {92, 1}, 609 {92, 1}, 610 {92, 1}, 611 {92, 1}, 612 {92, 1}, 613 {92, 1}, 614 {92, 1}, 615 {92, 1}, 616 {92, 1}, 617 {92, 1}, 618 {92, 1}, 619 {92, 1}, 620 {92, 1}, 621 {92, 1}, 622 {92, 1}, 623 {92, 1}, 624 {92, 1}, 625 {92, 1}, 626 {92, 1}, 627 {92, 1}, 628 } 629 630 yyhintXErrors = map[yyhintXError]string{} 631 632 yyhintParseTab = [302][]uint16{ 633 // 0 634 {1: 287, 246, 239, 241, 275, 283, 260, 262, 263, 273, 291, 253, 249, 265, 258, 252, 248, 257, 218, 236, 237, 238, 264, 288, 225, 230, 251, 284, 285, 266, 240, 242, 294, 261, 268, 254, 250, 289, 259, 243, 267, 277, 269, 279, 271, 245, 256, 226, 276, 229, 234, 290, 235, 228, 278, 293, 227, 247, 270, 244, 292, 286, 255, 231, 281, 272, 274, 282, 280, 99: 232, 104: 219, 233, 107: 217, 224, 110: 223, 221, 216, 222, 220, 123: 215, 125: 214}, 635 {90: 213}, 636 {1: 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 399, 90: 212, 95: 512}, 637 {1: 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 90: 211}, 638 {1: 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 90: 209}, 639 // 5 640 {89: 509}, 641 {89: 506}, 642 {89: 503}, 643 {89: 498}, 644 {89: 495}, 645 // 10 646 {89: 484}, 647 {89: 472}, 648 {89: 468}, 649 {89: 464}, 650 {89: 452}, 651 // 15 652 {89: 449}, 653 {89: 437}, 654 {89: 430}, 655 {89: 425}, 656 {89: 419}, 657 // 20 658 {89: 416}, 659 {89: 410}, 660 {89: 295}, 661 {89: 149}, 662 {89: 148}, 663 // 25 664 {89: 147}, 665 {89: 146}, 666 {89: 145}, 667 {89: 144}, 668 {89: 143}, 669 // 30 670 {89: 142}, 671 {89: 141}, 672 {89: 140}, 673 {89: 139}, 674 {89: 138}, 675 // 35 676 {89: 137}, 677 {89: 136}, 678 {89: 135}, 679 {89: 134}, 680 {89: 133}, 681 // 40 682 {89: 132}, 683 {89: 131}, 684 {89: 130}, 685 {89: 129}, 686 {89: 128}, 687 // 45 688 {89: 127}, 689 {89: 126}, 690 {89: 125}, 691 {89: 124}, 692 {89: 123}, 693 // 50 694 {89: 122}, 695 {89: 121}, 696 {89: 120}, 697 {89: 119}, 698 {89: 118}, 699 // 55 700 {89: 117}, 701 {89: 116}, 702 {89: 115}, 703 {89: 114}, 704 {89: 113}, 705 // 60 706 {89: 112}, 707 {89: 111}, 708 {89: 110}, 709 {89: 109}, 710 {89: 108}, 711 // 65 712 {89: 107}, 713 {89: 106}, 714 {89: 101}, 715 {89: 100}, 716 {89: 99}, 717 // 70 718 {89: 98}, 719 {89: 97}, 720 {89: 96}, 721 {89: 95}, 722 {89: 94}, 723 // 75 724 {89: 93}, 725 {89: 92}, 726 {89: 91}, 727 {89: 90}, 728 {89: 89}, 729 // 80 730 {89: 88}, 731 {89: 87}, 732 {75: 185, 185, 84: 297, 91: 296}, 733 {75: 302, 301, 101: 300, 299, 119: 298}, 734 {184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 85: 184, 184, 184, 93: 184}, 735 // 85 736 {407, 70: 408}, 737 {188, 70: 188}, 738 {98: 303}, 739 {98: 84}, 740 {98: 83}, 741 // 90 742 {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 305, 97: 304}, 743 {70: 405, 85: 404}, 744 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 307, 96: 306}, 745 {175, 70: 175, 85: 175}, 746 {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 185, 391, 185, 91: 390}, 747 // 95 748 {82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82}, 749 {81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81}, 750 {80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80}, 751 {79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79}, 752 {78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78}, 753 // 100 754 {77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77}, 755 {76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76}, 756 {75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75}, 757 {74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74}, 758 {73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73}, 759 // 105 760 {72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72}, 761 {71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71}, 762 {70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70}, 763 {69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69}, 764 {68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68}, 765 // 110 766 {67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67}, 767 {66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66}, 768 {65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65}, 769 {64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64}, 770 {63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63}, 771 // 115 772 {62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62}, 773 {61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61}, 774 {60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60}, 775 {59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59}, 776 {58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58}, 777 // 120 778 {57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57}, 779 {56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56}, 780 {55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55}, 781 {54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54}, 782 {53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53}, 783 // 125 784 {52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52}, 785 {51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51}, 786 {50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50}, 787 {49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49}, 788 {48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48}, 789 // 130 790 {47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47}, 791 {46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46}, 792 {45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45}, 793 {44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44}, 794 {43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43}, 795 // 135 796 {42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42}, 797 {41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41}, 798 {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, 799 {39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39}, 800 {38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38}, 801 // 140 802 {37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37}, 803 {36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36}, 804 {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35}, 805 {34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34}, 806 {33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33}, 807 // 145 808 {32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}, 809 {31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}, 810 {30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30}, 811 {29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29}, 812 {28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28}, 813 // 150 814 {27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27}, 815 {26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26}, 816 {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25}, 817 {24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24}, 818 {23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23}, 819 // 155 820 {22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22}, 821 {21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21}, 822 {20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20}, 823 {19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19}, 824 {18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18}, 825 // 160 826 {17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17}, 827 {16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16}, 828 {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, 829 {14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14}, 830 {13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13}, 831 // 165 832 {12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, 833 {11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11}, 834 {10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10}, 835 {9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9}, 836 {8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, 837 // 170 838 {7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}, 839 {6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}, 840 {5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5}, 841 {4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, 842 {3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, 843 // 175 844 {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, 845 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, 846 {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 394, 106: 403}, 847 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 392}, 848 {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 185, 87: 185, 91: 393}, 849 // 180 850 {181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 85: 181, 87: 394, 106: 395}, 851 {89: 396}, 852 {172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 85: 172}, 853 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 398, 124: 397}, 854 {400, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 399, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 401}, 855 // 185 856 {179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179}, 857 {182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 71: 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 94: 182}, 858 {180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 85: 180}, 859 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 402}, 860 {178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178}, 861 // 190 862 {173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 85: 173}, 863 {186, 70: 186}, 864 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 307, 96: 406}, 865 {174, 70: 174, 85: 174}, 866 {1: 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 90: 189}, 867 // 195 868 {75: 302, 301, 101: 300, 409}, 869 {187, 70: 187}, 870 {78: 185, 185, 84: 297, 91: 411}, 871 {78: 413, 414, 118: 412}, 872 {415}, 873 // 200 874 {86}, 875 {85}, 876 {1: 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 90: 190}, 877 {185, 84: 297, 91: 417}, 878 {418}, 879 // 205 880 {1: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 90: 191}, 881 {77: 185, 80: 185, 84: 297, 91: 420}, 882 {77: 423, 80: 422, 120: 421}, 883 {424}, 884 {151}, 885 // 210 886 {150}, 887 {1: 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 90: 192}, 888 {94: 426}, 889 {70: 399, 94: 183, 427}, 890 {94: 428}, 891 // 215 892 {429}, 893 {1: 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 193, 90: 193}, 894 {84: 297, 91: 431, 93: 185}, 895 {93: 432}, 896 {81: 435, 434, 128: 433}, 897 // 220 898 {436}, 899 {153}, 900 {152}, 901 {1: 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, 90: 194}, 902 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 438}, 903 // 225 904 {439, 70: 440}, 905 {1: 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 90: 196}, 906 {185, 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 297, 86: 185, 91: 444, 443, 115: 442, 130: 441}, 907 {446, 86: 447}, 908 {170, 86: 170}, 909 // 230 910 {185, 84: 297, 86: 185, 91: 445}, 911 {168, 86: 168}, 912 {169, 86: 169}, 913 {1: 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 90: 195}, 914 {185, 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 297, 86: 185, 91: 444, 443, 115: 448}, 915 // 235 916 {171, 86: 171}, 917 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 450}, 918 {451}, 919 {1: 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, 90: 197}, 920 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 453}, 921 // 240 922 {88: 454}, 923 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 457, 458, 456, 116: 459, 460, 129: 455}, 924 {463}, 925 {158}, 926 {157}, 927 // 245 928 {156}, 929 {93: 462}, 930 {93: 461}, 931 {154}, 932 {155}, 933 // 250 934 {1: 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 90: 198}, 935 {84: 297, 91: 465, 93: 185}, 936 {93: 466}, 937 {467}, 938 {1: 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 90: 199}, 939 // 255 940 {84: 297, 91: 469, 93: 185}, 941 {93: 470}, 942 {471}, 943 {1: 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 200, 90: 200}, 944 {185, 71: 185, 185, 185, 185, 84: 297, 91: 473}, 945 // 260 946 {162, 71: 477, 478, 479, 480, 109: 476, 126: 475, 474}, 947 {483}, 948 {161, 70: 481}, 949 {160, 70: 160}, 950 {105, 70: 105}, 951 // 265 952 {104, 70: 104}, 953 {103, 70: 103}, 954 {102, 70: 102}, 955 {71: 477, 478, 479, 480, 109: 482}, 956 {159, 70: 159}, 957 // 270 958 {1: 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 90: 201}, 959 {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 486, 100: 485}, 960 {494}, 961 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 307, 96: 487}, 962 {183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 399, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 95: 488}, 963 // 275 964 {166, 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 491, 121: 490, 489}, 965 {167}, 966 {165, 70: 492}, 967 {164, 70: 164}, 968 {1: 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 493}, 969 // 280 970 {163, 70: 163}, 971 {1: 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 90: 202}, 972 {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 486, 100: 496}, 973 {497}, 974 {1: 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 90: 203}, 975 // 285 976 {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 501, 97: 500, 103: 499}, 977 {502}, 978 {177, 70: 405}, 979 {176, 337, 360, 313, 315, 373, 340, 317, 318, 319, 343, 339, 345, 348, 323, 351, 344, 347, 350, 309, 310, 311, 312, 375, 338, 333, 353, 321, 341, 342, 325, 314, 316, 377, 320, 327, 346, 349, 324, 352, 322, 326, 367, 328, 332, 330, 359, 354, 372, 366, 336, 355, 356, 357, 335, 331, 376, 334, 361, 329, 358, 374, 362, 363, 370, 371, 365, 364, 368, 369, 71: 386, 387, 388, 389, 381, 380, 382, 378, 379, 383, 385, 384, 308, 92: 307, 96: 306}, 980 {1: 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 90: 204}, 981 // 290 982 {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 501, 97: 500, 103: 504}, 983 {505}, 984 {1: 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 90: 205}, 985 {1: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 71: 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 297, 91: 305, 97: 507}, 986 {508, 70: 405}, 987 // 295 988 {1: 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 90: 206}, 989 {185, 84: 297, 91: 510}, 990 {511}, 991 {1: 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, 90: 207}, 992 {1: 287, 246, 239, 241, 275, 283, 260, 262, 263, 273, 291, 253, 249, 265, 258, 252, 248, 257, 218, 236, 237, 238, 264, 288, 225, 230, 251, 284, 285, 266, 240, 242, 294, 261, 268, 254, 250, 289, 259, 243, 267, 277, 269, 279, 271, 245, 256, 226, 276, 229, 234, 290, 235, 228, 278, 293, 227, 247, 270, 244, 292, 286, 255, 231, 281, 272, 274, 282, 280, 99: 232, 104: 219, 233, 107: 514, 224, 110: 223, 221, 513, 222, 220}, 993 // 300 994 {1: 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, 90: 210}, 995 {1: 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 90: 208}, 996 } 997 ) 998 999 var yyhintDebug = 0 1000 1001 type yyhintLexer interface { 1002 Lex(lval *yyhintSymType) int 1003 Errorf(format string, a ...interface{}) error 1004 AppendError(err error) 1005 AppendWarn(err error) 1006 Errors() (warns []error, errs []error) 1007 } 1008 1009 type yyhintLexerEx interface { 1010 yyhintLexer 1011 Reduced(rule, state int, lval *yyhintSymType) bool 1012 } 1013 1014 func yyhintSymName(c int) (s string) { 1015 x, ok := yyhintXLAT[c] 1016 if ok { 1017 return yyhintSymNames[x] 1018 } 1019 1020 return __yyfmt__.Sprintf("%d", c) 1021 } 1022 1023 func yyhintlex1(yylex yyhintLexer, lval *yyhintSymType) (n int) { 1024 n = yylex.Lex(lval) 1025 if n <= 0 { 1026 n = yyhintEOFCode 1027 } 1028 if yyhintDebug >= 3 { 1029 __yyfmt__.Printf("\nlex %s(%#x %d), lval: %+v\n", yyhintSymName(n), n, n, lval) 1030 } 1031 return n 1032 } 1033 1034 func yyhintParse(yylex yyhintLexer, parser *hintParser) int { 1035 const yyError = 132 1036 1037 yyEx, _ := yylex.(yyhintLexerEx) 1038 var yyn int 1039 parser.yylval = yyhintSymType{} 1040 yyS := parser.cache 1041 1042 Nerrs := 0 /* number of errors */ 1043 Errflag := 0 /* error recovery flag */ 1044 yyerrok := func() { 1045 if yyhintDebug >= 2 { 1046 __yyfmt__.Printf("yyerrok()\n") 1047 } 1048 Errflag = 0 1049 } 1050 _ = yyerrok 1051 yystate := 0 1052 yychar := -1 1053 var yyxchar int 1054 var yyshift int 1055 yyp := -1 1056 goto yystack 1057 1058 ret0: 1059 return 0 1060 1061 ret1: 1062 return 1 1063 1064 yystack: 1065 /* put a state and value onto the stack */ 1066 yyp++ 1067 if yyp+1 >= len(yyS) { 1068 nyys := make([]yyhintSymType, len(yyS)*2) 1069 copy(nyys, yyS) 1070 yyS = nyys 1071 parser.cache = yyS 1072 } 1073 parser.yyVAL = &yyS[yyp+1] 1074 yyS[yyp].yys = yystate 1075 1076 yynewstate: 1077 if yychar < 0 { 1078 yychar = yyhintlex1(yylex, &parser.yylval) 1079 var ok bool 1080 if yyxchar, ok = yyhintXLAT[yychar]; !ok { 1081 yyxchar = len(yyhintSymNames) // > tab width 1082 } 1083 } 1084 if yyhintDebug >= 4 { 1085 var a []int 1086 for _, v := range yyS[:yyp+1] { 1087 a = append(a, v.yys) 1088 } 1089 __yyfmt__.Printf("state stack %v\n", a) 1090 } 1091 row := yyhintParseTab[yystate] 1092 yyn = 0 1093 if yyxchar < len(row) { 1094 if yyn = int(row[yyxchar]); yyn != 0 { 1095 yyn += yyhintTabOfs 1096 } 1097 } 1098 switch { 1099 case yyn > 0: // shift 1100 yychar = -1 1101 *parser.yyVAL = parser.yylval 1102 yystate = yyn 1103 yyshift = yyn 1104 if yyhintDebug >= 2 { 1105 __yyfmt__.Printf("shift, and goto state %d\n", yystate) 1106 } 1107 if Errflag > 0 { 1108 Errflag-- 1109 } 1110 goto yystack 1111 case yyn < 0: // reduce 1112 case yystate == 1: // accept 1113 if yyhintDebug >= 2 { 1114 __yyfmt__.Println("accept") 1115 } 1116 goto ret0 1117 } 1118 1119 if yyn == 0 { 1120 /* error ... attempt to resume parsing */ 1121 switch Errflag { 1122 case 0: /* brand new error */ 1123 if yyhintDebug >= 1 { 1124 __yyfmt__.Printf("no action for %s in state %d\n", yyhintSymName(yychar), yystate) 1125 } 1126 msg, ok := yyhintXErrors[yyhintXError{yystate, yyxchar}] 1127 if !ok { 1128 msg, ok = yyhintXErrors[yyhintXError{yystate, -1}] 1129 } 1130 if !ok && yyshift != 0 { 1131 msg, ok = yyhintXErrors[yyhintXError{yyshift, yyxchar}] 1132 } 1133 if !ok { 1134 msg, ok = yyhintXErrors[yyhintXError{yyshift, -1}] 1135 } 1136 if !ok || msg == "" { 1137 msg = "syntax error" 1138 } 1139 // ignore goyacc error message 1140 yylex.AppendError(yylex.Errorf("")) 1141 Nerrs++ 1142 fallthrough 1143 1144 case 1, 2: /* incompletely recovered error ... try again */ 1145 Errflag = 3 1146 1147 /* find a state where "error" is a legal shift action */ 1148 for yyp >= 0 { 1149 row := yyhintParseTab[yyS[yyp].yys] 1150 if yyError < len(row) { 1151 yyn = int(row[yyError]) + yyhintTabOfs 1152 if yyn > 0 { // hit 1153 if yyhintDebug >= 2 { 1154 __yyfmt__.Printf("error recovery found error shift in state %d\n", yyS[yyp].yys) 1155 } 1156 yystate = yyn /* simulate a shift of "error" */ 1157 goto yystack 1158 } 1159 } 1160 1161 /* the current p has no shift on "error", pop stack */ 1162 if yyhintDebug >= 2 { 1163 __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) 1164 } 1165 yyp-- 1166 } 1167 /* there is no state on the stack with an error shift ... abort */ 1168 if yyhintDebug >= 2 { 1169 __yyfmt__.Printf("error recovery failed\n") 1170 } 1171 goto ret1 1172 1173 case 3: /* no shift yet; clobber input char */ 1174 if yyhintDebug >= 2 { 1175 __yyfmt__.Printf("error recovery discards %s\n", yyhintSymName(yychar)) 1176 } 1177 if yychar == yyhintEOFCode { 1178 goto ret1 1179 } 1180 1181 yychar = -1 1182 goto yynewstate /* try again in the same state */ 1183 } 1184 } 1185 1186 r := -yyn 1187 x0 := yyhintReductions[r] 1188 x, n := x0.xsym, x0.components 1189 yypt := yyp 1190 _ = yypt // guard against "declared and not used" 1191 1192 yyp -= n 1193 if yyp+1 >= len(yyS) { 1194 nyys := make([]yyhintSymType, len(yyS)*2) 1195 copy(nyys, yyS) 1196 yyS = nyys 1197 parser.cache = yyS 1198 } 1199 parser.yyVAL = &yyS[yyp+1] 1200 1201 /* consult goto table to find next state */ 1202 exState := yystate 1203 yystate = int(yyhintParseTab[yyS[yyp].yys][x]) + yyhintTabOfs 1204 /* reduction by production r */ 1205 if yyhintDebug >= 2 { 1206 __yyfmt__.Printf("reduce using rule %v (%s), and goto state %d\n", r, yyhintSymNames[x], yystate) 1207 } 1208 1209 switch r { 1210 case 1: 1211 { 1212 parser.result = yyS[yypt-0].hints 1213 } 1214 case 2: 1215 { 1216 if yyS[yypt-0].hint != nil { 1217 parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} 1218 } 1219 } 1220 case 3: 1221 { 1222 if yyS[yypt-0].hint != nil { 1223 parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) 1224 } else { 1225 parser.yyVAL.hints = yyS[yypt-2].hints 1226 } 1227 } 1228 case 4: 1229 { 1230 parser.yyVAL.hints = yyS[yypt-0].hints 1231 } 1232 case 5: 1233 { 1234 parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hints...) 1235 } 1236 case 6: 1237 { 1238 parser.warnUnsupportedHint(yyS[yypt-3].ident) 1239 parser.yyVAL.hint = nil 1240 } 1241 case 7: 1242 { 1243 parser.warnUnsupportedHint(yyS[yypt-3].ident) 1244 parser.yyVAL.hint = nil 1245 } 1246 case 8: 1247 { 1248 parser.warnUnsupportedHint(yyS[yypt-3].ident) 1249 parser.yyVAL.hint = nil 1250 } 1251 case 9: 1252 { 1253 h := yyS[yypt-1].hint 1254 h.HintName = model.NewCIStr(yyS[yypt-3].ident) 1255 parser.yyVAL.hint = h 1256 } 1257 case 10: 1258 { 1259 parser.warnUnsupportedHint(yyS[yypt-3].ident) 1260 parser.yyVAL.hint = nil 1261 } 1262 case 11: 1263 { 1264 h := yyS[yypt-1].hint 1265 h.HintName = model.NewCIStr(yyS[yypt-3].ident) 1266 parser.yyVAL.hint = h 1267 } 1268 case 12: 1269 { 1270 parser.warnUnsupportedHint(yyS[yypt-4].ident) 1271 parser.yyVAL.hint = nil 1272 } 1273 case 13: 1274 { 1275 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1276 HintName: model.NewCIStr(yyS[yypt-4].ident), 1277 QBName: model.NewCIStr(yyS[yypt-2].ident), 1278 HintData: yyS[yypt-1].number, 1279 } 1280 } 1281 case 14: 1282 { 1283 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1284 HintName: model.NewCIStr(yyS[yypt-4].ident), 1285 QBName: model.NewCIStr(yyS[yypt-2].ident), 1286 HintData: int64(yyS[yypt-1].number), 1287 } 1288 } 1289 case 15: 1290 { 1291 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1292 HintName: model.NewCIStr(yyS[yypt-5].ident), 1293 HintData: ast.HintSetVar{ 1294 VarName: yyS[yypt-3].ident, 1295 Value: yyS[yypt-1].ident, 1296 }, 1297 } 1298 } 1299 case 16: 1300 { 1301 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1302 HintName: model.NewCIStr(yyS[yypt-3].ident), 1303 HintData: yyS[yypt-1].ident, 1304 } 1305 } 1306 case 17: 1307 { 1308 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1309 HintName: model.NewCIStr(yyS[yypt-3].ident), 1310 QBName: model.NewCIStr(yyS[yypt-1].ident), 1311 } 1312 } 1313 case 18: 1314 { 1315 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1316 HintName: model.NewCIStr(yyS[yypt-5].ident), 1317 QBName: model.NewCIStr(yyS[yypt-3].ident), 1318 Tables: yyS[yypt-1].hint.Tables, 1319 } 1320 } 1321 case 19: 1322 { 1323 maxValue := uint64(math.MaxInt64) / yyS[yypt-1].number 1324 if yyS[yypt-2].number <= maxValue { 1325 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1326 HintName: model.NewCIStr(yyS[yypt-5].ident), 1327 HintData: int64(yyS[yypt-2].number * yyS[yypt-1].number), 1328 QBName: model.NewCIStr(yyS[yypt-3].ident), 1329 } 1330 } else { 1331 yylex.AppendError(ErrWarnMemoryQuotaOverflow.GenWithStackByArgs(math.MaxInt64)) 1332 parser.lastErrorAsWarn() 1333 parser.yyVAL.hint = nil 1334 } 1335 } 1336 case 20: 1337 { 1338 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1339 HintName: model.NewCIStr(yyS[yypt-5].ident), 1340 HintData: ast.HintTimeRange{ 1341 From: yyS[yypt-3].ident, 1342 To: yyS[yypt-1].ident, 1343 }, 1344 } 1345 } 1346 case 21: 1347 { 1348 h := yyS[yypt-1].hint 1349 h.HintName = model.NewCIStr(yyS[yypt-4].ident) 1350 h.QBName = model.NewCIStr(yyS[yypt-2].ident) 1351 parser.yyVAL.hint = h 1352 } 1353 case 22: 1354 { 1355 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1356 HintName: model.NewCIStr(yyS[yypt-3].ident), 1357 QBName: model.NewCIStr(yyS[yypt-1].ident), 1358 } 1359 } 1360 case 23: 1361 { 1362 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1363 HintName: model.NewCIStr(yyS[yypt-4].ident), 1364 QBName: model.NewCIStr(yyS[yypt-2].ident), 1365 HintData: model.NewCIStr(yyS[yypt-1].ident), 1366 } 1367 } 1368 case 24: 1369 { 1370 hs := yyS[yypt-1].hints 1371 name := model.NewCIStr(yyS[yypt-4].ident) 1372 qb := model.NewCIStr(yyS[yypt-2].ident) 1373 for _, h := range hs { 1374 h.HintName = name 1375 h.QBName = qb 1376 } 1377 parser.yyVAL.hints = hs 1378 } 1379 case 25: 1380 { 1381 parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} 1382 } 1383 case 26: 1384 { 1385 parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) 1386 } 1387 case 27: 1388 { 1389 h := yyS[yypt-1].hint 1390 h.HintData = model.NewCIStr(yyS[yypt-3].ident) 1391 parser.yyVAL.hint = h 1392 } 1393 case 28: 1394 { 1395 parser.yyVAL.ident = "" 1396 } 1397 case 32: 1398 { 1399 parser.yyVAL.modelIdents = nil 1400 } 1401 case 33: 1402 { 1403 parser.yyVAL.modelIdents = yyS[yypt-1].modelIdents 1404 } 1405 case 34: 1406 { 1407 parser.yyVAL.modelIdents = []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)} 1408 } 1409 case 35: 1410 { 1411 parser.yyVAL.modelIdents = append(yyS[yypt-2].modelIdents, model.NewCIStr(yyS[yypt-0].ident)) 1412 } 1413 case 37: 1414 { 1415 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1416 QBName: model.NewCIStr(yyS[yypt-0].ident), 1417 } 1418 } 1419 case 38: 1420 { 1421 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1422 Tables: []ast.HintTable{yyS[yypt-0].table}, 1423 QBName: model.NewCIStr(yyS[yypt-1].ident), 1424 } 1425 } 1426 case 39: 1427 { 1428 h := yyS[yypt-2].hint 1429 h.Tables = append(h.Tables, yyS[yypt-0].table) 1430 parser.yyVAL.hint = h 1431 } 1432 case 40: 1433 { 1434 parser.yyVAL.table = ast.HintTable{ 1435 TableName: model.NewCIStr(yyS[yypt-2].ident), 1436 QBName: model.NewCIStr(yyS[yypt-1].ident), 1437 PartitionList: yyS[yypt-0].modelIdents, 1438 } 1439 } 1440 case 41: 1441 { 1442 parser.yyVAL.table = ast.HintTable{ 1443 DBName: model.NewCIStr(yyS[yypt-4].ident), 1444 TableName: model.NewCIStr(yyS[yypt-2].ident), 1445 QBName: model.NewCIStr(yyS[yypt-1].ident), 1446 PartitionList: yyS[yypt-0].modelIdents, 1447 } 1448 } 1449 case 42: 1450 { 1451 h := yyS[yypt-2].hint 1452 h.Tables = append(h.Tables, yyS[yypt-0].table) 1453 parser.yyVAL.hint = h 1454 } 1455 case 43: 1456 { 1457 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1458 Tables: []ast.HintTable{yyS[yypt-0].table}, 1459 } 1460 } 1461 case 44: 1462 { 1463 parser.yyVAL.table = ast.HintTable{ 1464 TableName: model.NewCIStr(yyS[yypt-1].ident), 1465 QBName: model.NewCIStr(yyS[yypt-0].ident), 1466 } 1467 } 1468 case 45: 1469 { 1470 parser.yyVAL.table = ast.HintTable{ 1471 QBName: model.NewCIStr(yyS[yypt-0].ident), 1472 } 1473 } 1474 case 46: 1475 { 1476 h := yyS[yypt-0].hint 1477 h.Tables = []ast.HintTable{yyS[yypt-2].table} 1478 h.QBName = model.NewCIStr(yyS[yypt-3].ident) 1479 parser.yyVAL.hint = h 1480 } 1481 case 47: 1482 { 1483 parser.yyVAL.hint = &ast.TableOptimizerHint{} 1484 } 1485 case 49: 1486 { 1487 parser.yyVAL.hint = &ast.TableOptimizerHint{ 1488 Indexes: []model.CIStr{model.NewCIStr(yyS[yypt-0].ident)}, 1489 } 1490 } 1491 case 50: 1492 { 1493 h := yyS[yypt-2].hint 1494 h.Indexes = append(h.Indexes, model.NewCIStr(yyS[yypt-0].ident)) 1495 parser.yyVAL.hint = h 1496 } 1497 case 57: 1498 { 1499 parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) 1500 } 1501 case 58: 1502 { 1503 parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) 1504 } 1505 case 59: 1506 { 1507 if yyS[yypt-0].number > 9223372036854775808 { 1508 yylex.AppendError(yylex.Errorf("the Signed Value should be at the range of [-9223372036854775808, 9223372036854775807].")) 1509 return 1 1510 } else if yyS[yypt-0].number == 9223372036854775808 { 1511 signed_one := int64(1) 1512 parser.yyVAL.ident = strconv.FormatInt(signed_one<<63, 10) 1513 } else { 1514 parser.yyVAL.ident = strconv.FormatInt(-int64(yyS[yypt-0].number), 10) 1515 } 1516 } 1517 case 60: 1518 { 1519 parser.yyVAL.number = 1024 * 1024 1520 } 1521 case 61: 1522 { 1523 parser.yyVAL.number = 1024 * 1024 * 1024 1524 } 1525 case 62: 1526 { 1527 parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: true} 1528 } 1529 case 63: 1530 { 1531 parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: false} 1532 } 1533 1534 } 1535 1536 if !parser.lexer.skipPositionRecording { 1537 yyhintSetOffset(parser.yyVAL, parser.yyVAL.offset) 1538 } 1539 1540 if yyEx != nil && yyEx.Reduced(r, exState, parser.yyVAL) { 1541 return -1 1542 } 1543 goto yystack /* stack new state and value */ 1544 }