// Code generated by goyacc DO NOT EDIT. // Copyright 2020 PingCAP, Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // See the License for the specific language governing permissions and // limitations under the License. package parser import __yyfmt__ "fmt" import ( "math" "strconv" "github.com/pingcap/tidb/pkg/parser/ast" ) type yyhintSymType struct { yys int offset int ident string number uint64 hint *ast.TableOptimizerHint hints []*ast.TableOptimizerHint table ast.HintTable modelIdents []ast.CIStr leadingList *ast.LeadingList leadingElement interface{} // Modified: Represents either *ast.HintTable or *ast.LeadingList } type yyhintXError struct { state, xsym int } const ( yyhintDefault = 57437 yyhintEOFCode = 57344 yyhintErrCode = 57345 hintAggToCop = 57380 hintBCJoin = 57403 hintBKA = 57355 hintBNL = 57357 hintDupsWeedOut = 57433 hintFalse = 57429 hintFirstMatch = 57434 hintForceIndex = 57419 hintGB = 57432 hintHashAgg = 57383 hintHashJoin = 57359 hintHashJoinBuild = 57360 hintHashJoinProbe = 57361 hintHypoIndex = 57379 hintIdentifier = 57347 hintIgnoreIndex = 57386 hintIgnorePlanCache = 57381 hintIndexHashJoin = 57390 hintIndexJoin = 57387 hintIndexLookUpPushDown = 57411 hintIndexMerge = 57365 hintIndexMergeJoin = 57394 hintInlHashJoin = 57389 hintInlJoin = 57392 hintInlMergeJoin = 57393 hintIntLit = 57346 hintInvalid = 57348 hintJoinFixedOrder = 57351 hintJoinOrder = 57352 hintJoinPrefix = 57353 hintJoinSuffix = 57354 hintLeading = 57421 hintLimitToCop = 57418 hintLooseScan = 57435 hintMB = 57431 hintMRR = 57367 hintMaterialization = 57436 hintMaxExecutionTime = 57375 hintMemoryQuota = 57396 hintMerge = 57363 hintMpp1PhaseAgg = 57384 hintMpp2PhaseAgg = 57385 hintNoBKA = 57356 hintNoBNL = 57358 hintNoDecorrelate = 57423 hintNoHashJoin = 57362 hintNoICP = 57369 hintNoIndexHashJoin = 57391 hintNoIndexJoin = 57388 hintNoIndexLookUpPushDown = 57412 hintNoIndexMerge = 57366 hintNoIndexMergeJoin = 57395 hintNoMRR = 57368 hintNoMerge = 57364 hintNoOrderIndex = 57410 hintNoRangeOptimization = 57370 hintNoSMJoin = 57402 hintNoSemijoin = 57374 hintNoSkipScan = 57372 hintNoSwapJoinInputs = 57397 hintNthPlan = 57417 hintOLAP = 57424 hintOLTP = 57425 hintOrderIndex = 57409 hintPartition = 57426 hintQBName = 57378 hintQueryType = 57398 hintReadConsistentReplica = 57399 hintReadFromStorage = 57400 hintResourceGroup = 57377 hintSMJoin = 57401 hintSemiJoinRewrite = 57422 hintSemijoin = 57373 hintSetVar = 57376 hintShuffleJoin = 57404 hintSingleAtIdentifier = 57349 hintSkipScan = 57371 hintStraightJoin = 57420 hintStreamAgg = 57405 hintStringLit = 57350 hintSwapJoinInputs = 57406 hintTiFlash = 57428 hintTiKV = 57427 hintTimeRange = 57415 hintTrue = 57430 hintUseCascades = 57416 hintUseIndex = 57408 hintUseIndexMerge = 57407 hintUsePlanCache = 57413 hintUseToja = 57414 hintWriteSlowLog = 57382 yyhintMaxDepth = 200 yyhintTabOfs = -229 ) var ( yyhintXLAT = map[int]int{ 41: 0, // ')' (172x) 57380: 1, // hintAggToCop (161x) 57403: 2, // hintBCJoin (161x) 57355: 3, // hintBKA (161x) 57357: 4, // hintBNL (161x) 57419: 5, // hintForceIndex (161x) 57383: 6, // hintHashAgg (161x) 57359: 7, // hintHashJoin (161x) 57360: 8, // hintHashJoinBuild (161x) 57361: 9, // hintHashJoinProbe (161x) 57379: 10, // hintHypoIndex (161x) 57347: 11, // hintIdentifier (161x) 57386: 12, // hintIgnoreIndex (161x) 57381: 13, // hintIgnorePlanCache (161x) 57390: 14, // hintIndexHashJoin (161x) 57387: 15, // hintIndexJoin (161x) 57411: 16, // hintIndexLookUpPushDown (161x) 57365: 17, // hintIndexMerge (161x) 57394: 18, // hintIndexMergeJoin (161x) 57389: 19, // hintInlHashJoin (161x) 57392: 20, // hintInlJoin (161x) 57393: 21, // hintInlMergeJoin (161x) 57351: 22, // hintJoinFixedOrder (161x) 57352: 23, // hintJoinOrder (161x) 57353: 24, // hintJoinPrefix (161x) 57354: 25, // hintJoinSuffix (161x) 57421: 26, // hintLeading (161x) 57418: 27, // hintLimitToCop (161x) 57375: 28, // hintMaxExecutionTime (161x) 57396: 29, // hintMemoryQuota (161x) 57363: 30, // hintMerge (161x) 57384: 31, // hintMpp1PhaseAgg (161x) 57385: 32, // hintMpp2PhaseAgg (161x) 57367: 33, // hintMRR (161x) 57356: 34, // hintNoBKA (161x) 57358: 35, // hintNoBNL (161x) 57423: 36, // hintNoDecorrelate (161x) 57362: 37, // hintNoHashJoin (161x) 57369: 38, // hintNoICP (161x) 57391: 39, // hintNoIndexHashJoin (161x) 57388: 40, // hintNoIndexJoin (161x) 57412: 41, // hintNoIndexLookUpPushDown (161x) 57366: 42, // hintNoIndexMerge (161x) 57395: 43, // hintNoIndexMergeJoin (161x) 57364: 44, // hintNoMerge (161x) 57368: 45, // hintNoMRR (161x) 57410: 46, // hintNoOrderIndex (161x) 57370: 47, // hintNoRangeOptimization (161x) 57374: 48, // hintNoSemijoin (161x) 57372: 49, // hintNoSkipScan (161x) 57402: 50, // hintNoSMJoin (161x) 57397: 51, // hintNoSwapJoinInputs (161x) 57417: 52, // hintNthPlan (161x) 57409: 53, // hintOrderIndex (161x) 57378: 54, // hintQBName (161x) 57398: 55, // hintQueryType (161x) 57399: 56, // hintReadConsistentReplica (161x) 57400: 57, // hintReadFromStorage (161x) 57377: 58, // hintResourceGroup (161x) 57373: 59, // hintSemijoin (161x) 57422: 60, // hintSemiJoinRewrite (161x) 57376: 61, // hintSetVar (161x) 57404: 62, // hintShuffleJoin (161x) 57371: 63, // hintSkipScan (161x) 57401: 64, // hintSMJoin (161x) 57420: 65, // hintStraightJoin (161x) 57405: 66, // hintStreamAgg (161x) 57406: 67, // hintSwapJoinInputs (161x) 57415: 68, // hintTimeRange (161x) 57416: 69, // hintUseCascades (161x) 57408: 70, // hintUseIndex (161x) 57407: 71, // hintUseIndexMerge (161x) 57413: 72, // hintUsePlanCache (161x) 57414: 73, // hintUseToja (161x) 57382: 74, // hintWriteSlowLog (161x) 44: 75, // ',' (157x) 57433: 76, // hintDupsWeedOut (132x) 57434: 77, // hintFirstMatch (132x) 57435: 78, // hintLooseScan (132x) 57436: 79, // hintMaterialization (132x) 57428: 80, // hintTiFlash (132x) 57427: 81, // hintTiKV (132x) 57429: 82, // hintFalse (131x) 57424: 83, // hintOLAP (131x) 57425: 84, // hintOLTP (131x) 57430: 85, // hintTrue (131x) 57432: 86, // hintGB (130x) 57431: 87, // hintMB (130x) 57349: 88, // hintSingleAtIdentifier (108x) 57346: 89, // hintIntLit (104x) 93: 90, // ']' (97x) 46: 91, // '.' (96x) 57426: 92, // hintPartition (91x) 61: 93, // '=' (88x) 40: 94, // '(' (87x) 57344: 95, // $end (31x) 57459: 96, // QueryBlockOpt (22x) 57449: 97, // Identifier (21x) 57445: 98, // HintTable (7x) 57350: 99, // hintStringLit (6x) 57439: 100, // CommaOpt (5x) 57446: 101, // HintTableList (4x) 91: 102, // '[' (3x) 57453: 103, // LeadingTableElement (3x) 43: 104, // '+' (2x) 45: 105, // '-' (2x) 57438: 106, // BooleanHintName (2x) 57440: 107, // HintIndexList (2x) 57442: 108, // HintStorageType (2x) 57443: 109, // HintStorageTypeAndTable (2x) 57447: 110, // HintTableListOpt (2x) 57452: 111, // JoinOrderOptimizerHintName (2x) 57454: 112, // LeadingTableList (2x) 57455: 113, // NullaryHintName (2x) 57457: 114, // PartitionList (2x) 57458: 115, // PartitionListOpt (2x) 57461: 116, // StorageOptimizerHintOpt (2x) 57462: 117, // SubqueryOptimizerHintName (2x) 57465: 118, // SubqueryStrategy (2x) 57466: 119, // SupportedIndexLevelOptimizerHintName (2x) 57467: 120, // SupportedTableLevelOptimizerHintName (2x) 57468: 121, // TableOptimizerHintOpt (2x) 57470: 122, // UnsupportedIndexLevelOptimizerHintName (2x) 57471: 123, // UnsupportedTableLevelOptimizerHintName (2x) 57472: 124, // Value (2x) 57473: 125, // ViewName (2x) 57441: 126, // HintQueryType (1x) 57444: 127, // HintStorageTypeAndTableList (1x) 57448: 128, // HintTrueOrFalse (1x) 57450: 129, // IndexNameList (1x) 57451: 130, // IndexNameListOpt (1x) 57456: 131, // OptimizerHintList (1x) 57460: 132, // Start (1x) 57463: 133, // SubqueryStrategies (1x) 57464: 134, // SubqueryStrategiesOpt (1x) 57469: 135, // UnitOfBytes (1x) 57474: 136, // ViewNameList (1x) 57437: 137, // $default (0x) 57345: 138, // error (0x) 57348: 139, // hintInvalid (0x) } yyhintSymNames = []string{ "')'", "hintAggToCop", "hintBCJoin", "hintBKA", "hintBNL", "hintForceIndex", "hintHashAgg", "hintHashJoin", "hintHashJoinBuild", "hintHashJoinProbe", "hintHypoIndex", "hintIdentifier", "hintIgnoreIndex", "hintIgnorePlanCache", "hintIndexHashJoin", "hintIndexJoin", "hintIndexLookUpPushDown", "hintIndexMerge", "hintIndexMergeJoin", "hintInlHashJoin", "hintInlJoin", "hintInlMergeJoin", "hintJoinFixedOrder", "hintJoinOrder", "hintJoinPrefix", "hintJoinSuffix", "hintLeading", "hintLimitToCop", "hintMaxExecutionTime", "hintMemoryQuota", "hintMerge", "hintMpp1PhaseAgg", "hintMpp2PhaseAgg", "hintMRR", "hintNoBKA", "hintNoBNL", "hintNoDecorrelate", "hintNoHashJoin", "hintNoICP", "hintNoIndexHashJoin", "hintNoIndexJoin", "hintNoIndexLookUpPushDown", "hintNoIndexMerge", "hintNoIndexMergeJoin", "hintNoMerge", "hintNoMRR", "hintNoOrderIndex", "hintNoRangeOptimization", "hintNoSemijoin", "hintNoSkipScan", "hintNoSMJoin", "hintNoSwapJoinInputs", "hintNthPlan", "hintOrderIndex", "hintQBName", "hintQueryType", "hintReadConsistentReplica", "hintReadFromStorage", "hintResourceGroup", "hintSemijoin", "hintSemiJoinRewrite", "hintSetVar", "hintShuffleJoin", "hintSkipScan", "hintSMJoin", "hintStraightJoin", "hintStreamAgg", "hintSwapJoinInputs", "hintTimeRange", "hintUseCascades", "hintUseIndex", "hintUseIndexMerge", "hintUsePlanCache", "hintUseToja", "hintWriteSlowLog", "','", "hintDupsWeedOut", "hintFirstMatch", "hintLooseScan", "hintMaterialization", "hintTiFlash", "hintTiKV", "hintFalse", "hintOLAP", "hintOLTP", "hintTrue", "hintGB", "hintMB", "hintSingleAtIdentifier", "hintIntLit", "']'", "'.'", "hintPartition", "'='", "'('", "$end", "QueryBlockOpt", "Identifier", "HintTable", "hintStringLit", "CommaOpt", "HintTableList", "'['", "LeadingTableElement", "'+'", "'-'", "BooleanHintName", "HintIndexList", "HintStorageType", "HintStorageTypeAndTable", "HintTableListOpt", "JoinOrderOptimizerHintName", "LeadingTableList", "NullaryHintName", "PartitionList", "PartitionListOpt", "StorageOptimizerHintOpt", "SubqueryOptimizerHintName", "SubqueryStrategy", "SupportedIndexLevelOptimizerHintName", "SupportedTableLevelOptimizerHintName", "TableOptimizerHintOpt", "UnsupportedIndexLevelOptimizerHintName", "UnsupportedTableLevelOptimizerHintName", "Value", "ViewName", "HintQueryType", "HintStorageTypeAndTableList", "HintTrueOrFalse", "IndexNameList", "IndexNameListOpt", "OptimizerHintList", "Start", "SubqueryStrategies", "SubqueryStrategiesOpt", "UnitOfBytes", "ViewNameList", "$default", "error", "hintInvalid", } yyhintReductions = []struct{ xsym, components int }{ {0, 1}, {132, 1}, {131, 1}, {131, 3}, {131, 1}, {131, 3}, {121, 4}, {121, 4}, {121, 4}, {121, 4}, {121, 5}, {121, 4}, {121, 4}, {121, 5}, {121, 5}, {121, 5}, {121, 6}, {121, 4}, {121, 4}, {121, 6}, {121, 6}, {121, 6}, {121, 5}, {121, 4}, {121, 1}, {121, 5}, {121, 5}, {121, 4}, {121, 6}, {121, 6}, {116, 5}, {127, 1}, {127, 3}, {109, 4}, {112, 1}, {112, 3}, {103, 1}, {103, 3}, {96, 0}, {96, 1}, {100, 0}, {100, 1}, {115, 0}, {115, 4}, {114, 1}, {114, 3}, {110, 1}, {110, 1}, {101, 2}, {101, 3}, {98, 3}, {98, 5}, {136, 3}, {136, 1}, {125, 2}, {125, 1}, {107, 4}, {130, 0}, {130, 1}, {129, 1}, {129, 3}, {134, 0}, {134, 1}, {133, 1}, {133, 3}, {124, 1}, {124, 1}, {124, 1}, {124, 2}, {124, 2}, {135, 1}, {135, 1}, {128, 1}, {128, 1}, {111, 1}, {111, 1}, {111, 1}, {123, 1}, {123, 1}, {123, 1}, {123, 1}, {123, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {120, 1}, {122, 1}, {122, 1}, {122, 1}, {122, 1}, {122, 1}, {122, 1}, {122, 1}, {119, 1}, {119, 1}, {119, 1}, {119, 1}, {119, 1}, {119, 1}, {119, 1}, {119, 1}, {117, 1}, {117, 1}, {118, 1}, {118, 1}, {118, 1}, {118, 1}, {106, 1}, {106, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {113, 1}, {126, 1}, {126, 1}, {108, 1}, {108, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, {97, 1}, } yyhintXErrors = map[yyhintXError]string{} yyhintParseTab = [335][]uint16{ // 0 {1: 308, 265, 258, 260, 294, 304, 279, 281, 282, 283, 253, 292, 312, 272, 268, 297, 284, 277, 271, 267, 276, 234, 255, 256, 257, 238, 309, 242, 247, 270, 305, 306, 285, 259, 261, 315, 280, 287, 273, 269, 298, 310, 278, 262, 286, 296, 288, 300, 290, 264, 275, 243, 295, 246, 252, 311, 254, 245, 299, 314, 244, 266, 289, 263, 313, 307, 274, 248, 302, 291, 293, 303, 301, 251, 106: 249, 111: 235, 113: 250, 116: 233, 241, 119: 240, 237, 232, 239, 236, 131: 231, 230}, {95: 229}, {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, 189, 189, 189, 189, 424, 95: 228, 100: 561}, {1: 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 95: 227}, {1: 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 95: 225}, // 5 {94: 558}, {94: 555}, {94: 552}, {94: 547}, {94: 536}, // 10 {94: 533}, {94: 522}, {94: 510}, {94: 506}, {94: 502}, // 15 {94: 497}, {94: 494}, {94: 482}, {94: 475}, {94: 470}, // 20 {94: 464}, {94: 461}, {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, 205, 205, 205, 205, 205, 95: 205}, {94: 455}, {94: 435}, // 25 {94: 316}, {94: 155}, {94: 154}, {94: 153}, {94: 152}, // 30 {94: 151}, {94: 150}, {94: 149}, {94: 148}, {94: 147}, // 35 {94: 146}, {94: 145}, {94: 144}, {94: 143}, {94: 142}, // 40 {94: 141}, {94: 140}, {94: 139}, {94: 138}, {94: 137}, // 45 {94: 136}, {94: 135}, {94: 134}, {94: 133}, {94: 132}, // 50 {94: 131}, {94: 130}, {94: 129}, {94: 128}, {94: 127}, // 55 {94: 126}, {94: 125}, {94: 124}, {94: 123}, {94: 122}, // 60 {94: 121}, {94: 120}, {94: 119}, {94: 118}, {94: 117}, // 65 {94: 116}, {94: 115}, {94: 114}, {94: 113}, {94: 112}, // 70 {94: 111}, {94: 110}, {94: 105}, {94: 104}, {94: 103}, // 75 {94: 102}, {94: 101}, {94: 100}, {94: 99}, {94: 98}, // 80 {94: 97}, {94: 96}, {94: 95}, {94: 94}, {94: 93}, // 85 {94: 92}, {94: 91}, {80: 191, 191, 88: 318, 96: 317}, {80: 323, 322, 108: 321, 320, 127: 319}, {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, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 89: 190, 190, 190, 190, 94: 190}, // 90 {432, 75: 433}, {198, 75: 198}, {102: 324}, {102: 88}, {102: 87}, // 95 {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, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 326, 101: 325}, {75: 430, 90: 429}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 328, 327}, {181, 75: 181, 90: 181}, {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, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 90: 191, 416, 191, 96: 415}, // 100 {86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86}, {85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85}, {84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84}, {83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83}, {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, 82, 82, 82, 82, 82}, // 105 {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, 81, 81, 81, 81, 81}, {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, 80, 80, 80, 80, 80}, {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, 79, 79, 79, 79, 79}, {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, 78, 78, 78, 78, 78}, {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, 77, 77, 77, 77, 77}, // 110 {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, 76, 76, 76, 76, 76}, {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, 75, 75, 75, 75, 75}, {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, 74, 74, 74, 74, 74}, {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, 73, 73, 73, 73, 73}, {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, 72, 72, 72, 72, 72}, // 115 {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, 71, 71, 71, 71, 71}, {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, 70, 70, 70, 70, 70}, {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, 69, 69, 69, 69, 69}, {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, 68, 68, 68, 68, 68}, {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, 67, 67, 67, 67, 67}, // 120 {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, 66, 66, 66, 66, 66}, {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, 65, 65, 65, 65, 65}, {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, 64, 64, 64, 64, 64}, {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, 63, 63, 63, 63, 63}, {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, 62, 62, 62, 62, 62}, // 125 {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, 61, 61, 61, 61, 61}, {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, 60, 60, 60, 60, 60}, {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, 59, 59, 59, 59, 59}, {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, 58, 58, 58, 58, 58}, {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, 57, 57, 57, 57, 57}, // 130 {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, 56, 56, 56, 56, 56}, {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, 55, 55, 55, 55, 55}, {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, 54, 54, 54, 54, 54}, {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, 53, 53, 53, 53, 53}, {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, 52, 52, 52, 52, 52}, // 135 {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, 51, 51, 51, 51, 51}, {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, 50, 50, 50, 50, 50}, {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, 49, 49, 49, 49, 49}, {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, 48, 48, 48, 48, 48}, {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, 47, 47, 47, 47, 47}, // 140 {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, 46, 46, 46, 46, 46}, {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, 45, 45, 45, 45, 45}, {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, 44, 44, 44, 44, 44}, {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, 43, 43, 43, 43, 43}, {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, 42, 42, 42, 42, 42}, // 145 {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, 41, 41, 41, 41, 41}, {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40}, {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, 39, 39, 39, 39, 39}, {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, 38, 38, 38, 38, 38}, {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, 37, 37, 37, 37, 37}, // 150 {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, 36, 36, 36, 36, 36}, {35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35}, {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, 34, 34, 34, 34, 34}, {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, 33, 33, 33, 33, 33}, {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, 32, 32, 32, 32, 32}, // 155 {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, 31, 31, 31, 31, 31}, {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, 30, 30, 30, 30, 30}, {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, 29, 29, 29, 29, 29}, {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, 28, 28, 28, 28, 28}, {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, 27, 27, 27, 27, 27}, // 160 {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, 26, 26, 26, 26, 26}, {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, 25, 25, 25, 25, 25}, {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, 24, 24, 24, 24, 24}, {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, 23, 23, 23, 23, 23}, {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, 22, 22, 22, 22, 22}, // 165 {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, 21, 21, 21, 21, 21}, {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, 20, 20, 20, 20, 20}, {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, 19, 19, 19, 19, 19}, {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, 18, 18, 18, 18, 18}, {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, 17, 17, 17, 17, 17}, // 170 {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, 16, 16, 16, 16, 16}, {15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15}, {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, 14, 14, 14, 14, 14}, {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, 13, 13, 13, 13, 13}, {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, 12, 12, 12, 12, 12}, // 175 {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, 11, 11, 11, 11, 11}, {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, 10, 10, 10, 10, 10}, {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, 9, 9, 9, 9, 9}, {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, 8, 8, 8, 8, 8}, {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, 7, 7, 7, 7, 7}, // 180 {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, 6, 6, 6, 6, 6}, {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, 5, 5, 5, 5, 5}, {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, 4, 4, 4, 4, 4}, {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, 3, 3, 3, 3, 3}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2}, // 185 {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 90: 187, 92: 419, 115: 428}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 417}, {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, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 90: 191, 92: 191, 96: 418}, {187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 90: 187, 92: 419, 115: 420}, // 190 {94: 421}, {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, 178, 178, 178, 178, 90: 178}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 423, 114: 422}, {425, 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, 189, 189, 189, 189, 424, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 100: 426}, {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185}, // 195 {188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 76: 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 188, 89: 188, 99: 188}, {186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 186, 90: 186}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 427}, {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, 184, 184, 184, 184, 89: 184}, {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, 179, 179, 179, 179, 90: 179}, // 200 {196, 75: 196}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 328, 431}, {180, 75: 180, 90: 180}, {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, 199, 199, 199, 199, 199, 95: 199}, {80: 323, 322, 108: 321, 434}, // 205 {197, 75: 197}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 318, 191, 96: 436, 438, 114: 437}, {89: 453}, {449, 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, 189, 189, 189, 189, 424, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 89: 189, 100: 450}, {185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 89: 185, 93: 439}, // 210 {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 89: 443, 97: 442, 99: 441, 104: 444, 445, 124: 440}, {448}, {164}, {163}, {162}, // 215 {89: 447}, {89: 446}, {160}, {161}, {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, 200, 200, 200, 200, 200, 95: 200}, // 220 {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, 202, 202, 202, 202, 202, 95: 202}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 89: 451, 97: 427}, {452}, {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, 201, 201, 201, 201, 201, 95: 201}, {454}, // 225 {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, 203, 203, 203, 203, 203, 95: 203}, {83: 191, 191, 88: 318, 96: 456}, {83: 458, 459, 126: 457}, {460}, {90}, // 230 {89}, {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, 204, 204, 204, 204, 204, 95: 204}, {191, 88: 318, 96: 462}, {463}, {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, 206, 206, 206, 206, 206, 95: 206}, // 235 {82: 191, 85: 191, 88: 318, 96: 465}, {82: 468, 85: 467, 128: 466}, {469}, {157}, {156}, // 240 {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, 207, 207, 207, 207, 207, 95: 207}, {99: 471}, {75: 424, 99: 189, 472}, {99: 473}, {474}, // 245 {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, 208, 208, 208, 208, 208, 95: 208}, {88: 318, 191, 96: 476}, {89: 477}, {86: 480, 479, 135: 478}, {481}, // 250 {159}, {158}, {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, 209, 209, 209, 209, 209, 95: 209}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 483}, {484, 75: 485}, // 255 {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, 211, 211, 211, 211, 211, 95: 211}, {191, 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 318, 91: 191, 96: 489, 488, 125: 487, 136: 486}, {491, 91: 492}, {176, 91: 176}, {191, 88: 318, 91: 191, 96: 490}, // 260 {174, 91: 174}, {175, 91: 175}, {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, 210, 210, 210, 210, 210, 95: 210}, {191, 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 318, 91: 191, 96: 489, 488, 125: 493}, {177, 91: 177}, // 265 {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 495}, {496}, {1: 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 95: 212}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 498}, {93: 499}, // 270 {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 89: 443, 97: 442, 99: 441, 104: 444, 445, 124: 500}, {501}, {1: 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 95: 213}, {88: 318, 191, 96: 503}, {89: 504}, // 275 {505}, {1: 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 95: 214}, {88: 318, 191, 96: 507}, {89: 508}, {509}, // 280 {1: 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 95: 215}, {191, 76: 191, 191, 191, 191, 88: 318, 96: 511}, {168, 76: 515, 516, 517, 518, 118: 514, 133: 513, 512}, {521}, {167, 75: 519}, // 285 {166, 75: 166}, {109, 75: 109}, {108, 75: 108}, {107, 75: 107}, {106, 75: 106}, // 290 {76: 515, 516, 517, 518, 118: 520}, {165, 75: 165}, {1: 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 95: 216}, {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, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 524, 107: 523}, {532}, // 295 {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 328, 525}, {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, 189, 189, 189, 189, 189, 424, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 189, 100: 526}, {172, 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 529, 129: 528, 527}, {173}, {171, 75: 530}, // 300 {170, 75: 170}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 531}, {169, 75: 169}, {1: 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 95: 217}, {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, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 524, 107: 534}, // 305 {535}, {1: 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, 95: 218}, {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, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 94: 191, 96: 537}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 94: 541, 97: 328, 540, 103: 539, 112: 538}, {546, 75: 543}, // 310 {195, 75: 195}, {193, 75: 193}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 94: 541, 97: 328, 540, 103: 539, 112: 542}, {544, 75: 543}, {1: 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 94: 541, 97: 328, 540, 103: 545}, // 315 {192, 75: 192}, {194, 75: 194}, {1: 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 95: 219}, {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, 191, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 550, 101: 549, 110: 548}, {551}, // 320 {183, 75: 430}, {182, 359, 383, 334, 336, 398, 363, 338, 339, 340, 358, 329, 366, 361, 368, 371, 391, 344, 374, 367, 370, 373, 330, 331, 332, 333, 400, 360, 354, 376, 342, 364, 365, 346, 335, 337, 402, 341, 348, 369, 372, 392, 345, 375, 343, 347, 390, 349, 353, 351, 382, 377, 397, 389, 357, 378, 379, 380, 356, 352, 401, 355, 384, 350, 381, 399, 385, 386, 395, 396, 388, 387, 393, 394, 362, 76: 411, 412, 413, 414, 406, 405, 407, 403, 404, 408, 410, 409, 97: 328, 327}, {1: 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 220, 95: 220}, {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, 191, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 550, 101: 549, 110: 553}, {554}, // 325 {1: 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 221, 95: 221}, {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, 191, 191, 191, 191, 76: 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 318, 96: 326, 101: 556}, {557, 75: 430}, {1: 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 95: 222}, {191, 88: 318, 96: 559}, // 330 {560}, {1: 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 95: 223}, {1: 308, 265, 258, 260, 294, 304, 279, 281, 282, 283, 253, 292, 312, 272, 268, 297, 284, 277, 271, 267, 276, 234, 255, 256, 257, 238, 309, 242, 247, 270, 305, 306, 285, 259, 261, 315, 280, 287, 273, 269, 298, 310, 278, 262, 286, 296, 288, 300, 290, 264, 275, 243, 295, 246, 252, 311, 254, 245, 299, 314, 244, 266, 289, 263, 313, 307, 274, 248, 302, 291, 293, 303, 301, 251, 106: 249, 111: 235, 113: 250, 116: 563, 241, 119: 240, 237, 562, 239, 236}, {1: 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 95: 226}, {1: 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 95: 224}, } ) var yyhintDebug = 0 type yyhintLexer interface { Lex(lval *yyhintSymType) int Errorf(format string, a ...interface{}) error AppendError(err error) AppendWarn(err error) Errors() (warns []error, errs []error) } type yyhintLexerEx interface { yyhintLexer Reduced(rule, state int, lval *yyhintSymType) bool } func yyhintSymName(c int) (s string) { x, ok := yyhintXLAT[c] if ok { return yyhintSymNames[x] } return __yyfmt__.Sprintf("%d", c) } func yyhintlex1(yylex yyhintLexer, lval *yyhintSymType) (n int) { n = yylex.Lex(lval) if n <= 0 { n = yyhintEOFCode } if yyhintDebug >= 3 { __yyfmt__.Printf("\nlex %s(%#x %d), lval: %+v\n", yyhintSymName(n), n, n, lval) } return n } func yyhintParse(yylex yyhintLexer, parser *hintParser) int { const yyError = 138 yyEx, _ := yylex.(yyhintLexerEx) var yyn int parser.yylval = yyhintSymType{} yyS := parser.cache Nerrs := 0 /* number of errors */ Errflag := 0 /* error recovery flag */ yyerrok := func() { if yyhintDebug >= 2 { __yyfmt__.Printf("yyerrok()\n") } Errflag = 0 } _ = yyerrok yystate := 0 yychar := -1 var yyxchar int var yyshift int yyp := -1 goto yystack ret0: return 0 ret1: return 1 yystack: /* put a state and value onto the stack */ yyp++ if yyp+1 >= len(yyS) { nyys := make([]yyhintSymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys parser.cache = yyS } parser.yyVAL = &yyS[yyp+1] yyS[yyp].yys = yystate yynewstate: if yychar < 0 { yychar = yyhintlex1(yylex, &parser.yylval) var ok bool if yyxchar, ok = yyhintXLAT[yychar]; !ok { yyxchar = len(yyhintSymNames) // > tab width } } if yyhintDebug >= 4 { var a []int for _, v := range yyS[:yyp+1] { a = append(a, v.yys) } __yyfmt__.Printf("state stack %v\n", a) } row := yyhintParseTab[yystate] yyn = 0 if yyxchar < len(row) { if yyn = int(row[yyxchar]); yyn != 0 { yyn += yyhintTabOfs } } switch { case yyn > 0: // shift yychar = -1 *parser.yyVAL = parser.yylval yystate = yyn yyshift = yyn if yyhintDebug >= 2 { __yyfmt__.Printf("shift, and goto state %d\n", yystate) } if Errflag > 0 { Errflag-- } goto yystack case yyn < 0: // reduce case yystate == 1: // accept if yyhintDebug >= 2 { __yyfmt__.Println("accept") } goto ret0 } if yyn == 0 { /* error ... attempt to resume parsing */ switch Errflag { case 0: /* brand new error */ if yyhintDebug >= 1 { __yyfmt__.Printf("no action for %s in state %d\n", yyhintSymName(yychar), yystate) } msg, ok := yyhintXErrors[yyhintXError{yystate, yyxchar}] if !ok { msg, ok = yyhintXErrors[yyhintXError{yystate, -1}] } if !ok && yyshift != 0 { msg, ok = yyhintXErrors[yyhintXError{yyshift, yyxchar}] } if !ok { msg, ok = yyhintXErrors[yyhintXError{yyshift, -1}] } if !ok || msg == "" { msg = "syntax error" } // ignore goyacc error message yylex.AppendError(yylex.Errorf("")) Nerrs++ fallthrough case 1, 2: /* incompletely recovered error ... try again */ Errflag = 3 /* find a state where "error" is a legal shift action */ for yyp >= 0 { row := yyhintParseTab[yyS[yyp].yys] if yyError < len(row) { yyn = int(row[yyError]) + yyhintTabOfs if yyn > 0 { // hit if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery found error shift in state %d\n", yyS[yyp].yys) } yystate = yyn /* simulate a shift of "error" */ goto yystack } } /* the current p has no shift on "error", pop stack */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) } yyp-- } /* there is no state on the stack with an error shift ... abort */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery failed\n") } goto ret1 case 3: /* no shift yet; clobber input char */ if yyhintDebug >= 2 { __yyfmt__.Printf("error recovery discards %s\n", yyhintSymName(yychar)) } if yychar == yyhintEOFCode { goto ret1 } yychar = -1 goto yynewstate /* try again in the same state */ } } r := -yyn x0 := yyhintReductions[r] x, n := x0.xsym, x0.components yypt := yyp _ = yypt // guard against "declared and not used" yyp -= n if yyp+1 >= len(yyS) { nyys := make([]yyhintSymType, len(yyS)*2) copy(nyys, yyS) yyS = nyys parser.cache = yyS } parser.yyVAL = &yyS[yyp+1] /* consult goto table to find next state */ exState := yystate yystate = int(yyhintParseTab[yyS[yyp].yys][x]) + yyhintTabOfs /* reduction by production r */ if yyhintDebug >= 2 { __yyfmt__.Printf("reduce using rule %v (%s), and goto state %d\n", r, yyhintSymNames[x], yystate) } switch r { case 1: { parser.result = yyS[yypt-0].hints } case 2: { if yyS[yypt-0].hint != nil { parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} } } case 3: { if yyS[yypt-0].hint != nil { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) } else { parser.yyVAL.hints = yyS[yypt-2].hints } } case 4: { parser.yyVAL.hints = yyS[yypt-0].hints } case 5: { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hints...) } case 6: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 7: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 8: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 9: { h := yyS[yypt-1].hint h.HintName = ast.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 10: { h := &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-4].ident), QBName: ast.NewCIStr(yyS[yypt-2].ident), HintData: yyS[yypt-1].leadingList, } // For LEADING hints we need to maintain two views of the tables: // h.HintData: // - Stores the structured AST node (LeadingList). // - Preserves the nesting and order information of LEADING(...), // // h.Tables: // - Stores a flat slice of all HintTable elements inside the LeadingList. // - Only used for initialization. if leadingList, ok := h.HintData.(*ast.LeadingList); ok { // be compatible with the prior flatten writing style h.Tables = ast.FlattenLeadingList(leadingList) } parser.yyVAL.hint = h } case 11: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 12: { h := yyS[yypt-1].hint h.HintName = ast.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 13: { parser.warnUnsupportedHint(yyS[yypt-4].ident) parser.yyVAL.hint = nil } case 14: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-4].ident), QBName: ast.NewCIStr(yyS[yypt-2].ident), HintData: yyS[yypt-1].number, } } case 15: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-4].ident), QBName: ast.NewCIStr(yyS[yypt-2].ident), HintData: int64(yyS[yypt-1].number), } } case 16: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-5].ident), HintData: ast.HintSetVar{ VarName: yyS[yypt-3].ident, Value: yyS[yypt-1].ident, }, } } case 17: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-3].ident), HintData: yyS[yypt-1].ident, } } case 18: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-3].ident), QBName: ast.NewCIStr(yyS[yypt-1].ident), } } case 19: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-5].ident), QBName: ast.NewCIStr(yyS[yypt-3].ident), Tables: yyS[yypt-1].hint.Tables, } } case 20: { maxValue := uint64(math.MaxInt64) / yyS[yypt-1].number if yyS[yypt-2].number <= maxValue { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-5].ident), HintData: int64(yyS[yypt-2].number * yyS[yypt-1].number), QBName: ast.NewCIStr(yyS[yypt-3].ident), } } else { yylex.AppendError(ErrWarnMemoryQuotaOverflow.GenWithStackByArgs(math.MaxInt)) parser.lastErrorAsWarn() parser.yyVAL.hint = nil } } case 21: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-5].ident), HintData: ast.HintTimeRange{ From: yyS[yypt-3].ident, To: yyS[yypt-1].ident, }, } } case 22: { h := yyS[yypt-1].hint h.HintName = ast.NewCIStr(yyS[yypt-4].ident) h.QBName = ast.NewCIStr(yyS[yypt-2].ident) parser.yyVAL.hint = h } case 23: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-3].ident), QBName: ast.NewCIStr(yyS[yypt-1].ident), } } case 24: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-0].ident), } } case 25: { parser.yyVAL.hint = &ast.TableOptimizerHint{ HintName: ast.NewCIStr(yyS[yypt-4].ident), QBName: ast.NewCIStr(yyS[yypt-2].ident), HintData: ast.NewCIStr(yyS[yypt-1].ident), } } case 26: { parser.warnUnsupportedHint(yyS[yypt-4].ident) parser.yyVAL.hint = nil } case 27: { parser.warnUnsupportedHint(yyS[yypt-3].ident) parser.yyVAL.hint = nil } case 28: { parser.warnUnsupportedHint(yyS[yypt-5].ident) parser.yyVAL.hint = nil } case 29: { parser.warnUnsupportedHint(yyS[yypt-5].ident) parser.yyVAL.hint = nil } case 30: { hs := yyS[yypt-1].hints name := ast.NewCIStr(yyS[yypt-4].ident) qb := ast.NewCIStr(yyS[yypt-2].ident) for _, h := range hs { h.HintName = name h.QBName = qb } parser.yyVAL.hints = hs } case 31: { parser.yyVAL.hints = []*ast.TableOptimizerHint{yyS[yypt-0].hint} } case 32: { parser.yyVAL.hints = append(yyS[yypt-2].hints, yyS[yypt-0].hint) } case 33: { h := yyS[yypt-1].hint h.HintData = ast.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 34: { parser.yyVAL.leadingList = &ast.LeadingList{Items: []interface{}{yyS[yypt-0].leadingElement}} } case 35: { parser.yyVAL.leadingList = yyS[yypt-2].leadingList parser.yyVAL.leadingList.Items = append(parser.yyVAL.leadingList.Items, yyS[yypt-0].leadingElement) } case 36: { tmp := yyS[yypt-0].table parser.yyVAL.leadingElement = &tmp } case 37: { parser.yyVAL.leadingElement = yyS[yypt-1].leadingList } case 38: { parser.yyVAL.ident = "" } case 42: { parser.yyVAL.modelIdents = nil } case 43: { parser.yyVAL.modelIdents = yyS[yypt-1].modelIdents } case 44: { parser.yyVAL.modelIdents = []ast.CIStr{ast.NewCIStr(yyS[yypt-0].ident)} } case 45: { parser.yyVAL.modelIdents = append(yyS[yypt-2].modelIdents, ast.NewCIStr(yyS[yypt-0].ident)) } case 47: { parser.yyVAL.hint = &ast.TableOptimizerHint{ QBName: ast.NewCIStr(yyS[yypt-0].ident), } } case 48: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, QBName: ast.NewCIStr(yyS[yypt-1].ident), } } case 49: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } case 50: { parser.yyVAL.table = ast.HintTable{ TableName: ast.NewCIStr(yyS[yypt-2].ident), QBName: ast.NewCIStr(yyS[yypt-1].ident), PartitionList: yyS[yypt-0].modelIdents, } } case 51: { parser.yyVAL.table = ast.HintTable{ DBName: ast.NewCIStr(yyS[yypt-4].ident), TableName: ast.NewCIStr(yyS[yypt-2].ident), QBName: ast.NewCIStr(yyS[yypt-1].ident), PartitionList: yyS[yypt-0].modelIdents, } } case 52: { h := yyS[yypt-2].hint h.Tables = append(h.Tables, yyS[yypt-0].table) parser.yyVAL.hint = h } case 53: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Tables: []ast.HintTable{yyS[yypt-0].table}, } } case 54: { parser.yyVAL.table = ast.HintTable{ TableName: ast.NewCIStr(yyS[yypt-1].ident), QBName: ast.NewCIStr(yyS[yypt-0].ident), } } case 55: { parser.yyVAL.table = ast.HintTable{ QBName: ast.NewCIStr(yyS[yypt-0].ident), } } case 56: { h := yyS[yypt-0].hint h.Tables = []ast.HintTable{yyS[yypt-2].table} h.QBName = ast.NewCIStr(yyS[yypt-3].ident) parser.yyVAL.hint = h } case 57: { parser.yyVAL.hint = &ast.TableOptimizerHint{} } case 59: { parser.yyVAL.hint = &ast.TableOptimizerHint{ Indexes: []ast.CIStr{ast.NewCIStr(yyS[yypt-0].ident)}, } } case 60: { h := yyS[yypt-2].hint h.Indexes = append(h.Indexes, ast.NewCIStr(yyS[yypt-0].ident)) parser.yyVAL.hint = h } case 67: { parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) } case 68: { parser.yyVAL.ident = strconv.FormatUint(yyS[yypt-0].number, 10) } case 69: { if yyS[yypt-0].number > 9223372036854775808 { yylex.AppendError(yylex.Errorf("the Signed Value should be at the range of [-9223372036854775808, 9223372036854775807].")) return 1 } else if yyS[yypt-0].number == 9223372036854775808 { signed_one := int64(1) parser.yyVAL.ident = strconv.FormatInt(signed_one<<63, 10) } else { parser.yyVAL.ident = strconv.FormatInt(-int64(yyS[yypt-0].number), 10) } } case 70: { parser.yyVAL.number = 1024 * 1024 } case 71: { parser.yyVAL.number = 1024 * 1024 * 1024 } case 72: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: true} } case 73: { parser.yyVAL.hint = &ast.TableOptimizerHint{HintData: false} } } if !parser.lexer.skipPositionRecording { yyhintSetOffset(parser.yyVAL, parser.yyVAL.offset) } if yyEx != nil && yyEx.Reduced(r, exState, parser.yyVAL) { return -1 } goto yystack /* stack new state and value */ }