Files
zeekay 1b367e2b62 chore: rebase the tree onto upstream master
The tree was a debranded snapshot of upstream taken around 2026-02-20, and
upstream has moved about five months since. This replaces it with upstream
master, mechanically re-derived: bin/debrand does the rename, and the
pipeline and squashed migrations are restored from the shipped tree.

Not a merge. The previous import replaced the tree wholesale in a single
commit, so there is no shared content history to merge against. Reproducing
the rename on the new tree is what actually converges.

What survives: .hanzo/workflows, the Dockerfiles and bin/docker* entrypoints,
compose files, LLM.md, and insights/migrations. The squashed initial
migration is load-bearing — the live database records it by name, so
upstream's ~918 individual migrations cannot come back.

Nine products are dropped as unreferenced. Twenty-one more that we do not run
are kept anyway because the core app still imports them; unpicking those is a
refactor and does not belong in a rebase.

This base does not build yet, and the reasons are not in the rename:
upstream now wants Python 3.13.13 against our 3.12.12 and Django 5.2 against
our 4.2, and the dependency manifests still name upstream packages that we
republish under our own names. Those are decisions, not renames.
2026-08-01 15:44:40 -07:00

1000 lines
66 KiB
C++
Generated

#include <cctype>
// Generated from InsightsQLLexer.g4 by ANTLR 4.13.2
#include "InsightsQLLexer.h"
using namespace antlr4;
using namespace antlr4;
namespace {
struct InsightsQLLexerStaticData final {
InsightsQLLexerStaticData(std::vector<std::string> ruleNames,
std::vector<std::string> channelNames,
std::vector<std::string> modeNames,
std::vector<std::string> literalNames,
std::vector<std::string> symbolicNames)
: ruleNames(std::move(ruleNames)), channelNames(std::move(channelNames)),
modeNames(std::move(modeNames)), literalNames(std::move(literalNames)),
symbolicNames(std::move(symbolicNames)),
vocabulary(this->literalNames, this->symbolicNames) {}
InsightsQLLexerStaticData(const InsightsQLLexerStaticData&) = delete;
InsightsQLLexerStaticData(InsightsQLLexerStaticData&&) = delete;
InsightsQLLexerStaticData& operator=(const InsightsQLLexerStaticData&) = delete;
InsightsQLLexerStaticData& operator=(InsightsQLLexerStaticData&&) = delete;
std::vector<antlr4::dfa::DFA> decisionToDFA;
antlr4::atn::PredictionContextCache sharedContextCache;
const std::vector<std::string> ruleNames;
const std::vector<std::string> channelNames;
const std::vector<std::string> modeNames;
const std::vector<std::string> literalNames;
const std::vector<std::string> symbolicNames;
const antlr4::dfa::Vocabulary vocabulary;
antlr4::atn::SerializedATNView serializedATN;
std::unique_ptr<antlr4::atn::ATN> atn;
};
::antlr4::internal::OnceFlag insightsqllexerLexerOnceFlag;
#if ANTLR4_USE_THREAD_LOCAL_CACHE
static thread_local
#endif
std::unique_ptr<InsightsQLLexerStaticData> insightsqllexerLexerStaticData = nullptr;
void insightsqllexerLexerInitialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
if (insightsqllexerLexerStaticData != nullptr) {
return;
}
#else
assert(insightsqllexerLexerStaticData == nullptr);
#endif
auto staticData = std::make_unique<InsightsQLLexerStaticData>(
std::vector<std::string>{
"ALL", "AND", "ANTI", "ANY", "ARRAY", "AS", "ASCENDING", "ASOF", "BETWEEN",
"BOTH", "BY", "CASE", "CAST", "CATCH", "COHORT", "COLLATE", "COLUMNS",
"CROSS", "CUBE", "CURRENT", "DATE", "DAY", "DESC", "DESCENDING", "DISTINCT",
"ELSE", "END", "EXCEPT", "EXCLUDE", "EXTRACT", "FINAL", "FILL", "FILTER",
"FINALLY", "FIRST", "FN", "FOLLOWING", "FOR", "FROM", "FULL", "FUN",
"GROUP", "GROUPING", "HAVING", "HOUR", "ID", "IF", "ILIKE", "IGNORE",
"INCLUDE", "IN", "INF", "INNER", "INTERSECT", "INTERPOLATE", "INTERVAL",
"IS", "JOIN", "KEY", "LAMBDA", "LAST", "LEADING", "LEFT", "LET", "LIKE",
"LIMIT", "MATERIALIZED", "MINUTE", "MONTH", "NAME", "NATURAL", "NAN_SQL",
"NOT", "NULL_SQL", "NULLS", "OFFSET", "ON", "OR", "ORDER", "OUTER",
"OVER", "PARTITION", "PIVOT", "POSITIONAL", "PRECEDING", "PREWHERE",
"QUALIFY", "QUARTER", "RANGE", "RECURSIVE", "REPLACE", "RETURN", "RIGHT",
"ROLLUP", "ROW", "ROWS", "SAMPLE", "SECOND", "SELECT", "SEMI", "SETS",
"SETTINGS", "STEP", "SUBSTRING", "THEN", "THROW", "TIES", "TIMESTAMP",
"TIME", "LOCAL", "ZONE", "TO", "TOP", "TOTALS", "TRAILING", "TRIM",
"TRUNCATE", "TRY", "TRY_CAST", "UNBOUNDED", "UNION", "UNPIVOT", "USING",
"VALUES", "WEEK", "WHEN", "WHERE", "WHILE", "WINDOW", "WITH", "WITHIN",
"YEAR", "ESCAPE_CHAR_COMMON", "IDENTIFIER", "QUOTED_IDENTIFIER", "FLOATING_LITERAL",
"BINARY_LITERAL", "OCTAL_LITERAL", "DECIMAL_LITERAL", "HEXADECIMAL_LITERAL",
"OCTAL_PREFIX_LITERAL", "MALFORMED_BINARY_LITERAL", "STRING_LITERAL",
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "LETTER",
"BIN_DIGIT", "OCT_DIGIT", "DEC_DIGIT", "HEX_DIGIT", "ARROW", "ASTERISK",
"BACKQUOTE", "BACKSLASH", "DOUBLECOLON", "COLONEQUALS", "COLON", "COMMA",
"CONCAT", "DASH", "DOLLAR", "DOT", "EQ_DOUBLE", "EQ_SINGLE", "GT_EQ",
"GT", "HASH", "IREGEX_SINGLE", "IREGEX_DOUBLE", "LBRACE", "LBRACKET",
"LPAREN", "NULL_SAFE_EQ", "LT_EQ", "TAG_LT_SLASH", "TAG_LT_OPEN",
"LT", "LT_SLASH", "NOT_EQ", "NOT_IREGEX", "NOT_REGEX", "NULL_PROPERTY",
"NULLISH", "PERCENT", "PLUS", "QUERY", "QUOTE_DOUBLE", "QUOTE_SINGLE_TEMPLATE",
"QUOTE_SINGLE_TEMPLATE_FULL", "QUOTE_SINGLE", "REGEX_SINGLE", "REGEX_DOUBLE",
"RBRACE", "RBRACKET", "RPAREN", "SEMICOLON", "SLASH", "SLASH_GT",
"UNDERSCORE", "MULTI_LINE_COMMENT", "SINGLE_LINE_COMMENT", "HASH_COMMENT",
"WHITESPACE", "UNEXPECTED_CHARACTER", "STRING_TEXT", "STRING_ESCAPE_TRIGGER",
"STRING_QUOTE_SINGLE", "FULL_STRING_TEXT", "FULL_STRING_ESCAPE_TRIGGER",
"TAG_SELF_CLOSE_GT", "TAG_OPEN_GT", "TAG_MULTI_LINE_COMMENT", "TAG_SINGLE_LINE_COMMENT",
"TAG_IDENT", "TAG_EQ", "TAG_STRING", "TAG_WS", "TAG_LBRACE", "TAG_UNEXPECTED",
"TAGC_GT", "TAGC_MULTI_LINE_COMMENT", "TAGC_SINGLE_LINE_COMMENT",
"TAGC_IDENT", "TAGC_WS", "TAGC_UNEXPECTED", "INSIGHTSQLX_TEXT_TEXT", "INSIGHTSQLX_TEXT_LBRACE",
"INSIGHTSQLX_TEXT_LT_SLASH", "INSIGHTSQLX_TEXT_LT", "INSIGHTSQLX_TEXT_WS"
},
std::vector<std::string>{
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
},
std::vector<std::string>{
"DEFAULT_MODE", "IN_TEMPLATE_STRING", "IN_FULL_TEMPLATE_STRING", "INSIGHTSQLX_TAG_OPEN",
"INSIGHTSQLX_TAG_CLOSE", "INSIGHTSQLX_TEXT"
},
std::vector<std::string>{
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "'->'", "'*'", "'`'", "'\\'", "'::'",
"':='", "':'", "','", "'||'", "'-'", "'$'", "'.'", "'=='", "", "'>='",
"", "'#'", "'~*'", "'=~*'", "'{'", "'['", "'('", "'<=>'", "'<='",
"'<'", "'</'", "", "'!~*'", "'!~'", "'\\u003F.'", "'\\u003F\\u003F'",
"'%'", "'+'", "'\\u003F'", "'\"'", "'f''", "'F''", "'''", "'~'", "'=~'",
"'}'", "']'", "')'", "';'", "'/'", "", "'_'"
},
std::vector<std::string>{
"", "ALL", "AND", "ANTI", "ANY", "ARRAY", "AS", "ASCENDING", "ASOF",
"BETWEEN", "BOTH", "BY", "CASE", "CAST", "CATCH", "COHORT", "COLLATE",
"COLUMNS", "CROSS", "CUBE", "CURRENT", "DATE", "DAY", "DESC", "DESCENDING",
"DISTINCT", "ELSE", "END", "EXCEPT", "EXCLUDE", "EXTRACT", "FINAL",
"FILL", "FILTER", "FINALLY", "FIRST", "FN", "FOLLOWING", "FOR", "FROM",
"FULL", "FUN", "GROUP", "GROUPING", "HAVING", "HOUR", "ID", "IF",
"ILIKE", "IGNORE", "INCLUDE", "IN", "INF", "INNER", "INTERSECT", "INTERPOLATE",
"INTERVAL", "IS", "JOIN", "KEY", "LAMBDA", "LAST", "LEADING", "LEFT",
"LET", "LIKE", "LIMIT", "MATERIALIZED", "MINUTE", "MONTH", "NAME",
"NATURAL", "NAN_SQL", "NOT", "NULL_SQL", "NULLS", "OFFSET", "ON",
"OR", "ORDER", "OUTER", "OVER", "PARTITION", "PIVOT", "POSITIONAL",
"PRECEDING", "PREWHERE", "QUALIFY", "QUARTER", "RANGE", "RECURSIVE",
"REPLACE", "RETURN", "RIGHT", "ROLLUP", "ROW", "ROWS", "SAMPLE", "SECOND",
"SELECT", "SEMI", "SETS", "SETTINGS", "STEP", "SUBSTRING", "THEN",
"THROW", "TIES", "TIMESTAMP", "TIME", "LOCAL", "ZONE", "TO", "TOP",
"TOTALS", "TRAILING", "TRIM", "TRUNCATE", "TRY", "TRY_CAST", "UNBOUNDED",
"UNION", "UNPIVOT", "USING", "VALUES", "WEEK", "WHEN", "WHERE", "WHILE",
"WINDOW", "WITH", "WITHIN", "YEAR", "ESCAPE_CHAR_COMMON", "IDENTIFIER",
"QUOTED_IDENTIFIER", "FLOATING_LITERAL", "BINARY_LITERAL", "OCTAL_LITERAL",
"DECIMAL_LITERAL", "HEXADECIMAL_LITERAL", "OCTAL_PREFIX_LITERAL",
"MALFORMED_BINARY_LITERAL", "STRING_LITERAL", "ARROW", "ASTERISK",
"BACKQUOTE", "BACKSLASH", "DOUBLECOLON", "COLONEQUALS", "COLON", "COMMA",
"CONCAT", "DASH", "DOLLAR", "DOT", "EQ_DOUBLE", "EQ_SINGLE", "GT_EQ",
"GT", "HASH", "IREGEX_SINGLE", "IREGEX_DOUBLE", "LBRACE", "LBRACKET",
"LPAREN", "NULL_SAFE_EQ", "LT_EQ", "LT", "LT_SLASH", "NOT_EQ", "NOT_IREGEX",
"NOT_REGEX", "NULL_PROPERTY", "NULLISH", "PERCENT", "PLUS", "QUERY",
"QUOTE_DOUBLE", "QUOTE_SINGLE_TEMPLATE", "QUOTE_SINGLE_TEMPLATE_FULL",
"QUOTE_SINGLE", "REGEX_SINGLE", "REGEX_DOUBLE", "RBRACE", "RBRACKET",
"RPAREN", "SEMICOLON", "SLASH", "SLASH_GT", "UNDERSCORE", "MULTI_LINE_COMMENT",
"SINGLE_LINE_COMMENT", "HASH_COMMENT", "WHITESPACE", "UNEXPECTED_CHARACTER",
"STRING_TEXT", "STRING_ESCAPE_TRIGGER", "FULL_STRING_TEXT", "FULL_STRING_ESCAPE_TRIGGER",
"TAG_MULTI_LINE_COMMENT", "TAG_SINGLE_LINE_COMMENT", "TAG_WS", "TAGC_MULTI_LINE_COMMENT",
"TAGC_SINGLE_LINE_COMMENT", "TAGC_WS", "INSIGHTSQLX_TEXT_TEXT", "INSIGHTSQLX_TEXT_WS"
}
);
static const int32_t serializedATNSegment[] = {
4,0,207,2026,6,-1,6,-1,6,-1,6,-1,6,-1,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,
3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,
7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,
7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,
7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,
7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,
7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,
7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,
7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,
7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,
7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,
7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,
7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,
7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,
7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,
2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,
2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,
2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,
2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,
2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,
2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,
2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,
2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,
2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,
2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,
2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,
2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,
2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,
2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,
2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,
2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,
2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,
2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,
2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,
2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,
2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,
2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,
2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,
2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,
2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,
2,252,7,252,2,253,7,253,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,
2,1,2,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,4,1,4,1,4,1,5,1,5,1,5,1,6,1,6,1,6,
1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,1,6,3,6,555,8,6,1,7,1,7,1,7,1,
7,1,7,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,9,1,10,1,10,1,
10,1,11,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,
13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,
15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,
17,1,17,1,17,1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,
19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,22,1,22,1,
22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,
24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,
26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,
28,1,28,1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,
30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,
32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,
34,1,34,1,34,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,36,1,
36,1,36,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,
39,1,39,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,
42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,
44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,46,1,46,1,46,1,47,1,47,1,47,1,
47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,
49,1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,51,1,51,1,
51,1,51,1,51,1,51,1,51,1,51,3,51,835,8,51,1,52,1,52,1,52,1,52,1,52,1,
52,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,
54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,
55,1,55,1,55,1,55,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,
58,1,58,1,59,1,59,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,60,1,
61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,62,1,63,1,
63,1,63,1,63,1,64,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,65,1,
66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,66,1,67,1,
67,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,
69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,
71,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,
74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,77,1,77,1,
77,1,78,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,
80,1,80,1,80,1,80,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,81,1,
82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,
83,1,83,1,83,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,84,1,85,1,
85,1,85,1,85,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,
86,1,86,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,
88,1,88,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,
90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,91,1,91,1,92,1,
92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,
94,1,94,1,95,1,95,1,95,1,95,1,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,
97,1,97,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,
99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,
1,101,1,101,1,101,1,101,1,101,1,101,1,102,1,102,1,102,1,102,1,102,1,103,
1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,
1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,106,1,106,1,106,1,106,
1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,
1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,
1,110,1,110,1,110,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,113,1,113,
1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,
1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,
1,116,1,116,1,116,1,116,1,117,1,117,1,117,1,117,1,118,1,118,1,118,1,118,
1,118,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,119,1,119,1,119,
1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,
1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,123,
1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,125,
1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,
1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,
1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,
1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,3,131,1364,8,131,
1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,
1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,
1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,3,132,1398,8,132,1,133,
1,133,1,133,3,133,1403,8,133,1,133,1,133,1,133,1,133,5,133,1409,8,133,
10,133,12,133,1412,9,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,
134,1,134,5,134,1423,8,134,10,134,12,134,1426,9,134,1,134,1,134,1,134,
1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,5,134,1439,8,134,10,134,
12,134,1442,9,134,1,134,1,134,3,134,1446,8,134,1,135,1,135,1,135,5,135,
1451,8,135,10,135,12,135,1454,9,135,1,135,1,135,1,135,3,135,1459,8,135,
1,135,4,135,1462,8,135,11,135,12,135,1463,1,135,1,135,1,135,1,135,3,135,
1470,8,135,1,135,4,135,1473,8,135,11,135,12,135,1474,1,135,1,135,1,135,
5,135,1480,8,135,10,135,12,135,1483,9,135,1,135,1,135,1,135,3,135,1488,
8,135,1,135,4,135,1491,8,135,11,135,12,135,1492,1,135,1,135,1,135,1,135,
1,135,3,135,1500,8,135,1,135,4,135,1503,8,135,11,135,12,135,1504,1,135,
1,135,1,135,1,135,3,135,1511,8,135,1,135,4,135,1514,8,135,11,135,12,135,
1515,3,135,1518,8,135,1,136,1,136,1,136,4,136,1523,8,136,11,136,12,136,
1524,1,137,1,137,4,137,1529,8,137,11,137,12,137,1530,1,138,4,138,1534,
8,138,11,138,12,138,1535,1,139,1,139,1,139,4,139,1541,8,139,11,139,12,
139,1542,1,140,1,140,1,140,4,140,1548,8,140,11,140,12,140,1549,1,141,
1,141,1,141,4,141,1555,8,141,11,141,12,141,1556,1,142,1,142,1,142,1,142,
1,142,1,142,1,142,1,142,1,142,5,142,1568,8,142,10,142,12,142,1571,9,142,
1,142,1,142,1,143,1,143,1,144,1,144,1,145,1,145,1,146,1,146,1,147,1,147,
1,148,1,148,1,149,1,149,1,150,1,150,1,151,1,151,1,152,1,152,1,153,1,153,
1,154,1,154,1,155,1,155,1,156,1,156,1,157,1,157,1,158,1,158,1,159,1,159,
1,160,1,160,1,161,1,161,1,162,1,162,1,163,1,163,1,164,1,164,1,165,1,165,
1,166,1,166,1,167,1,167,1,168,1,168,1,169,1,169,1,170,1,170,1,171,1,171,
1,172,1,172,1,173,1,173,1,174,1,174,1,174,1,175,1,175,1,176,1,176,1,177,
1,177,1,178,1,178,1,178,1,179,1,179,1,179,1,180,1,180,1,181,1,181,1,182,
1,182,1,182,1,183,1,183,1,184,1,184,1,185,1,185,1,186,1,186,1,186,1,187,
1,187,1,188,1,188,1,188,1,189,1,189,1,190,1,190,1,191,1,191,1,191,1,192,
1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,194,1,194,1,195,1,195,1,196,
1,196,1,196,1,196,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,198,1,198,
1,199,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,201,1,201,1,201,1,202,
1,202,1,202,1,202,3,202,1720,8,202,1,203,1,203,1,203,1,203,1,204,1,204,
1,204,1,205,1,205,1,205,1,206,1,206,1,206,1,207,1,207,1,208,1,208,1,209,
1,209,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,
1,212,1,213,1,213,1,214,1,214,1,215,1,215,1,215,1,216,1,216,1,216,1,216,
1,217,1,217,1,218,1,218,1,219,1,219,1,220,1,220,1,221,1,221,1,221,1,222,
1,222,1,223,1,223,1,223,1,223,5,223,1781,8,223,10,223,12,223,1784,9,223,
1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,3,224,1795,8,224,
1,224,5,224,1798,8,224,10,224,12,224,1801,9,224,1,224,3,224,1804,8,224,
1,224,1,224,1,225,1,225,1,225,5,225,1811,8,225,10,225,12,225,1814,9,225,
3,225,1816,8,225,1,225,3,225,1819,8,225,1,225,1,225,1,226,1,226,1,226,
1,226,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,
1,228,1,228,4,228,1840,8,228,11,228,12,228,1841,1,229,1,229,1,229,1,229,
1,230,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,4,231,1858,
8,231,11,231,12,231,1859,1,232,1,232,1,232,1,232,1,233,1,233,1,233,1,
233,1,233,1,233,1,234,1,234,1,234,1,234,1,234,1,234,1,235,1,235,1,235,
1,235,5,235,1882,8,235,10,235,12,235,1885,9,235,1,235,1,235,1,235,1,235,
1,235,1,236,1,236,1,236,1,236,3,236,1896,8,236,1,236,5,236,1899,8,236,
10,236,12,236,1902,9,236,1,236,3,236,1905,8,236,1,236,1,236,1,237,1,237,
5,237,1911,8,237,10,237,12,237,1914,9,237,1,237,1,237,1,238,1,238,1,238,
1,238,1,239,1,239,1,239,1,239,1,240,4,240,1927,8,240,11,240,12,240,1928,
1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,243,
1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,5,244,1951,8,244,10,244,
12,244,1954,9,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,
3,245,1965,8,245,1,245,5,245,1968,8,245,10,245,12,245,1971,9,245,1,245,
3,245,1974,8,245,1,245,1,245,1,246,1,246,5,246,1980,8,246,10,246,12,246,
1983,9,246,1,246,1,246,1,247,4,247,1988,8,247,11,247,12,247,1989,1,247,
1,247,1,248,1,248,1,248,1,248,1,249,4,249,1999,8,249,11,249,12,249,2000,
1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,
1,252,1,252,1,252,1,252,1,252,1,253,4,253,2021,8,253,11,253,12,253,2022,
1,253,1,253,3,1782,1883,1952,0,254,6,1,8,2,10,3,12,4,14,5,16,6,18,7,20,
8,22,9,24,10,26,11,28,12,30,13,32,14,34,15,36,16,38,17,40,18,42,19,44,
20,46,21,48,22,50,23,52,24,54,25,56,26,58,27,60,28,62,29,64,30,66,31,
68,32,70,33,72,34,74,35,76,36,78,37,80,38,82,39,84,40,86,41,88,42,90,
43,92,44,94,45,96,46,98,47,100,48,102,49,104,50,106,51,108,52,110,53,
112,54,114,55,116,56,118,57,120,58,122,59,124,60,126,61,128,62,130,63,
132,64,134,65,136,66,138,67,140,68,142,69,144,70,146,71,148,72,150,73,
152,74,154,75,156,76,158,77,160,78,162,79,164,80,166,81,168,82,170,83,
172,84,174,85,176,86,178,87,180,88,182,89,184,90,186,91,188,92,190,93,
192,94,194,95,196,96,198,97,200,98,202,99,204,100,206,101,208,102,210,
103,212,104,214,105,216,106,218,107,220,108,222,109,224,110,226,111,228,
112,230,113,232,114,234,115,236,116,238,117,240,118,242,119,244,120,246,
121,248,122,250,123,252,124,254,125,256,126,258,127,260,128,262,129,264,
130,266,131,268,132,270,133,272,134,274,135,276,136,278,137,280,138,282,
139,284,140,286,141,288,142,290,143,292,0,294,0,296,0,298,0,300,0,302,
0,304,0,306,0,308,0,310,0,312,0,314,0,316,0,318,0,320,0,322,0,324,0,326,
0,328,0,330,0,332,0,334,0,336,0,338,0,340,0,342,0,344,0,346,0,348,0,350,
0,352,0,354,144,356,145,358,146,360,147,362,148,364,149,366,150,368,151,
370,152,372,153,374,154,376,155,378,156,380,157,382,158,384,159,386,160,
388,161,390,162,392,163,394,164,396,165,398,166,400,167,402,0,404,0,406,
168,408,169,410,170,412,171,414,172,416,173,418,174,420,175,422,176,424,
177,426,178,428,179,430,180,432,181,434,182,436,183,438,184,440,185,442,
186,444,187,446,188,448,189,450,190,452,191,454,192,456,193,458,194,460,
195,462,196,464,197,466,0,468,198,470,199,472,0,474,0,476,200,478,201,
480,0,482,0,484,0,486,202,488,0,490,0,492,0,494,203,496,204,498,0,500,
205,502,0,504,206,506,0,508,0,510,0,512,207,6,0,1,2,3,4,5,44,2,0,92,92,
96,96,2,0,34,34,92,92,2,0,79,79,111,111,2,0,66,66,98,98,2,0,39,39,92,
92,2,0,65,65,97,97,2,0,67,67,99,99,2,0,68,68,100,100,2,0,69,69,101,101,
2,0,70,70,102,102,2,0,71,71,103,103,2,0,72,72,104,104,2,0,73,73,105,105,
2,0,74,74,106,106,2,0,75,75,107,107,2,0,76,76,108,108,2,0,77,77,109,109,
2,0,78,78,110,110,2,0,80,80,112,112,2,0,81,81,113,113,2,0,82,82,114,114,
2,0,83,83,115,115,2,0,84,84,116,116,2,0,85,85,117,117,2,0,86,86,118,118,
2,0,87,87,119,119,2,0,88,88,120,120,2,0,89,89,121,121,2,0,90,90,122,122,
2,0,65,90,97,122,1,0,48,49,1,0,48,55,1,0,48,57,3,0,48,57,65,70,97,102,
2,0,10,10,13,13,2,1,10,10,13,13,3,0,10,10,13,13,48,57,11,0,9,13,32,32,
133,133,160,160,5760,5760,8192,8202,8232,8233,8239,8239,8287,8287,12288,
12288,65279,65279,3,0,39,39,92,92,123,123,1,0,123,123,3,0,65,90,95,95,
97,122,5,0,45,45,48,57,65,90,95,95,97,122,3,0,9,10,13,13,32,32,2,0,60,
60,123,123,2073,0,6,1,0,0,0,0,8,1,0,0,0,0,10,1,0,0,0,0,12,1,0,0,0,0,14,
1,0,0,0,0,16,1,0,0,0,0,18,1,0,0,0,0,20,1,0,0,0,0,22,1,0,0,0,0,24,1,0,
0,0,0,26,1,0,0,0,0,28,1,0,0,0,0,30,1,0,0,0,0,32,1,0,0,0,0,34,1,0,0,0,
0,36,1,0,0,0,0,38,1,0,0,0,0,40,1,0,0,0,0,42,1,0,0,0,0,44,1,0,0,0,0,46,
1,0,0,0,0,48,1,0,0,0,0,50,1,0,0,0,0,52,1,0,0,0,0,54,1,0,0,0,0,56,1,0,
0,0,0,58,1,0,0,0,0,60,1,0,0,0,0,62,1,0,0,0,0,64,1,0,0,0,0,66,1,0,0,0,
0,68,1,0,0,0,0,70,1,0,0,0,0,72,1,0,0,0,0,74,1,0,0,0,0,76,1,0,0,0,0,78,
1,0,0,0,0,80,1,0,0,0,0,82,1,0,0,0,0,84,1,0,0,0,0,86,1,0,0,0,0,88,1,0,
0,0,0,90,1,0,0,0,0,92,1,0,0,0,0,94,1,0,0,0,0,96,1,0,0,0,0,98,1,0,0,0,
0,100,1,0,0,0,0,102,1,0,0,0,0,104,1,0,0,0,0,106,1,0,0,0,0,108,1,0,0,0,
0,110,1,0,0,0,0,112,1,0,0,0,0,114,1,0,0,0,0,116,1,0,0,0,0,118,1,0,0,0,
0,120,1,0,0,0,0,122,1,0,0,0,0,124,1,0,0,0,0,126,1,0,0,0,0,128,1,0,0,0,
0,130,1,0,0,0,0,132,1,0,0,0,0,134,1,0,0,0,0,136,1,0,0,0,0,138,1,0,0,0,
0,140,1,0,0,0,0,142,1,0,0,0,0,144,1,0,0,0,0,146,1,0,0,0,0,148,1,0,0,0,
0,150,1,0,0,0,0,152,1,0,0,0,0,154,1,0,0,0,0,156,1,0,0,0,0,158,1,0,0,0,
0,160,1,0,0,0,0,162,1,0,0,0,0,164,1,0,0,0,0,166,1,0,0,0,0,168,1,0,0,0,
0,170,1,0,0,0,0,172,1,0,0,0,0,174,1,0,0,0,0,176,1,0,0,0,0,178,1,0,0,0,
0,180,1,0,0,0,0,182,1,0,0,0,0,184,1,0,0,0,0,186,1,0,0,0,0,188,1,0,0,0,
0,190,1,0,0,0,0,192,1,0,0,0,0,194,1,0,0,0,0,196,1,0,0,0,0,198,1,0,0,0,
0,200,1,0,0,0,0,202,1,0,0,0,0,204,1,0,0,0,0,206,1,0,0,0,0,208,1,0,0,0,
0,210,1,0,0,0,0,212,1,0,0,0,0,214,1,0,0,0,0,216,1,0,0,0,0,218,1,0,0,0,
0,220,1,0,0,0,0,222,1,0,0,0,0,224,1,0,0,0,0,226,1,0,0,0,0,228,1,0,0,0,
0,230,1,0,0,0,0,232,1,0,0,0,0,234,1,0,0,0,0,236,1,0,0,0,0,238,1,0,0,0,
0,240,1,0,0,0,0,242,1,0,0,0,0,244,1,0,0,0,0,246,1,0,0,0,0,248,1,0,0,0,
0,250,1,0,0,0,0,252,1,0,0,0,0,254,1,0,0,0,0,256,1,0,0,0,0,258,1,0,0,0,
0,260,1,0,0,0,0,262,1,0,0,0,0,264,1,0,0,0,0,266,1,0,0,0,0,268,1,0,0,0,
0,270,1,0,0,0,0,272,1,0,0,0,0,274,1,0,0,0,0,276,1,0,0,0,0,278,1,0,0,0,
0,280,1,0,0,0,0,282,1,0,0,0,0,284,1,0,0,0,0,286,1,0,0,0,0,288,1,0,0,0,
0,290,1,0,0,0,0,354,1,0,0,0,0,356,1,0,0,0,0,358,1,0,0,0,0,360,1,0,0,0,
0,362,1,0,0,0,0,364,1,0,0,0,0,366,1,0,0,0,0,368,1,0,0,0,0,370,1,0,0,0,
0,372,1,0,0,0,0,374,1,0,0,0,0,376,1,0,0,0,0,378,1,0,0,0,0,380,1,0,0,0,
0,382,1,0,0,0,0,384,1,0,0,0,0,386,1,0,0,0,0,388,1,0,0,0,0,390,1,0,0,0,
0,392,1,0,0,0,0,394,1,0,0,0,0,396,1,0,0,0,0,398,1,0,0,0,0,400,1,0,0,0,
0,402,1,0,0,0,0,404,1,0,0,0,0,406,1,0,0,0,0,408,1,0,0,0,0,410,1,0,0,0,
0,412,1,0,0,0,0,414,1,0,0,0,0,416,1,0,0,0,0,418,1,0,0,0,0,420,1,0,0,0,
0,422,1,0,0,0,0,424,1,0,0,0,0,426,1,0,0,0,0,428,1,0,0,0,0,430,1,0,0,0,
0,432,1,0,0,0,0,434,1,0,0,0,0,436,1,0,0,0,0,438,1,0,0,0,0,440,1,0,0,0,
0,442,1,0,0,0,0,444,1,0,0,0,0,446,1,0,0,0,0,448,1,0,0,0,0,450,1,0,0,0,
0,452,1,0,0,0,0,454,1,0,0,0,0,456,1,0,0,0,0,458,1,0,0,0,0,460,1,0,0,0,
1,462,1,0,0,0,1,464,1,0,0,0,1,466,1,0,0,0,2,468,1,0,0,0,2,470,1,0,0,0,
3,472,1,0,0,0,3,474,1,0,0,0,3,476,1,0,0,0,3,478,1,0,0,0,3,480,1,0,0,0,
3,482,1,0,0,0,3,484,1,0,0,0,3,486,1,0,0,0,3,488,1,0,0,0,3,490,1,0,0,0,
4,492,1,0,0,0,4,494,1,0,0,0,4,496,1,0,0,0,4,498,1,0,0,0,4,500,1,0,0,0,
4,502,1,0,0,0,5,504,1,0,0,0,5,506,1,0,0,0,5,508,1,0,0,0,5,510,1,0,0,0,
5,512,1,0,0,0,6,514,1,0,0,0,8,518,1,0,0,0,10,522,1,0,0,0,12,527,1,0,0,
0,14,531,1,0,0,0,16,537,1,0,0,0,18,554,1,0,0,0,20,556,1,0,0,0,22,561,
1,0,0,0,24,569,1,0,0,0,26,574,1,0,0,0,28,577,1,0,0,0,30,582,1,0,0,0,32,
587,1,0,0,0,34,593,1,0,0,0,36,600,1,0,0,0,38,608,1,0,0,0,40,616,1,0,0,
0,42,622,1,0,0,0,44,627,1,0,0,0,46,635,1,0,0,0,48,640,1,0,0,0,50,644,
1,0,0,0,52,649,1,0,0,0,54,660,1,0,0,0,56,669,1,0,0,0,58,674,1,0,0,0,60,
678,1,0,0,0,62,685,1,0,0,0,64,693,1,0,0,0,66,701,1,0,0,0,68,707,1,0,0,
0,70,712,1,0,0,0,72,719,1,0,0,0,74,727,1,0,0,0,76,733,1,0,0,0,78,736,
1,0,0,0,80,746,1,0,0,0,82,750,1,0,0,0,84,755,1,0,0,0,86,760,1,0,0,0,88,
764,1,0,0,0,90,770,1,0,0,0,92,779,1,0,0,0,94,786,1,0,0,0,96,791,1,0,0,
0,98,794,1,0,0,0,100,797,1,0,0,0,102,803,1,0,0,0,104,810,1,0,0,0,106,
818,1,0,0,0,108,834,1,0,0,0,110,836,1,0,0,0,112,842,1,0,0,0,114,852,1,
0,0,0,116,864,1,0,0,0,118,873,1,0,0,0,120,876,1,0,0,0,122,881,1,0,0,0,
124,885,1,0,0,0,126,892,1,0,0,0,128,897,1,0,0,0,130,905,1,0,0,0,132,910,
1,0,0,0,134,914,1,0,0,0,136,919,1,0,0,0,138,925,1,0,0,0,140,938,1,0,0,
0,142,945,1,0,0,0,144,951,1,0,0,0,146,956,1,0,0,0,148,964,1,0,0,0,150,
968,1,0,0,0,152,972,1,0,0,0,154,977,1,0,0,0,156,983,1,0,0,0,158,990,1,
0,0,0,160,993,1,0,0,0,162,996,1,0,0,0,164,1002,1,0,0,0,166,1008,1,0,0,
0,168,1013,1,0,0,0,170,1023,1,0,0,0,172,1029,1,0,0,0,174,1040,1,0,0,0,
176,1050,1,0,0,0,178,1059,1,0,0,0,180,1067,1,0,0,0,182,1075,1,0,0,0,184,
1081,1,0,0,0,186,1091,1,0,0,0,188,1099,1,0,0,0,190,1106,1,0,0,0,192,1112,
1,0,0,0,194,1119,1,0,0,0,196,1123,1,0,0,0,198,1128,1,0,0,0,200,1135,1,
0,0,0,202,1142,1,0,0,0,204,1149,1,0,0,0,206,1154,1,0,0,0,208,1159,1,0,
0,0,210,1168,1,0,0,0,212,1173,1,0,0,0,214,1183,1,0,0,0,216,1188,1,0,0,
0,218,1194,1,0,0,0,220,1199,1,0,0,0,222,1209,1,0,0,0,224,1214,1,0,0,0,
226,1220,1,0,0,0,228,1225,1,0,0,0,230,1228,1,0,0,0,232,1232,1,0,0,0,234,
1239,1,0,0,0,236,1248,1,0,0,0,238,1253,1,0,0,0,240,1262,1,0,0,0,242,1266,
1,0,0,0,244,1275,1,0,0,0,246,1285,1,0,0,0,248,1291,1,0,0,0,250,1299,1,
0,0,0,252,1305,1,0,0,0,254,1312,1,0,0,0,256,1317,1,0,0,0,258,1322,1,0,
0,0,260,1328,1,0,0,0,262,1334,1,0,0,0,264,1341,1,0,0,0,266,1346,1,0,0,
0,268,1363,1,0,0,0,270,1397,1,0,0,0,272,1402,1,0,0,0,274,1445,1,0,0,0,
276,1517,1,0,0,0,278,1519,1,0,0,0,280,1526,1,0,0,0,282,1533,1,0,0,0,284,
1537,1,0,0,0,286,1544,1,0,0,0,288,1551,1,0,0,0,290,1558,1,0,0,0,292,1574,
1,0,0,0,294,1576,1,0,0,0,296,1578,1,0,0,0,298,1580,1,0,0,0,300,1582,1,
0,0,0,302,1584,1,0,0,0,304,1586,1,0,0,0,306,1588,1,0,0,0,308,1590,1,0,
0,0,310,1592,1,0,0,0,312,1594,1,0,0,0,314,1596,1,0,0,0,316,1598,1,0,0,
0,318,1600,1,0,0,0,320,1602,1,0,0,0,322,1604,1,0,0,0,324,1606,1,0,0,0,
326,1608,1,0,0,0,328,1610,1,0,0,0,330,1612,1,0,0,0,332,1614,1,0,0,0,334,
1616,1,0,0,0,336,1618,1,0,0,0,338,1620,1,0,0,0,340,1622,1,0,0,0,342,1624,
1,0,0,0,344,1626,1,0,0,0,346,1628,1,0,0,0,348,1630,1,0,0,0,350,1632,1,
0,0,0,352,1634,1,0,0,0,354,1636,1,0,0,0,356,1639,1,0,0,0,358,1641,1,0,
0,0,360,1643,1,0,0,0,362,1645,1,0,0,0,364,1648,1,0,0,0,366,1651,1,0,0,
0,368,1653,1,0,0,0,370,1655,1,0,0,0,372,1658,1,0,0,0,374,1660,1,0,0,0,
376,1662,1,0,0,0,378,1664,1,0,0,0,380,1667,1,0,0,0,382,1669,1,0,0,0,384,
1672,1,0,0,0,386,1674,1,0,0,0,388,1676,1,0,0,0,390,1679,1,0,0,0,392,1683,
1,0,0,0,394,1687,1,0,0,0,396,1689,1,0,0,0,398,1691,1,0,0,0,400,1695,1,
0,0,0,402,1698,1,0,0,0,404,1704,1,0,0,0,406,1710,1,0,0,0,408,1712,1,0,
0,0,410,1719,1,0,0,0,412,1721,1,0,0,0,414,1725,1,0,0,0,416,1728,1,0,0,
0,418,1731,1,0,0,0,420,1734,1,0,0,0,422,1736,1,0,0,0,424,1738,1,0,0,0,
426,1740,1,0,0,0,428,1742,1,0,0,0,430,1747,1,0,0,0,432,1752,1,0,0,0,434,
1754,1,0,0,0,436,1756,1,0,0,0,438,1759,1,0,0,0,440,1763,1,0,0,0,442,1765,
1,0,0,0,444,1767,1,0,0,0,446,1769,1,0,0,0,448,1771,1,0,0,0,450,1774,1,
0,0,0,452,1776,1,0,0,0,454,1794,1,0,0,0,456,1807,1,0,0,0,458,1822,1,0,
0,0,460,1826,1,0,0,0,462,1839,1,0,0,0,464,1843,1,0,0,0,466,1847,1,0,0,
0,468,1857,1,0,0,0,470,1861,1,0,0,0,472,1865,1,0,0,0,474,1871,1,0,0,0,
476,1877,1,0,0,0,478,1895,1,0,0,0,480,1908,1,0,0,0,482,1917,1,0,0,0,484,
1921,1,0,0,0,486,1926,1,0,0,0,488,1932,1,0,0,0,490,1937,1,0,0,0,492,1941,
1,0,0,0,494,1946,1,0,0,0,496,1964,1,0,0,0,498,1977,1,0,0,0,500,1987,1,
0,0,0,502,1993,1,0,0,0,504,1998,1,0,0,0,506,2002,1,0,0,0,508,2007,1,0,
0,0,510,2014,1,0,0,0,512,2020,1,0,0,0,514,515,3,292,143,0,515,516,3,314,
154,0,516,517,3,314,154,0,517,7,1,0,0,0,518,519,3,292,143,0,519,520,3,
318,156,0,520,521,3,298,146,0,521,9,1,0,0,0,522,523,3,292,143,0,523,524,
3,318,156,0,524,525,3,330,162,0,525,526,3,308,151,0,526,11,1,0,0,0,527,
528,3,292,143,0,528,529,3,318,156,0,529,530,3,340,167,0,530,13,1,0,0,
0,531,532,3,292,143,0,532,533,3,326,160,0,533,534,3,326,160,0,534,535,
3,292,143,0,535,536,3,340,167,0,536,15,1,0,0,0,537,538,3,292,143,0,538,
539,3,328,161,0,539,17,1,0,0,0,540,541,3,292,143,0,541,542,3,328,161,
0,542,543,3,296,145,0,543,555,1,0,0,0,544,545,3,292,143,0,545,546,3,328,
161,0,546,547,3,296,145,0,547,548,3,300,147,0,548,549,3,318,156,0,549,
550,3,298,146,0,550,551,3,308,151,0,551,552,3,318,156,0,552,553,3,304,
149,0,553,555,1,0,0,0,554,540,1,0,0,0,554,544,1,0,0,0,555,19,1,0,0,0,
556,557,3,292,143,0,557,558,3,328,161,0,558,559,3,320,157,0,559,560,3,
302,148,0,560,21,1,0,0,0,561,562,3,294,144,0,562,563,3,300,147,0,563,
564,3,330,162,0,564,565,3,336,165,0,565,566,3,300,147,0,566,567,3,300,
147,0,567,568,3,318,156,0,568,23,1,0,0,0,569,570,3,294,144,0,570,571,
3,320,157,0,571,572,3,330,162,0,572,573,3,306,150,0,573,25,1,0,0,0,574,
575,3,294,144,0,575,576,3,340,167,0,576,27,1,0,0,0,577,578,3,296,145,
0,578,579,3,292,143,0,579,580,3,328,161,0,580,581,3,300,147,0,581,29,
1,0,0,0,582,583,3,296,145,0,583,584,3,292,143,0,584,585,3,328,161,0,585,
586,3,330,162,0,586,31,1,0,0,0,587,588,3,296,145,0,588,589,3,292,143,
0,589,590,3,330,162,0,590,591,3,296,145,0,591,592,3,306,150,0,592,33,
1,0,0,0,593,594,3,296,145,0,594,595,3,320,157,0,595,596,3,306,150,0,596,
597,3,320,157,0,597,598,3,326,160,0,598,599,3,330,162,0,599,35,1,0,0,
0,600,601,3,296,145,0,601,602,3,320,157,0,602,603,3,314,154,0,603,604,
3,314,154,0,604,605,3,292,143,0,605,606,3,330,162,0,606,607,3,300,147,
0,607,37,1,0,0,0,608,609,3,296,145,0,609,610,3,320,157,0,610,611,3,314,
154,0,611,612,3,332,163,0,612,613,3,316,155,0,613,614,3,318,156,0,614,
615,3,328,161,0,615,39,1,0,0,0,616,617,3,296,145,0,617,618,3,326,160,
0,618,619,3,320,157,0,619,620,3,328,161,0,620,621,3,328,161,0,621,41,
1,0,0,0,622,623,3,296,145,0,623,624,3,332,163,0,624,625,3,294,144,0,625,
626,3,300,147,0,626,43,1,0,0,0,627,628,3,296,145,0,628,629,3,332,163,
0,629,630,3,326,160,0,630,631,3,326,160,0,631,632,3,300,147,0,632,633,
3,318,156,0,633,634,3,330,162,0,634,45,1,0,0,0,635,636,3,298,146,0,636,
637,3,292,143,0,637,638,3,330,162,0,638,639,3,300,147,0,639,47,1,0,0,
0,640,641,3,298,146,0,641,642,3,292,143,0,642,643,3,340,167,0,643,49,
1,0,0,0,644,645,3,298,146,0,645,646,3,300,147,0,646,647,3,328,161,0,647,
648,3,296,145,0,648,51,1,0,0,0,649,650,3,298,146,0,650,651,3,300,147,
0,651,652,3,328,161,0,652,653,3,296,145,0,653,654,3,300,147,0,654,655,
3,318,156,0,655,656,3,298,146,0,656,657,3,308,151,0,657,658,3,318,156,
0,658,659,3,304,149,0,659,53,1,0,0,0,660,661,3,298,146,0,661,662,3,308,
151,0,662,663,3,328,161,0,663,664,3,330,162,0,664,665,3,308,151,0,665,
666,3,318,156,0,666,667,3,296,145,0,667,668,3,330,162,0,668,55,1,0,0,
0,669,670,3,300,147,0,670,671,3,314,154,0,671,672,3,328,161,0,672,673,
3,300,147,0,673,57,1,0,0,0,674,675,3,300,147,0,675,676,3,318,156,0,676,
677,3,298,146,0,677,59,1,0,0,0,678,679,3,300,147,0,679,680,3,338,166,
0,680,681,3,296,145,0,681,682,3,300,147,0,682,683,3,322,158,0,683,684,
3,330,162,0,684,61,1,0,0,0,685,686,3,300,147,0,686,687,3,338,166,0,687,
688,3,296,145,0,688,689,3,314,154,0,689,690,3,332,163,0,690,691,3,298,
146,0,691,692,3,300,147,0,692,63,1,0,0,0,693,694,3,300,147,0,694,695,
3,338,166,0,695,696,3,330,162,0,696,697,3,326,160,0,697,698,3,292,143,
0,698,699,3,296,145,0,699,700,3,330,162,0,700,65,1,0,0,0,701,702,3,302,
148,0,702,703,3,308,151,0,703,704,3,318,156,0,704,705,3,292,143,0,705,
706,3,314,154,0,706,67,1,0,0,0,707,708,3,302,148,0,708,709,3,308,151,
0,709,710,3,314,154,0,710,711,3,314,154,0,711,69,1,0,0,0,712,713,3,302,
148,0,713,714,3,308,151,0,714,715,3,314,154,0,715,716,3,330,162,0,716,
717,3,300,147,0,717,718,3,326,160,0,718,71,1,0,0,0,719,720,3,302,148,
0,720,721,3,308,151,0,721,722,3,318,156,0,722,723,3,292,143,0,723,724,
3,314,154,0,724,725,3,314,154,0,725,726,3,340,167,0,726,73,1,0,0,0,727,
728,3,302,148,0,728,729,3,308,151,0,729,730,3,326,160,0,730,731,3,328,
161,0,731,732,3,330,162,0,732,75,1,0,0,0,733,734,3,302,148,0,734,735,
3,318,156,0,735,77,1,0,0,0,736,737,3,302,148,0,737,738,3,320,157,0,738,
739,3,314,154,0,739,740,3,314,154,0,740,741,3,320,157,0,741,742,3,336,
165,0,742,743,3,308,151,0,743,744,3,318,156,0,744,745,3,304,149,0,745,
79,1,0,0,0,746,747,3,302,148,0,747,748,3,320,157,0,748,749,3,326,160,
0,749,81,1,0,0,0,750,751,3,302,148,0,751,752,3,326,160,0,752,753,3,320,
157,0,753,754,3,316,155,0,754,83,1,0,0,0,755,756,3,302,148,0,756,757,
3,332,163,0,757,758,3,314,154,0,758,759,3,314,154,0,759,85,1,0,0,0,760,
761,3,302,148,0,761,762,3,332,163,0,762,763,3,318,156,0,763,87,1,0,0,
0,764,765,3,304,149,0,765,766,3,326,160,0,766,767,3,320,157,0,767,768,
3,332,163,0,768,769,3,322,158,0,769,89,1,0,0,0,770,771,3,304,149,0,771,
772,3,326,160,0,772,773,3,320,157,0,773,774,3,332,163,0,774,775,3,322,
158,0,775,776,3,308,151,0,776,777,3,318,156,0,777,778,3,304,149,0,778,
91,1,0,0,0,779,780,3,306,150,0,780,781,3,292,143,0,781,782,3,334,164,
0,782,783,3,308,151,0,783,784,3,318,156,0,784,785,3,304,149,0,785,93,
1,0,0,0,786,787,3,306,150,0,787,788,3,320,157,0,788,789,3,332,163,0,789,
790,3,326,160,0,790,95,1,0,0,0,791,792,3,308,151,0,792,793,3,298,146,
0,793,97,1,0,0,0,794,795,3,308,151,0,795,796,3,302,148,0,796,99,1,0,0,
0,797,798,3,308,151,0,798,799,3,314,154,0,799,800,3,308,151,0,800,801,
3,312,153,0,801,802,3,300,147,0,802,101,1,0,0,0,803,804,3,308,151,0,804,
805,3,304,149,0,805,806,3,318,156,0,806,807,3,320,157,0,807,808,3,326,
160,0,808,809,3,300,147,0,809,103,1,0,0,0,810,811,3,308,151,0,811,812,
3,318,156,0,812,813,3,296,145,0,813,814,3,314,154,0,814,815,3,332,163,
0,815,816,3,298,146,0,816,817,3,300,147,0,817,105,1,0,0,0,818,819,3,308,
151,0,819,820,3,318,156,0,820,107,1,0,0,0,821,822,3,308,151,0,822,823,
3,318,156,0,823,824,3,302,148,0,824,835,1,0,0,0,825,826,3,308,151,0,826,
827,3,318,156,0,827,828,3,302,148,0,828,829,3,308,151,0,829,830,3,318,
156,0,830,831,3,308,151,0,831,832,3,330,162,0,832,833,3,340,167,0,833,
835,1,0,0,0,834,821,1,0,0,0,834,825,1,0,0,0,835,109,1,0,0,0,836,837,3,
308,151,0,837,838,3,318,156,0,838,839,3,318,156,0,839,840,3,300,147,0,
840,841,3,326,160,0,841,111,1,0,0,0,842,843,3,308,151,0,843,844,3,318,
156,0,844,845,3,330,162,0,845,846,3,300,147,0,846,847,3,326,160,0,847,
848,3,328,161,0,848,849,3,300,147,0,849,850,3,296,145,0,850,851,3,330,
162,0,851,113,1,0,0,0,852,853,3,308,151,0,853,854,3,318,156,0,854,855,
3,330,162,0,855,856,3,300,147,0,856,857,3,326,160,0,857,858,3,322,158,
0,858,859,3,320,157,0,859,860,3,314,154,0,860,861,3,292,143,0,861,862,
3,330,162,0,862,863,3,300,147,0,863,115,1,0,0,0,864,865,3,308,151,0,865,
866,3,318,156,0,866,867,3,330,162,0,867,868,3,300,147,0,868,869,3,326,
160,0,869,870,3,334,164,0,870,871,3,292,143,0,871,872,3,314,154,0,872,
117,1,0,0,0,873,874,3,308,151,0,874,875,3,328,161,0,875,119,1,0,0,0,876,
877,3,310,152,0,877,878,3,320,157,0,878,879,3,308,151,0,879,880,3,318,
156,0,880,121,1,0,0,0,881,882,3,312,153,0,882,883,3,300,147,0,883,884,
3,340,167,0,884,123,1,0,0,0,885,886,3,314,154,0,886,887,3,292,143,0,887,
888,3,316,155,0,888,889,3,294,144,0,889,890,3,298,146,0,890,891,3,292,
143,0,891,125,1,0,0,0,892,893,3,314,154,0,893,894,3,292,143,0,894,895,
3,328,161,0,895,896,3,330,162,0,896,127,1,0,0,0,897,898,3,314,154,0,898,
899,3,300,147,0,899,900,3,292,143,0,900,901,3,298,146,0,901,902,3,308,
151,0,902,903,3,318,156,0,903,904,3,304,149,0,904,129,1,0,0,0,905,906,
3,314,154,0,906,907,3,300,147,0,907,908,3,302,148,0,908,909,3,330,162,
0,909,131,1,0,0,0,910,911,3,314,154,0,911,912,3,300,147,0,912,913,3,330,
162,0,913,133,1,0,0,0,914,915,3,314,154,0,915,916,3,308,151,0,916,917,
3,312,153,0,917,918,3,300,147,0,918,135,1,0,0,0,919,920,3,314,154,0,920,
921,3,308,151,0,921,922,3,316,155,0,922,923,3,308,151,0,923,924,3,330,
162,0,924,137,1,0,0,0,925,926,3,316,155,0,926,927,3,292,143,0,927,928,
3,330,162,0,928,929,3,300,147,0,929,930,3,326,160,0,930,931,3,308,151,
0,931,932,3,292,143,0,932,933,3,314,154,0,933,934,3,308,151,0,934,935,
3,342,168,0,935,936,3,300,147,0,936,937,3,298,146,0,937,139,1,0,0,0,938,
939,3,316,155,0,939,940,3,308,151,0,940,941,3,318,156,0,941,942,3,332,
163,0,942,943,3,330,162,0,943,944,3,300,147,0,944,141,1,0,0,0,945,946,
3,316,155,0,946,947,3,320,157,0,947,948,3,318,156,0,948,949,3,330,162,
0,949,950,3,306,150,0,950,143,1,0,0,0,951,952,3,318,156,0,952,953,3,292,
143,0,953,954,3,316,155,0,954,955,3,300,147,0,955,145,1,0,0,0,956,957,
3,318,156,0,957,958,3,292,143,0,958,959,3,330,162,0,959,960,3,332,163,
0,960,961,3,326,160,0,961,962,3,292,143,0,962,963,3,314,154,0,963,147,
1,0,0,0,964,965,3,318,156,0,965,966,3,292,143,0,966,967,3,318,156,0,967,
149,1,0,0,0,968,969,3,318,156,0,969,970,3,320,157,0,970,971,3,330,162,
0,971,151,1,0,0,0,972,973,3,318,156,0,973,974,3,332,163,0,974,975,3,314,
154,0,975,976,3,314,154,0,976,153,1,0,0,0,977,978,3,318,156,0,978,979,
3,332,163,0,979,980,3,314,154,0,980,981,3,314,154,0,981,982,3,328,161,
0,982,155,1,0,0,0,983,984,3,320,157,0,984,985,3,302,148,0,985,986,3,302,
148,0,986,987,3,328,161,0,987,988,3,300,147,0,988,989,3,330,162,0,989,
157,1,0,0,0,990,991,3,320,157,0,991,992,3,318,156,0,992,159,1,0,0,0,993,
994,3,320,157,0,994,995,3,326,160,0,995,161,1,0,0,0,996,997,3,320,157,
0,997,998,3,326,160,0,998,999,3,298,146,0,999,1000,3,300,147,0,1000,1001,
3,326,160,0,1001,163,1,0,0,0,1002,1003,3,320,157,0,1003,1004,3,332,163,
0,1004,1005,3,330,162,0,1005,1006,3,300,147,0,1006,1007,3,326,160,0,1007,
165,1,0,0,0,1008,1009,3,320,157,0,1009,1010,3,334,164,0,1010,1011,3,300,
147,0,1011,1012,3,326,160,0,1012,167,1,0,0,0,1013,1014,3,322,158,0,1014,
1015,3,292,143,0,1015,1016,3,326,160,0,1016,1017,3,330,162,0,1017,1018,
3,308,151,0,1018,1019,3,330,162,0,1019,1020,3,308,151,0,1020,1021,3,320,
157,0,1021,1022,3,318,156,0,1022,169,1,0,0,0,1023,1024,3,322,158,0,1024,
1025,3,308,151,0,1025,1026,3,334,164,0,1026,1027,3,320,157,0,1027,1028,
3,330,162,0,1028,171,1,0,0,0,1029,1030,3,322,158,0,1030,1031,3,320,157,
0,1031,1032,3,328,161,0,1032,1033,3,308,151,0,1033,1034,3,330,162,0,1034,
1035,3,308,151,0,1035,1036,3,320,157,0,1036,1037,3,318,156,0,1037,1038,
3,292,143,0,1038,1039,3,314,154,0,1039,173,1,0,0,0,1040,1041,3,322,158,
0,1041,1042,3,326,160,0,1042,1043,3,300,147,0,1043,1044,3,296,145,0,1044,
1045,3,300,147,0,1045,1046,3,298,146,0,1046,1047,3,308,151,0,1047,1048,
3,318,156,0,1048,1049,3,304,149,0,1049,175,1,0,0,0,1050,1051,3,322,158,
0,1051,1052,3,326,160,0,1052,1053,3,300,147,0,1053,1054,3,336,165,0,1054,
1055,3,306,150,0,1055,1056,3,300,147,0,1056,1057,3,326,160,0,1057,1058,
3,300,147,0,1058,177,1,0,0,0,1059,1060,3,324,159,0,1060,1061,3,332,163,
0,1061,1062,3,292,143,0,1062,1063,3,314,154,0,1063,1064,3,308,151,0,1064,
1065,3,302,148,0,1065,1066,3,340,167,0,1066,179,1,0,0,0,1067,1068,3,324,
159,0,1068,1069,3,332,163,0,1069,1070,3,292,143,0,1070,1071,3,326,160,
0,1071,1072,3,330,162,0,1072,1073,3,300,147,0,1073,1074,3,326,160,0,1074,
181,1,0,0,0,1075,1076,3,326,160,0,1076,1077,3,292,143,0,1077,1078,3,318,
156,0,1078,1079,3,304,149,0,1079,1080,3,300,147,0,1080,183,1,0,0,0,1081,
1082,3,326,160,0,1082,1083,3,300,147,0,1083,1084,3,296,145,0,1084,1085,
3,332,163,0,1085,1086,3,326,160,0,1086,1087,3,328,161,0,1087,1088,3,308,
151,0,1088,1089,3,334,164,0,1089,1090,3,300,147,0,1090,185,1,0,0,0,1091,
1092,3,326,160,0,1092,1093,3,300,147,0,1093,1094,3,322,158,0,1094,1095,
3,314,154,0,1095,1096,3,292,143,0,1096,1097,3,296,145,0,1097,1098,3,300,
147,0,1098,187,1,0,0,0,1099,1100,3,326,160,0,1100,1101,3,300,147,0,1101,
1102,3,330,162,0,1102,1103,3,332,163,0,1103,1104,3,326,160,0,1104,1105,
3,318,156,0,1105,189,1,0,0,0,1106,1107,3,326,160,0,1107,1108,3,308,151,
0,1108,1109,3,304,149,0,1109,1110,3,306,150,0,1110,1111,3,330,162,0,1111,
191,1,0,0,0,1112,1113,3,326,160,0,1113,1114,3,320,157,0,1114,1115,3,314,
154,0,1115,1116,3,314,154,0,1116,1117,3,332,163,0,1117,1118,3,322,158,
0,1118,193,1,0,0,0,1119,1120,3,326,160,0,1120,1121,3,320,157,0,1121,1122,
3,336,165,0,1122,195,1,0,0,0,1123,1124,3,326,160,0,1124,1125,3,320,157,
0,1125,1126,3,336,165,0,1126,1127,3,328,161,0,1127,197,1,0,0,0,1128,1129,
3,328,161,0,1129,1130,3,292,143,0,1130,1131,3,316,155,0,1131,1132,3,322,
158,0,1132,1133,3,314,154,0,1133,1134,3,300,147,0,1134,199,1,0,0,0,1135,
1136,3,328,161,0,1136,1137,3,300,147,0,1137,1138,3,296,145,0,1138,1139,
3,320,157,0,1139,1140,3,318,156,0,1140,1141,3,298,146,0,1141,201,1,0,
0,0,1142,1143,3,328,161,0,1143,1144,3,300,147,0,1144,1145,3,314,154,0,
1145,1146,3,300,147,0,1146,1147,3,296,145,0,1147,1148,3,330,162,0,1148,
203,1,0,0,0,1149,1150,3,328,161,0,1150,1151,3,300,147,0,1151,1152,3,316,
155,0,1152,1153,3,308,151,0,1153,205,1,0,0,0,1154,1155,3,328,161,0,1155,
1156,3,300,147,0,1156,1157,3,330,162,0,1157,1158,3,328,161,0,1158,207,
1,0,0,0,1159,1160,3,328,161,0,1160,1161,3,300,147,0,1161,1162,3,330,162,
0,1162,1163,3,330,162,0,1163,1164,3,308,151,0,1164,1165,3,318,156,0,1165,
1166,3,304,149,0,1166,1167,3,328,161,0,1167,209,1,0,0,0,1168,1169,3,328,
161,0,1169,1170,3,330,162,0,1170,1171,3,300,147,0,1171,1172,3,322,158,
0,1172,211,1,0,0,0,1173,1174,3,328,161,0,1174,1175,3,332,163,0,1175,1176,
3,294,144,0,1176,1177,3,328,161,0,1177,1178,3,330,162,0,1178,1179,3,326,
160,0,1179,1180,3,308,151,0,1180,1181,3,318,156,0,1181,1182,3,304,149,
0,1182,213,1,0,0,0,1183,1184,3,330,162,0,1184,1185,3,306,150,0,1185,1186,
3,300,147,0,1186,1187,3,318,156,0,1187,215,1,0,0,0,1188,1189,3,330,162,
0,1189,1190,3,306,150,0,1190,1191,3,326,160,0,1191,1192,3,320,157,0,1192,
1193,3,336,165,0,1193,217,1,0,0,0,1194,1195,3,330,162,0,1195,1196,3,308,
151,0,1196,1197,3,300,147,0,1197,1198,3,328,161,0,1198,219,1,0,0,0,1199,
1200,3,330,162,0,1200,1201,3,308,151,0,1201,1202,3,316,155,0,1202,1203,
3,300,147,0,1203,1204,3,328,161,0,1204,1205,3,330,162,0,1205,1206,3,292,
143,0,1206,1207,3,316,155,0,1207,1208,3,322,158,0,1208,221,1,0,0,0,1209,
1210,3,330,162,0,1210,1211,3,308,151,0,1211,1212,3,316,155,0,1212,1213,
3,300,147,0,1213,223,1,0,0,0,1214,1215,3,314,154,0,1215,1216,3,320,157,
0,1216,1217,3,296,145,0,1217,1218,3,292,143,0,1218,1219,3,314,154,0,1219,
225,1,0,0,0,1220,1221,3,342,168,0,1221,1222,3,320,157,0,1222,1223,3,318,
156,0,1223,1224,3,300,147,0,1224,227,1,0,0,0,1225,1226,3,330,162,0,1226,
1227,3,320,157,0,1227,229,1,0,0,0,1228,1229,3,330,162,0,1229,1230,3,320,
157,0,1230,1231,3,322,158,0,1231,231,1,0,0,0,1232,1233,3,330,162,0,1233,
1234,3,320,157,0,1234,1235,3,330,162,0,1235,1236,3,292,143,0,1236,1237,
3,314,154,0,1237,1238,3,328,161,0,1238,233,1,0,0,0,1239,1240,3,330,162,
0,1240,1241,3,326,160,0,1241,1242,3,292,143,0,1242,1243,3,308,151,0,1243,
1244,3,314,154,0,1244,1245,3,308,151,0,1245,1246,3,318,156,0,1246,1247,
3,304,149,0,1247,235,1,0,0,0,1248,1249,3,330,162,0,1249,1250,3,326,160,
0,1250,1251,3,308,151,0,1251,1252,3,316,155,0,1252,237,1,0,0,0,1253,1254,
3,330,162,0,1254,1255,3,326,160,0,1255,1256,3,332,163,0,1256,1257,3,318,
156,0,1257,1258,3,296,145,0,1258,1259,3,292,143,0,1259,1260,3,330,162,
0,1260,1261,3,300,147,0,1261,239,1,0,0,0,1262,1263,3,330,162,0,1263,1264,
3,326,160,0,1264,1265,3,340,167,0,1265,241,1,0,0,0,1266,1267,3,330,162,
0,1267,1268,3,326,160,0,1268,1269,3,340,167,0,1269,1270,5,95,0,0,1270,
1271,3,296,145,0,1271,1272,3,292,143,0,1272,1273,3,328,161,0,1273,1274,
3,330,162,0,1274,243,1,0,0,0,1275,1276,3,332,163,0,1276,1277,3,318,156,
0,1277,1278,3,294,144,0,1278,1279,3,320,157,0,1279,1280,3,332,163,0,1280,
1281,3,318,156,0,1281,1282,3,298,146,0,1282,1283,3,300,147,0,1283,1284,
3,298,146,0,1284,245,1,0,0,0,1285,1286,3,332,163,0,1286,1287,3,318,156,
0,1287,1288,3,308,151,0,1288,1289,3,320,157,0,1289,1290,3,318,156,0,1290,
247,1,0,0,0,1291,1292,3,332,163,0,1292,1293,3,318,156,0,1293,1294,3,322,
158,0,1294,1295,3,308,151,0,1295,1296,3,334,164,0,1296,1297,3,320,157,
0,1297,1298,3,330,162,0,1298,249,1,0,0,0,1299,1300,3,332,163,0,1300,1301,
3,328,161,0,1301,1302,3,308,151,0,1302,1303,3,318,156,0,1303,1304,3,304,
149,0,1304,251,1,0,0,0,1305,1306,3,334,164,0,1306,1307,3,292,143,0,1307,
1308,3,314,154,0,1308,1309,3,332,163,0,1309,1310,3,300,147,0,1310,1311,
3,328,161,0,1311,253,1,0,0,0,1312,1313,3,336,165,0,1313,1314,3,300,147,
0,1314,1315,3,300,147,0,1315,1316,3,312,153,0,1316,255,1,0,0,0,1317,1318,
3,336,165,0,1318,1319,3,306,150,0,1319,1320,3,300,147,0,1320,1321,3,318,
156,0,1321,257,1,0,0,0,1322,1323,3,336,165,0,1323,1324,3,306,150,0,1324,
1325,3,300,147,0,1325,1326,3,326,160,0,1326,1327,3,300,147,0,1327,259,
1,0,0,0,1328,1329,3,336,165,0,1329,1330,3,306,150,0,1330,1331,3,308,151,
0,1331,1332,3,314,154,0,1332,1333,3,300,147,0,1333,261,1,0,0,0,1334,1335,
3,336,165,0,1335,1336,3,308,151,0,1336,1337,3,318,156,0,1337,1338,3,298,
146,0,1338,1339,3,320,157,0,1339,1340,3,336,165,0,1340,263,1,0,0,0,1341,
1342,3,336,165,0,1342,1343,3,308,151,0,1343,1344,3,330,162,0,1344,1345,
3,306,150,0,1345,265,1,0,0,0,1346,1347,3,336,165,0,1347,1348,3,308,151,
0,1348,1349,3,330,162,0,1349,1350,3,306,150,0,1350,1351,3,308,151,0,1351,
1352,3,318,156,0,1352,267,1,0,0,0,1353,1354,3,340,167,0,1354,1355,3,300,
147,0,1355,1356,3,292,143,0,1356,1357,3,326,160,0,1357,1364,1,0,0,0,1358,
1359,3,340,167,0,1359,1360,3,340,167,0,1360,1361,3,340,167,0,1361,1362,
3,340,167,0,1362,1364,1,0,0,0,1363,1353,1,0,0,0,1363,1358,1,0,0,0,1364,
269,1,0,0,0,1365,1366,3,360,177,0,1366,1367,3,294,144,0,1367,1398,1,0,
0,0,1368,1369,3,360,177,0,1369,1370,3,302,148,0,1370,1398,1,0,0,0,1371,
1372,3,360,177,0,1372,1373,3,326,160,0,1373,1398,1,0,0,0,1374,1375,3,
360,177,0,1375,1376,3,318,156,0,1376,1398,1,0,0,0,1377,1378,3,360,177,
0,1378,1379,3,330,162,0,1379,1398,1,0,0,0,1380,1381,3,360,177,0,1381,
1382,5,48,0,0,1382,1398,1,0,0,0,1383,1384,3,360,177,0,1384,1385,3,292,
143,0,1385,1398,1,0,0,0,1386,1387,3,360,177,0,1387,1388,3,334,164,0,1388,
1398,1,0,0,0,1389,1390,3,360,177,0,1390,1391,3,360,177,0,1391,1398,1,
0,0,0,1392,1393,3,360,177,0,1393,1394,3,338,166,0,1394,1395,3,352,173,
0,1395,1396,3,352,173,0,1396,1398,1,0,0,0,1397,1365,1,0,0,0,1397,1368,
1,0,0,0,1397,1371,1,0,0,0,1397,1374,1,0,0,0,1397,1377,1,0,0,0,1397,1380,
1,0,0,0,1397,1383,1,0,0,0,1397,1386,1,0,0,0,1397,1389,1,0,0,0,1397,1392,
1,0,0,0,1398,271,1,0,0,0,1399,1403,3,344,169,0,1400,1403,3,450,222,0,
1401,1403,3,374,184,0,1402,1399,1,0,0,0,1402,1400,1,0,0,0,1402,1401,1,
0,0,0,1403,1410,1,0,0,0,1404,1409,3,344,169,0,1405,1409,3,450,222,0,1406,
1409,3,350,172,0,1407,1409,3,374,184,0,1408,1404,1,0,0,0,1408,1405,1,
0,0,0,1408,1406,1,0,0,0,1408,1407,1,0,0,0,1409,1412,1,0,0,0,1410,1408,
1,0,0,0,1410,1411,1,0,0,0,1411,273,1,0,0,0,1412,1410,1,0,0,0,1413,1424,
3,358,176,0,1414,1423,8,0,0,0,1415,1423,3,270,132,0,1416,1417,3,360,177,
0,1417,1418,3,432,213,0,1418,1423,1,0,0,0,1419,1420,3,358,176,0,1420,
1421,3,358,176,0,1421,1423,1,0,0,0,1422,1414,1,0,0,0,1422,1415,1,0,0,
0,1422,1416,1,0,0,0,1422,1419,1,0,0,0,1423,1426,1,0,0,0,1424,1422,1,0,
0,0,1424,1425,1,0,0,0,1425,1427,1,0,0,0,1426,1424,1,0,0,0,1427,1428,3,
358,176,0,1428,1446,1,0,0,0,1429,1440,3,426,210,0,1430,1439,8,1,0,0,1431,
1439,3,270,132,0,1432,1433,3,360,177,0,1433,1434,3,426,210,0,1434,1439,
1,0,0,0,1435,1436,3,426,210,0,1436,1437,3,426,210,0,1437,1439,1,0,0,0,
1438,1430,1,0,0,0,1438,1431,1,0,0,0,1438,1432,1,0,0,0,1438,1435,1,0,0,
0,1439,1442,1,0,0,0,1440,1438,1,0,0,0,1440,1441,1,0,0,0,1441,1443,1,0,
0,0,1442,1440,1,0,0,0,1443,1444,3,426,210,0,1444,1446,1,0,0,0,1445,1413,
1,0,0,0,1445,1429,1,0,0,0,1446,275,1,0,0,0,1447,1448,3,284,139,0,1448,
1452,3,376,185,0,1449,1451,3,352,173,0,1450,1449,1,0,0,0,1451,1454,1,
0,0,0,1452,1450,1,0,0,0,1452,1453,1,0,0,0,1453,1455,1,0,0,0,1454,1452,
1,0,0,0,1455,1458,3,322,158,0,1456,1459,3,422,208,0,1457,1459,3,372,183,
0,1458,1456,1,0,0,0,1458,1457,1,0,0,0,1458,1459,1,0,0,0,1459,1461,1,0,
0,0,1460,1462,3,350,172,0,1461,1460,1,0,0,0,1462,1463,1,0,0,0,1463,1461,
1,0,0,0,1463,1464,1,0,0,0,1464,1518,1,0,0,0,1465,1466,3,284,139,0,1466,
1469,3,322,158,0,1467,1470,3,422,208,0,1468,1470,3,372,183,0,1469,1467,
1,0,0,0,1469,1468,1,0,0,0,1469,1470,1,0,0,0,1470,1472,1,0,0,0,1471,1473,
3,350,172,0,1472,1471,1,0,0,0,1473,1474,1,0,0,0,1474,1472,1,0,0,0,1474,
1475,1,0,0,0,1475,1518,1,0,0,0,1476,1477,3,282,138,0,1477,1481,3,376,
185,0,1478,1480,3,350,172,0,1479,1478,1,0,0,0,1480,1483,1,0,0,0,1481,
1479,1,0,0,0,1481,1482,1,0,0,0,1482,1484,1,0,0,0,1483,1481,1,0,0,0,1484,
1487,3,300,147,0,1485,1488,3,422,208,0,1486,1488,3,372,183,0,1487,1485,
1,0,0,0,1487,1486,1,0,0,0,1487,1488,1,0,0,0,1488,1490,1,0,0,0,1489,1491,
3,350,172,0,1490,1489,1,0,0,0,1491,1492,1,0,0,0,1492,1490,1,0,0,0,1492,
1493,1,0,0,0,1493,1518,1,0,0,0,1494,1495,3,376,185,0,1495,1496,3,282,
138,0,1496,1499,3,300,147,0,1497,1500,3,422,208,0,1498,1500,3,372,183,
0,1499,1497,1,0,0,0,1499,1498,1,0,0,0,1499,1500,1,0,0,0,1500,1502,1,0,
0,0,1501,1503,3,350,172,0,1502,1501,1,0,0,0,1503,1504,1,0,0,0,1504,1502,
1,0,0,0,1504,1505,1,0,0,0,1505,1518,1,0,0,0,1506,1507,3,282,138,0,1507,
1510,3,300,147,0,1508,1511,3,422,208,0,1509,1511,3,372,183,0,1510,1508,
1,0,0,0,1510,1509,1,0,0,0,1510,1511,1,0,0,0,1511,1513,1,0,0,0,1512,1514,
3,350,172,0,1513,1512,1,0,0,0,1514,1515,1,0,0,0,1515,1513,1,0,0,0,1515,
1516,1,0,0,0,1516,1518,1,0,0,0,1517,1447,1,0,0,0,1517,1465,1,0,0,0,1517,
1476,1,0,0,0,1517,1494,1,0,0,0,1517,1506,1,0,0,0,1518,277,1,0,0,0,1519,
1520,5,48,0,0,1520,1522,3,294,144,0,1521,1523,3,346,170,0,1522,1521,1,
0,0,0,1523,1524,1,0,0,0,1524,1522,1,0,0,0,1524,1525,1,0,0,0,1525,279,
1,0,0,0,1526,1528,5,48,0,0,1527,1529,3,348,171,0,1528,1527,1,0,0,0,1529,
1530,1,0,0,0,1530,1528,1,0,0,0,1530,1531,1,0,0,0,1531,281,1,0,0,0,1532,
1534,3,350,172,0,1533,1532,1,0,0,0,1534,1535,1,0,0,0,1535,1533,1,0,0,
0,1535,1536,1,0,0,0,1536,283,1,0,0,0,1537,1538,5,48,0,0,1538,1540,3,338,
166,0,1539,1541,3,352,173,0,1540,1539,1,0,0,0,1541,1542,1,0,0,0,1542,
1540,1,0,0,0,1542,1543,1,0,0,0,1543,285,1,0,0,0,1544,1545,5,48,0,0,1545,
1547,7,2,0,0,1546,1548,3,350,172,0,1547,1546,1,0,0,0,1548,1549,1,0,0,
0,1549,1547,1,0,0,0,1549,1550,1,0,0,0,1550,287,1,0,0,0,1551,1552,5,48,
0,0,1552,1554,7,3,0,0,1553,1555,3,350,172,0,1554,1553,1,0,0,0,1555,1556,
1,0,0,0,1556,1554,1,0,0,0,1556,1557,1,0,0,0,1557,289,1,0,0,0,1558,1569,
3,432,213,0,1559,1568,8,4,0,0,1560,1568,3,270,132,0,1561,1562,3,360,177,
0,1562,1563,3,432,213,0,1563,1568,1,0,0,0,1564,1565,3,432,213,0,1565,
1566,3,432,213,0,1566,1568,1,0,0,0,1567,1559,1,0,0,0,1567,1560,1,0,0,
0,1567,1561,1,0,0,0,1567,1564,1,0,0,0,1568,1571,1,0,0,0,1569,1567,1,0,
0,0,1569,1570,1,0,0,0,1570,1572,1,0,0,0,1571,1569,1,0,0,0,1572,1573,3,
432,213,0,1573,291,1,0,0,0,1574,1575,7,5,0,0,1575,293,1,0,0,0,1576,1577,
7,3,0,0,1577,295,1,0,0,0,1578,1579,7,6,0,0,1579,297,1,0,0,0,1580,1581,
7,7,0,0,1581,299,1,0,0,0,1582,1583,7,8,0,0,1583,301,1,0,0,0,1584,1585,
7,9,0,0,1585,303,1,0,0,0,1586,1587,7,10,0,0,1587,305,1,0,0,0,1588,1589,
7,11,0,0,1589,307,1,0,0,0,1590,1591,7,12,0,0,1591,309,1,0,0,0,1592,1593,
7,13,0,0,1593,311,1,0,0,0,1594,1595,7,14,0,0,1595,313,1,0,0,0,1596,1597,
7,15,0,0,1597,315,1,0,0,0,1598,1599,7,16,0,0,1599,317,1,0,0,0,1600,1601,
7,17,0,0,1601,319,1,0,0,0,1602,1603,7,2,0,0,1603,321,1,0,0,0,1604,1605,
7,18,0,0,1605,323,1,0,0,0,1606,1607,7,19,0,0,1607,325,1,0,0,0,1608,1609,
7,20,0,0,1609,327,1,0,0,0,1610,1611,7,21,0,0,1611,329,1,0,0,0,1612,1613,
7,22,0,0,1613,331,1,0,0,0,1614,1615,7,23,0,0,1615,333,1,0,0,0,1616,1617,
7,24,0,0,1617,335,1,0,0,0,1618,1619,7,25,0,0,1619,337,1,0,0,0,1620,1621,
7,26,0,0,1621,339,1,0,0,0,1622,1623,7,27,0,0,1623,341,1,0,0,0,1624,1625,
7,28,0,0,1625,343,1,0,0,0,1626,1627,7,29,0,0,1627,345,1,0,0,0,1628,1629,
7,30,0,0,1629,347,1,0,0,0,1630,1631,7,31,0,0,1631,349,1,0,0,0,1632,1633,
7,32,0,0,1633,351,1,0,0,0,1634,1635,7,33,0,0,1635,353,1,0,0,0,1636,1637,
5,45,0,0,1637,1638,5,62,0,0,1638,355,1,0,0,0,1639,1640,5,42,0,0,1640,
357,1,0,0,0,1641,1642,5,96,0,0,1642,359,1,0,0,0,1643,1644,5,92,0,0,1644,
361,1,0,0,0,1645,1646,5,58,0,0,1646,1647,5,58,0,0,1647,363,1,0,0,0,1648,
1649,5,58,0,0,1649,1650,5,61,0,0,1650,365,1,0,0,0,1651,1652,5,58,0,0,
1652,367,1,0,0,0,1653,1654,5,44,0,0,1654,369,1,0,0,0,1655,1656,5,124,
0,0,1656,1657,5,124,0,0,1657,371,1,0,0,0,1658,1659,5,45,0,0,1659,373,
1,0,0,0,1660,1661,5,36,0,0,1661,375,1,0,0,0,1662,1663,5,46,0,0,1663,377,
1,0,0,0,1664,1665,5,61,0,0,1665,1666,5,61,0,0,1666,379,1,0,0,0,1667,1668,
5,61,0,0,1668,381,1,0,0,0,1669,1670,5,62,0,0,1670,1671,5,61,0,0,1671,
383,1,0,0,0,1672,1673,5,62,0,0,1673,385,1,0,0,0,1674,1675,5,35,0,0,1675,
387,1,0,0,0,1676,1677,5,126,0,0,1677,1678,5,42,0,0,1678,389,1,0,0,0,1679,
1680,5,61,0,0,1680,1681,5,126,0,0,1681,1682,5,42,0,0,1682,391,1,0,0,0,
1683,1684,5,123,0,0,1684,1685,1,0,0,0,1685,1686,6,193,0,0,1686,393,1,
0,0,0,1687,1688,5,91,0,0,1688,395,1,0,0,0,1689,1690,5,40,0,0,1690,397,
1,0,0,0,1691,1692,5,60,0,0,1692,1693,5,61,0,0,1693,1694,5,62,0,0,1694,
399,1,0,0,0,1695,1696,5,60,0,0,1696,1697,5,61,0,0,1697,401,1,0,0,0,1698,
1699,5,60,0,0,1699,1700,5,47,0,0,1700,1701,1,0,0,0,1701,1702,6,198,1,
0,1702,1703,6,198,2,0,1703,403,1,0,0,0,1704,1705,5,60,0,0,1705,1706,4,
199,0,0,1706,1707,1,0,0,0,1707,1708,6,199,3,0,1708,1709,6,199,4,0,1709,
405,1,0,0,0,1710,1711,5,60,0,0,1711,407,1,0,0,0,1712,1713,5,60,0,0,1713,
1714,5,47,0,0,1714,409,1,0,0,0,1715,1716,5,33,0,0,1716,1720,5,61,0,0,
1717,1718,5,60,0,0,1718,1720,5,62,0,0,1719,1715,1,0,0,0,1719,1717,1,0,
0,0,1720,411,1,0,0,0,1721,1722,5,33,0,0,1722,1723,5,126,0,0,1723,1724,
5,42,0,0,1724,413,1,0,0,0,1725,1726,5,33,0,0,1726,1727,5,126,0,0,1727,
415,1,0,0,0,1728,1729,5,63,0,0,1729,1730,5,46,0,0,1730,417,1,0,0,0,1731,
1732,5,63,0,0,1732,1733,5,63,0,0,1733,419,1,0,0,0,1734,1735,5,37,0,0,
1735,421,1,0,0,0,1736,1737,5,43,0,0,1737,423,1,0,0,0,1738,1739,5,63,0,
0,1739,425,1,0,0,0,1740,1741,5,34,0,0,1741,427,1,0,0,0,1742,1743,5,102,
0,0,1743,1744,5,39,0,0,1744,1745,1,0,0,0,1745,1746,6,211,5,0,1746,429,
1,0,0,0,1747,1748,5,70,0,0,1748,1749,5,39,0,0,1749,1750,1,0,0,0,1750,
1751,6,212,6,0,1751,431,1,0,0,0,1752,1753,5,39,0,0,1753,433,1,0,0,0,1754,
1755,5,126,0,0,1755,435,1,0,0,0,1756,1757,5,61,0,0,1757,1758,5,126,0,
0,1758,437,1,0,0,0,1759,1760,5,125,0,0,1760,1761,1,0,0,0,1761,1762,6,
216,7,0,1762,439,1,0,0,0,1763,1764,5,93,0,0,1764,441,1,0,0,0,1765,1766,
5,41,0,0,1766,443,1,0,0,0,1767,1768,5,59,0,0,1768,445,1,0,0,0,1769,1770,
5,47,0,0,1770,447,1,0,0,0,1771,1772,5,47,0,0,1772,1773,5,62,0,0,1773,
449,1,0,0,0,1774,1775,5,95,0,0,1775,451,1,0,0,0,1776,1777,5,47,0,0,1777,
1778,5,42,0,0,1778,1782,1,0,0,0,1779,1781,9,0,0,0,1780,1779,1,0,0,0,1781,
1784,1,0,0,0,1782,1783,1,0,0,0,1782,1780,1,0,0,0,1783,1785,1,0,0,0,1784,
1782,1,0,0,0,1785,1786,5,42,0,0,1786,1787,5,47,0,0,1787,1788,1,0,0,0,
1788,1789,6,223,8,0,1789,453,1,0,0,0,1790,1791,5,45,0,0,1791,1795,5,45,
0,0,1792,1793,5,47,0,0,1793,1795,5,47,0,0,1794,1790,1,0,0,0,1794,1792,
1,0,0,0,1795,1799,1,0,0,0,1796,1798,8,34,0,0,1797,1796,1,0,0,0,1798,1801,
1,0,0,0,1799,1797,1,0,0,0,1799,1800,1,0,0,0,1800,1803,1,0,0,0,1801,1799,
1,0,0,0,1802,1804,7,35,0,0,1803,1802,1,0,0,0,1804,1805,1,0,0,0,1805,1806,
6,224,8,0,1806,455,1,0,0,0,1807,1815,5,35,0,0,1808,1812,8,36,0,0,1809,
1811,8,34,0,0,1810,1809,1,0,0,0,1811,1814,1,0,0,0,1812,1810,1,0,0,0,1812,
1813,1,0,0,0,1813,1816,1,0,0,0,1814,1812,1,0,0,0,1815,1808,1,0,0,0,1815,
1816,1,0,0,0,1816,1818,1,0,0,0,1817,1819,7,35,0,0,1818,1817,1,0,0,0,1819,
1820,1,0,0,0,1820,1821,6,225,8,0,1821,457,1,0,0,0,1822,1823,7,37,0,0,
1823,1824,1,0,0,0,1824,1825,6,226,9,0,1825,459,1,0,0,0,1826,1827,9,0,
0,0,1827,461,1,0,0,0,1828,1840,8,38,0,0,1829,1840,3,270,132,0,1830,1831,
3,360,177,0,1831,1832,3,432,213,0,1832,1840,1,0,0,0,1833,1834,3,360,177,
0,1834,1835,3,392,193,0,1835,1840,1,0,0,0,1836,1837,3,432,213,0,1837,
1838,3,432,213,0,1838,1840,1,0,0,0,1839,1828,1,0,0,0,1839,1829,1,0,0,
0,1839,1830,1,0,0,0,1839,1833,1,0,0,0,1839,1836,1,0,0,0,1840,1841,1,0,
0,0,1841,1839,1,0,0,0,1841,1842,1,0,0,0,1842,463,1,0,0,0,1843,1844,3,
392,193,0,1844,1845,1,0,0,0,1845,1846,6,229,0,0,1846,465,1,0,0,0,1847,
1848,3,432,213,0,1848,1849,1,0,0,0,1849,1850,6,230,10,0,1850,1851,6,230,
7,0,1851,467,1,0,0,0,1852,1858,8,39,0,0,1853,1858,3,270,132,0,1854,1855,
3,360,177,0,1855,1856,3,392,193,0,1856,1858,1,0,0,0,1857,1852,1,0,0,0,
1857,1853,1,0,0,0,1857,1854,1,0,0,0,1858,1859,1,0,0,0,1859,1857,1,0,0,
0,1859,1860,1,0,0,0,1860,469,1,0,0,0,1861,1862,3,392,193,0,1862,1863,
1,0,0,0,1863,1864,6,232,0,0,1864,471,1,0,0,0,1865,1866,5,47,0,0,1866,
1867,5,62,0,0,1867,1868,1,0,0,0,1868,1869,6,233,11,0,1869,1870,6,233,
7,0,1870,473,1,0,0,0,1871,1872,5,62,0,0,1872,1873,1,0,0,0,1873,1874,6,
234,12,0,1874,1875,6,234,7,0,1875,1876,6,234,13,0,1876,475,1,0,0,0,1877,
1878,5,47,0,0,1878,1879,5,42,0,0,1879,1883,1,0,0,0,1880,1882,9,0,0,0,
1881,1880,1,0,0,0,1882,1885,1,0,0,0,1883,1884,1,0,0,0,1883,1881,1,0,0,
0,1884,1886,1,0,0,0,1885,1883,1,0,0,0,1886,1887,5,42,0,0,1887,1888,5,
47,0,0,1888,1889,1,0,0,0,1889,1890,6,235,8,0,1890,477,1,0,0,0,1891,1892,
5,45,0,0,1892,1896,5,45,0,0,1893,1894,5,47,0,0,1894,1896,5,47,0,0,1895,
1891,1,0,0,0,1895,1893,1,0,0,0,1896,1900,1,0,0,0,1897,1899,8,34,0,0,1898,
1897,1,0,0,0,1899,1902,1,0,0,0,1900,1898,1,0,0,0,1900,1901,1,0,0,0,1901,
1904,1,0,0,0,1902,1900,1,0,0,0,1903,1905,7,35,0,0,1904,1903,1,0,0,0,1905,
1906,1,0,0,0,1906,1907,6,236,8,0,1907,479,1,0,0,0,1908,1912,7,40,0,0,
1909,1911,7,41,0,0,1910,1909,1,0,0,0,1911,1914,1,0,0,0,1912,1910,1,0,
0,0,1912,1913,1,0,0,0,1913,1915,1,0,0,0,1914,1912,1,0,0,0,1915,1916,6,
237,14,0,1916,481,1,0,0,0,1917,1918,5,61,0,0,1918,1919,1,0,0,0,1919,1920,
6,238,15,0,1920,483,1,0,0,0,1921,1922,3,290,142,0,1922,1923,1,0,0,0,1923,
1924,6,239,16,0,1924,485,1,0,0,0,1925,1927,7,42,0,0,1926,1925,1,0,0,0,
1927,1928,1,0,0,0,1928,1926,1,0,0,0,1928,1929,1,0,0,0,1929,1930,1,0,0,
0,1930,1931,6,240,9,0,1931,487,1,0,0,0,1932,1933,5,123,0,0,1933,1934,
1,0,0,0,1934,1935,6,241,17,0,1935,1936,6,241,0,0,1936,489,1,0,0,0,1937,
1938,9,0,0,0,1938,1939,1,0,0,0,1939,1940,6,242,18,0,1940,491,1,0,0,0,
1941,1942,5,62,0,0,1942,1943,1,0,0,0,1943,1944,6,243,12,0,1944,1945,6,
243,7,0,1945,493,1,0,0,0,1946,1947,5,47,0,0,1947,1948,5,42,0,0,1948,1952,
1,0,0,0,1949,1951,9,0,0,0,1950,1949,1,0,0,0,1951,1954,1,0,0,0,1952,1953,
1,0,0,0,1952,1950,1,0,0,0,1953,1955,1,0,0,0,1954,1952,1,0,0,0,1955,1956,
5,42,0,0,1956,1957,5,47,0,0,1957,1958,1,0,0,0,1958,1959,6,244,8,0,1959,
495,1,0,0,0,1960,1961,5,45,0,0,1961,1965,5,45,0,0,1962,1963,5,47,0,0,
1963,1965,5,47,0,0,1964,1960,1,0,0,0,1964,1962,1,0,0,0,1965,1969,1,0,
0,0,1966,1968,8,34,0,0,1967,1966,1,0,0,0,1968,1971,1,0,0,0,1969,1967,
1,0,0,0,1969,1970,1,0,0,0,1970,1973,1,0,0,0,1971,1969,1,0,0,0,1972,1974,
7,35,0,0,1973,1972,1,0,0,0,1974,1975,1,0,0,0,1975,1976,6,245,8,0,1976,
497,1,0,0,0,1977,1981,7,40,0,0,1978,1980,7,41,0,0,1979,1978,1,0,0,0,1980,
1983,1,0,0,0,1981,1979,1,0,0,0,1981,1982,1,0,0,0,1982,1984,1,0,0,0,1983,
1981,1,0,0,0,1984,1985,6,246,14,0,1985,499,1,0,0,0,1986,1988,7,42,0,0,
1987,1986,1,0,0,0,1988,1989,1,0,0,0,1989,1987,1,0,0,0,1989,1990,1,0,0,
0,1990,1991,1,0,0,0,1991,1992,6,247,9,0,1992,501,1,0,0,0,1993,1994,9,
0,0,0,1994,1995,1,0,0,0,1995,1996,6,248,18,0,1996,503,1,0,0,0,1997,1999,
8,43,0,0,1998,1997,1,0,0,0,1999,2000,1,0,0,0,2000,1998,1,0,0,0,2000,2001,
1,0,0,0,2001,505,1,0,0,0,2002,2003,5,123,0,0,2003,2004,1,0,0,0,2004,2005,
6,250,17,0,2005,2006,6,250,0,0,2006,507,1,0,0,0,2007,2008,5,60,0,0,2008,
2009,5,47,0,0,2009,2010,1,0,0,0,2010,2011,6,251,1,0,2011,2012,6,251,7,
0,2012,2013,6,251,2,0,2013,509,1,0,0,0,2014,2015,5,60,0,0,2015,2016,1,
0,0,0,2016,2017,6,252,3,0,2017,2018,6,252,4,0,2018,511,1,0,0,0,2019,2021,
7,42,0,0,2020,2019,1,0,0,0,2021,2022,1,0,0,0,2022,2020,1,0,0,0,2022,2023,
1,0,0,0,2023,2024,1,0,0,0,2024,2025,6,253,9,0,2025,513,1,0,0,0,65,0,1,
2,3,4,5,554,834,1363,1397,1402,1408,1410,1422,1424,1438,1440,1445,1452,
1458,1463,1469,1474,1481,1487,1492,1499,1504,1510,1515,1517,1524,1530,
1535,1542,1549,1556,1567,1569,1719,1782,1794,1799,1803,1812,1815,1818,
1839,1841,1857,1859,1883,1895,1900,1904,1912,1928,1952,1964,1969,1973,
1981,1989,2000,2022,19,5,0,0,7,169,0,5,4,0,7,168,0,5,3,0,5,1,0,5,2,0,
4,0,0,6,0,0,0,1,0,7,181,0,7,189,0,7,159,0,5,5,0,7,134,0,7,157,0,7,143,
0,7,163,0,7,195,0
};
staticData->serializedATN = antlr4::atn::SerializedATNView(serializedATNSegment, sizeof(serializedATNSegment) / sizeof(serializedATNSegment[0]));
antlr4::atn::ATNDeserializer deserializer;
staticData->atn = deserializer.deserialize(staticData->serializedATN);
const size_t count = staticData->atn->getNumberOfDecisions();
staticData->decisionToDFA.reserve(count);
for (size_t i = 0; i < count; i++) {
staticData->decisionToDFA.emplace_back(staticData->atn->getDecisionState(i), i);
}
insightsqllexerLexerStaticData = std::move(staticData);
}
}
InsightsQLLexer::InsightsQLLexer(CharStream *input) : Lexer(input) {
InsightsQLLexer::initialize();
_interpreter = new atn::LexerATNSimulator(this, *insightsqllexerLexerStaticData->atn, insightsqllexerLexerStaticData->decisionToDFA, insightsqllexerLexerStaticData->sharedContextCache);
}
InsightsQLLexer::~InsightsQLLexer() {
delete _interpreter;
}
std::string InsightsQLLexer::getGrammarFileName() const {
return "InsightsQLLexer.g4";
}
const std::vector<std::string>& InsightsQLLexer::getRuleNames() const {
return insightsqllexerLexerStaticData->ruleNames;
}
const std::vector<std::string>& InsightsQLLexer::getChannelNames() const {
return insightsqllexerLexerStaticData->channelNames;
}
const std::vector<std::string>& InsightsQLLexer::getModeNames() const {
return insightsqllexerLexerStaticData->modeNames;
}
const dfa::Vocabulary& InsightsQLLexer::getVocabulary() const {
return insightsqllexerLexerStaticData->vocabulary;
}
antlr4::atn::SerializedATNView InsightsQLLexer::getSerializedATN() const {
return insightsqllexerLexerStaticData->serializedATN;
}
const atn::ATN& InsightsQLLexer::getATN() const {
return *insightsqllexerLexerStaticData->atn;
}
bool InsightsQLLexer::sempred(RuleContext *context, size_t ruleIndex, size_t predicateIndex) {
switch (ruleIndex) {
case 199: return TAG_LT_OPENSempred(antlrcpp::downCast<antlr4::RuleContext *>(context), predicateIndex);
default:
break;
}
return true;
}
bool InsightsQLLexer::TAG_LT_OPENSempred(antlr4::RuleContext *_localctx, size_t predicateIndex) {
switch (predicateIndex) {
case 0: return isOpeningTag();
default:
break;
}
return true;
}
void InsightsQLLexer::initialize() {
#if ANTLR4_USE_THREAD_LOCAL_CACHE
insightsqllexerLexerInitialize();
#else
::antlr4::internal::call_once(insightsqllexerLexerOnceFlag, insightsqllexerLexerInitialize);
#endif
}