diff --git a/build/antlr4.js b/build/antlr4.js index 59af5a1..92f4931 100644 --- a/build/antlr4.js +++ b/build/antlr4.js @@ -11,6 +11,7 @@ const entry = [ 'plsql', 'spark', 'impala', + 'flinksql', ]; entry.forEach((language) => { diff --git a/src/grammar/flinksql/FlinkSqlLexer.g4 b/src/grammar/flinksql/FlinkSqlLexer.g4 new file mode 100644 index 0000000..9dad479 --- /dev/null +++ b/src/grammar/flinksql/FlinkSqlLexer.g4 @@ -0,0 +1,332 @@ +lexer grammar FlinkSqlLexer; + +// SKIP + +SPACE: [ \t\r\n]+ -> channel(HIDDEN); +COMMENT_INPUT: '/*' .*? '*/' -> channel(HIDDEN); +LINE_COMMENT: ( + ('-- ' | '#') ~[\r\n]* ('\r'? '\n' | EOF) + | '--' ('\r'? '\n' | EOF) + ) -> channel(HIDDEN); + + +// Common Keywords + +SELECT: 'SELECT'; +FROM: 'FROM'; +ADD: 'ADD'; +AS: 'AS'; +ALL: 'ALL'; +ANY: 'ANY'; +DISTINCT: 'DISTINCT'; +WHERE: 'WHERE'; +GROUP: 'GROUP'; +BY: 'BY'; +GROUPING: 'GROUPING'; +SETS: 'SETS'; +CUBE: 'CUBE'; +ROLLUP: 'ROLLUP'; +ORDER: 'ORDER'; +HAVING: 'HAVING'; +LIMIT: 'LIMIT'; +AT: 'AT'; +OR: 'OR'; +AND: 'AND'; +IN: 'IN'; +NOT: 'NOT'; +NO: 'NO'; +EXISTS: 'EXISTS'; +BETWEEN: 'BETWEEN'; +LIKE: 'LIKE'; +RLIKE: 'RLIKE'; +IS: 'IS'; +TRUE: 'TRUE'; +FALSE: 'FALSE'; +NULLS: 'NULLS'; +ASC: 'ASC'; +DESC: 'DESC'; +FOR: 'FOR'; +INTERVAL: 'INTERVAL'; +CASE: 'CASE'; +WHEN: 'WHEN'; +THEN: 'THEN'; +ELSE: 'ELSE'; +END: 'END'; +JOIN: 'JOIN'; +CROSS: 'CROSS'; +OUTER: 'OUTER'; +INNER: 'INNER'; +LEFT: 'LEFT'; +SEMI: 'SEMI'; +RIGHT: 'RIGHT'; +FULL: 'FULL'; +NATURAL: 'NATURAL'; +ON: 'ON'; +PIVOT: 'PIVOT'; +LATERAL: 'LATERAL'; +WINDOW: 'WINDOW'; +OVER: 'OVER'; +PARTITION: 'PARTITION'; +RANGE: 'RANGE'; +ROWS: 'ROWS'; +UNBOUNDED: 'UNBOUNDED'; +PRECEDING: 'PRECEDING'; +FOLLOWING: 'FOLLOWING'; +CURRENT: 'CURRENT'; +FIRST: 'FIRST'; +AFTER: 'AFTER'; +LAST: 'LAST'; +WITH: 'WITH'; +VALUES: 'VALUES'; +CREATE: 'CREATE'; +TABLE: 'TABLE'; +DIRECTORY: 'DIRECTORY'; +VIEW: 'VIEW'; +REPLACE: 'REPLACE'; +INSERT: 'INSERT'; +DELETE: 'DELETE'; +INTO: 'INTO'; +DESCRIBE: 'DESCRIBE'; +EXPLAIN: 'EXPLAIN'; +FORMAT: 'FORMAT'; +LOGICAL: 'LOGICAL'; +CODEGEN: 'CODEGEN'; +COST: 'COST'; +CAST: 'CAST'; +SHOW: 'SHOW'; +TABLES: 'TABLES'; +COLUMNS: 'COLUMNS'; +COLUMN: 'COLUMN'; +USE: 'USE'; +PARTITIONS: 'PARTITIONS'; +FUNCTIONS: 'FUNCTIONS'; +DROP: 'DROP'; +UNION: 'UNION'; +EXCEPT: 'EXCEPT'; +SETMINUS: 'SETMINUS'; +INTERSECT: 'INTERSECT'; +TO: 'TO'; +TABLESAMPLE: 'TABLESAMPLE'; +STRATIFY: 'STRATIFY'; +ALTER: 'ALTER'; +RENAME: 'RENAME'; +STRUCT: 'STRUCT'; +COMMENT: 'COMMENT'; +SET: 'SET'; +RESET: 'RESET'; +DATA: 'DATA'; +START: 'START'; +TRANSACTION: 'TRANSACTION'; +COMMIT: 'COMMIT'; +ROLLBACK: 'ROLLBACK'; +MACRO: 'MACRO'; +IGNORE: 'IGNORE'; +BOTH: 'BOTH'; +LEADING: 'LEADING'; +TRAILING: 'TRAILING'; +IF: 'IF'; +POSITION: 'POSITION'; +EXTRACT: 'EXTRACT'; +MINUS: 'MINUS'; +DIV: 'DIV'; +PERCENTLIT: 'PERCENTLIT'; +BUCKET: 'BUCKET'; +OUT: 'OUT'; +OF: 'OF'; +SORT: 'SORT'; +CLUSTER: 'CLUSTER'; +DISTRIBUTE: 'DISTRIBUTE'; +OVERWRITE: 'OVERWRITE'; +TRANSFORM: 'TRANSFORM'; +REDUCE: 'REDUCE'; +USING: 'USING'; +SERDE: 'SERDE'; +SERDEPROPERTIES: 'SERDEPROPERTIES'; +RECORDREADER: 'RECORDREADER'; +RECORDWRITER: 'RECORDWRITER'; +DELIMITED: 'DELIMITED'; +FIELDS: 'FIELDS'; +TERMINATED: 'TERMINATED'; +COLLECTION: 'COLLECTION'; +ITEMS: 'ITEMS'; +KEYS: 'KEYS'; +ESCAPED: 'ESCAPED'; +LINES: 'LINES'; +SEPARATED: 'SEPARATED'; +FUNCTION: 'FUNCTION'; +EXTENDED: 'EXTENDED'; +REFRESH: 'REFRESH'; +CLEAR: 'CLEAR'; +CACHE: 'CACHE'; +UNCACHE: 'UNCACHE'; +LAZY: 'LAZY'; +FORMATTED: 'FORMATTED'; +GLOBAL: 'GLOBAL'; +TEMPORARY: 'TEMPORARY'; +OPTIONS: 'OPTIONS'; +UNSET: 'UNSET'; +TBLPROPERTIES: 'TBLPROPERTIES'; +DBPROPERTIES: 'DBPROPERTIES'; +BUCKETS: 'BUCKETS'; +SKEWED: 'SKEWED'; +STORED: 'STORED'; +DIRECTORIES: 'DIRECTORIES'; +LOCATION: 'LOCATION'; +EXCHANGE: 'EXCHANGE'; +ARCHIVE: 'ARCHIVE'; +UNARCHIVE: 'UNARCHIVE'; +FILEFORMAT: 'FILEFORMAT'; +TOUCH: 'TOUCH'; +COMPACT: 'COMPACT'; +CONCATENATE: 'CONCATENATE'; +CHANGE: 'CHANGE'; +CASCADE: 'CASCADE'; +CONSTRAINT: 'CONSTRAINT'; +RESTRICT: 'RESTRICT'; +CLUSTERED: 'CLUSTERED'; +SORTED: 'SORTED'; +PURGE: 'PURGE'; +INPUTFORMAT: 'INPUTFORMAT'; +OUTPUTFORMAT: 'OUTPUTFORMAT'; +DATABASE: 'DATABASE'; +DATABASES: 'DATABASES'; +DFS: 'DFS'; +TRUNCATE: 'TRUNCATE'; +ANALYZE: 'ANALYZE'; +COMPUTE: 'COMPUTE'; +LIST: 'LIST'; +STATISTICS: 'STATISTICS'; +PARTITIONED: 'PARTITIONED'; +EXTERNAL: 'EXTERNAL'; +DEFINED: 'DEFINED'; +REVOKE: 'REVOKE'; +GRANT: 'GRANT'; +LOCK: 'LOCK'; +UNLOCK: 'UNLOCK'; +MSCK: 'MSCK'; +REPAIR: 'REPAIR'; +RECOVER: 'RECOVER'; +EXPORT: 'EXPORT'; +IMPORT: 'IMPORT'; +LOAD: 'LOAD'; +ROLE: 'ROLE'; +ROLES: 'ROLES'; +COMPACTIONS: 'COMPACTIONS'; +PRINCIPALS: 'PRINCIPALS'; +TRANSACTIONS: 'TRANSACTIONS'; +INDEX: 'INDEX'; +INDEXES: 'INDEXES'; +LOCKS: 'LOCKS'; +OPTION: 'OPTION'; +ANTI: 'ANTI'; +LOCAL: 'LOCAL'; +INPATH: 'INPATH'; +WATERMARK: 'WATERMARK'; +UNNEST: 'UNNEST'; +MATCH: 'MATCH'; +NEXT: 'NEXT'; +WITHIN: 'WITHIN'; +WS: 'WS'; +SYSTEM: 'SYSTEM'; +INCLUDING: 'INCLUDING'; +EXCLUDING: 'EXCLUDING'; +CONSTRAINTS: 'CONSTRAINTS'; +GENERATED: 'GENERATED'; +CATALOG: 'CATALOG'; +LANGUAGE: 'LANGUAGE'; +CATALOGS: 'CATALOGS'; +VIEWS: 'VIEWS'; +PRIMARY: 'PRIMARY'; +KEY: 'KEY'; +PERIOD: 'PERIOD'; +SYSTEM_TIME: 'SYSTEM_TIME'; + + +// DATA TYPE Keywords + +STRING: 'STRING'; +ARRAY: 'ARRAY'; +MAP: 'MAP'; +CHAR: 'CHAR'; +VARCHAR: 'VARCHAR'; +BINARY: 'BINARY'; +VARBINARY: 'VARBINARY'; +BYTES: 'BYTES'; +DECIMAL: 'DECIMAL'; +TINYINT: 'TINYINT'; +SMALLINT: 'SMALLINT'; +INT: 'INT'; +BIGINT: 'BIGINT'; +FLOAT: 'FLOAT'; +DOUBLE: 'DOUBLE'; +DATE: 'DATE'; +TIME: 'TIME'; +TIMESTAMP: 'TIMESTAMP'; +MULTISET: 'MULTISET'; +BOOLEAN: 'BOOLEAN'; +RAW: 'RAW'; +ROW: 'ROW'; +NULL: 'NULL'; +DATETIME: 'DATETIME'; // 数栈自定义类型 + + + +// Operators. Comparation + +EQUAL_SYMBOL: '='; +GREATER_SYMBOL: '>'; +LESS_SYMBOL: '<'; +EXCLAMATION_SYMBOL: '!'; + + +// Operators. Bit + +BIT_NOT_OP: '~'; +BIT_OR_OP: '|'; +BIT_AND_OP: '&'; +BIT_XOR_OP: '^'; + + +// Constructors symbols + +DOT: '.'; +LS_BRACKET: '['; +RS_BRACKET: ']'; +LR_BRACKET: '('; +RR_BRACKET: ')'; +COMMA: ','; +SEMICOLON: ';'; +AT_SIGN: '@'; +SINGLE_QUOTE_SYMB: '\''; +DOUBLE_QUOTE_SYMB: '"'; +REVERSE_QUOTE_SYMB: '`'; +COLON_SYMB: ':'; +ASTERISK_SIGN: '*'; +UNDERLINE_SIGN: '_'; +HYPNEN_SIGN: '-'; +ADD_SIGN: '+'; +PENCENT_SIGN: '%'; +DOUBLE_VERTICAL_SIGN: '||'; +DOUBLE_HYPNEN_SIGN: '--'; +SLASH_SIGN: '/'; +DOT_ID: '.' ID_LITERAL_FRAG; +PLUS_DOT_ID: (':' | '.') PLUS_ID_LITERAL; +STRING_LITERAL: DQUOTA_STRING | SQUOTA_STRING | BQUOTA_STRING; +DIG_LITERAL: DEC_DIGIT+; +REAL_LITERAL: (DEC_DIGIT+)? '.' DEC_DIGIT+ + | DEC_DIGIT+ '.' EXPONENT_NUM_PART + | (DEC_DIGIT+)? '.' (DEC_DIGIT+ EXPONENT_NUM_PART) + | DEC_DIGIT+ EXPONENT_NUM_PART; +BIT_STRING: BIT_STRING_L; +ID_LITERAL: ID_LITERAL_FRAG; +PLUS_ID_LITERAL: PLUS_ID_LITERAL_FRAG; + +fragment EXPONENT_NUM_PART: 'E' [-+]? DEC_DIGIT+; +fragment ID_LITERAL_FRAG: [A-Z_0-9a-z]*?[A-Z_a-z]+?[A-Z_0-9a-z]*; +fragment PLUS_ID_LITERAL_FRAG: [A-Z_0-9a-z*@#^$%&{}]*?[A-Z_a-z*@#^$%&{}]+?[A-Z_0-9a-z*@#^$%&{}]*; +fragment DEC_DIGIT: [0-9]; +fragment DEC_LETTER: [A-Za-z]; +fragment DQUOTA_STRING: '"' ( '\\'. | '""' | ~('"'| '\\') )* '"'; +fragment SQUOTA_STRING: '\'' ('\\'. | '\'\'' | ~('\'' | '\\'))* '\''; +fragment BIT_STRING_L: 'B' '\'' [01]+ '\''; +fragment BQUOTA_STRING: '`' ( '\\'. | '``' | ~('`'|'\\'))* '`'; \ No newline at end of file diff --git a/src/grammar/flinksql/FlinkSqlParser.g4 b/src/grammar/flinksql/FlinkSqlParser.g4 new file mode 100644 index 0000000..1a7e895 --- /dev/null +++ b/src/grammar/flinksql/FlinkSqlParser.g4 @@ -0,0 +1,1044 @@ +parser grammar FlinkSqlParser; + +options { tokenVocab=FlinkSqlLexer; } + +program: statement EOF; + +statement + : sqlStatements EOF + ; + +sqlStatements + : (sqlStatement SEMICOLON? | emptyStatement)* + ; + +sqlStatement + : ddlStatement | dmlStatement | describeStatement | explainStatement | useStatement | showStatememt + ; + +emptyStatement + : SEMICOLON + ; + +ddlStatement + : createTable | createDatabase | createView | createFunction | createCatalog + | alterTable | alterDatabase | alterFunction + | dropTable | dropDatabase | dropView | dropFunction + ; + +dmlStatement + : queryStatement | insertStatement + ; + +describeStatement + : DESCRIBE uid + ; + +explainStatement + : EXPLAIN identifier FOR dmlStatement + ; + +useStatement + : USE CATALOG? uid + ; + +showStatememt + : SHOW (CATALOGS | DATABASES | TABLES | FUNCTIONS | VIEWS) + ; + + +// Create statements + +createTable + : CREATE TABLE uid + LR_BRACKET + columnOptionDefinition (COMMA columnOptionDefinition)* + (COMMA watermarkDefinition)? + (COMMA tableConstraint)? + (COMMA selfDefinitionClause)? + RR_BRACKET + commentSpec? + partitionDefinition? + withOption + likeDefinition? + ; + +columnOptionDefinition + : columnName columnType lengthOneDimension? columnAlias? + ; + +columnName + : plusUid | expression + ; + +columnNameList + : columnName (',' columnName)* + ; + +columnType + : typeName=(CHAR | VARCHAR | STRING | BINARY | VARBINARY | BYTES + | DECIMAL | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE + | DATE | TIME | TIMESTAMP + | ARRAY | MAP | MULTISET | ROW + | BOOLEAN | RAW | NULL + | DATETIME) + ; + +lengthOneDimension + : '(' decimalLiteral ')' + ; + +commentSpec + : COMMENT STRING_LITERAL + ; + +watermarkDefinition + : WATERMARK FOR expression AS expression + ; + +tableConstraint + : (CONSTRAINT identifier)? PRIMARY KEY '(' columnNameList ')' + ; + +selfDefinitionClause // 数栈自定义语句 ‘PERIOD FOR SYSTEM_TIME’ + : PERIOD FOR SYSTEM_TIME + ; + +partitionDefinition + : PARTITIONED BY transformList + ; + +transformList + : '(' transform (',' transform)* ')' + ; + +transform + : qualifiedName #identityTransform + | transformName=identifier + '(' transformArgument (',' transformArgument)* ')' #applyTransform + ; + +transformArgument + : qualifiedName + | constant + ; + +likeDefinition + : LIKE identifier likeOption + ; + +likeOption + : (INCLUDING | EXCLUDING) (ALL | CONSTRAINTS) + | (INCLUDING | EXCLUDING) (GENERATED | OPTIONS) + ; + +createCatalog + : CREATE CATALOG uid withOption + ; + +createDatabase + : CREATE DATABASE ifNotExists? uid commentSpec? withOption + ; + +createView + : CREATE TEMPORARY? VIEW ifNotExists? uid columnNameList? commentSpec? AS queryStatement + ; + +createFunction + : CREATE (TEMPORARY|TEMPORARY SYSTEM) FUNCTION ifNotExists? uid AS identifier (LANGUAGE identifier)? + ; + +// Alter statements + +alterTable + : ALTER TABLE uid (renameDefinition | setKeyValueDefinition) + ; + +renameDefinition + : RENAME TO uid + ; + +setKeyValueDefinition + : SET tablePropertyList + ; + +alterDatabase + : ALTER DATABASE uid setKeyValueDefinition + ; + +alterFunction + : ALTER (TEMPORARY|TEMPORARY SYSTEM) FUNCTION ifExists? uid AS identifier (LANGUAGE identifier)? + ; + + +// Drop statements + +dropTable + : DROP TABLE ifExists? uid + ; + +dropDatabase + : DROP DATABASE ifExists? uid dropType=(RESTRICT | CASCADE)? + ; + +dropView + : DROP TEMPORARY? VIEW ifExists? uid + ; + +dropFunction + : DROP (TEMPORARY|TEMPORARY SYSTEM)? FUNCTION ifExists? uid + ; + + +// Insert statements + +insertStatement + : INSERT (INTO | OVERWRITE) uid + ( + insertPartitionDefinition? queryStatement + | valuesDefinition + ) + ; + +insertPartitionDefinition + : PARTITION tablePropertyList + ; + +valuesDefinition + : VALUES valuesRowDefinition (COMMA valuesRowDefinition)* + ; + +valuesRowDefinition + : LR_BRACKET + constant (COMMA constant)* + RR_BRACKET + ; + + +// Select statements + +queryStatement + : valuesCaluse + | '(' queryStatement ')' + | left=queryStatement operator=(INTERSECT | UNION | EXCEPT) ALL? right=queryStatement orderByCaluse? limitClause? + | selectClause orderByCaluse? limitClause? + | selectStatement orderByCaluse? limitClause? + ; + +valuesCaluse + : VALUES expression (COMMA expression )* + ; + +selectStatement + : selectClause fromClause whereClause? groupByClause? havingClause? windowClause? + ; + +selectClause + : SELECT setQuantifier? (ASTERISK_SIGN | projectItemDefinition (COMMA projectItemDefinition)*) + ; + +projectItemDefinition + : expression (AS? expression)? + ; + +fromClause + : FROM tableExpression + ; + +tableExpression + : tableReference (COMMA tableReference)* + | tableExpression NATURAL? (LEFT | RIGHT | FULL | INNER)? JOIN tableExpression joinCondition? + ; + +tableReference + : tablePrimary tableAlias? + ; + +tablePrimary + : TABLE? expression + | LATERAL TABLE LR_BRACKET uid LR_BRACKET expression (COMMA expression)* RR_BRACKET RR_BRACKET + | UNNEST LR_BRACKET expression RR_BRACKET + ; + +joinCondition + : ON booleanExpression + | USING LR_BRACKET uid (COMMA uid)* RR_BRACKET + ; + +whereClause + : WHERE booleanExpression + ; + +groupByClause + : GROUP BY groupItemDefinition (COMMA groupItemDefinition)* + ; + +groupItemDefinition + : expression + | LR_BRACKET RR_BRACKET + | LR_BRACKET expression (COMMA expression)* RR_BRACKET + | CUBE LR_BRACKET expression (COMMA expression)* RR_BRACKET + | ROLLUP LR_BRACKET expression (COMMA expression)* RR_BRACKET + | GROUPING SETS LR_BRACKET groupItemDefinition (COMMA groupItemDefinition)* RR_BRACKET + ; + +havingClause + : HAVING booleanExpression + ; + +orderByCaluse + : ORDER BY orderItemDefition (COMMA orderItemDefition)* + ; + +orderItemDefition + : expression (ASC | DESC)? + ; + +limitClause + : LIMIT (ALL | limit=expression) + ; + +windowClause + : WINDOW namedWindow (',' namedWindow)* + ; + +namedWindow + : name=errorCapturingIdentifier AS windowSpec + ; + +windowSpec + : name=errorCapturingIdentifier? + '(' + (ORDER BY sortItem (',' sortItem)*)? + (PARTITION BY expression (',' expression)*)? + windowFrame? + ')' + ; + +sortItem + : expression ordering=(ASC | DESC)? (NULLS nullOrder=(LAST | FIRST))? + ; + +windowFrame + : RANGE frameBound + | ROWS frameBound + ; + +frameBound + : expression PRECEDING + ; + + +// expression + +expression + : booleanExpression + ; + +booleanExpression + : NOT booleanExpression #logicalNot + | EXISTS '(' queryStatement ')' #exists + | valueExpression predicate? #predicated + | left=booleanExpression operator=AND right=booleanExpression #logicalBinary + | left=booleanExpression operator=OR right=booleanExpression #logicalBinary + ; + +predicate + : NOT? kind=BETWEEN lower=valueExpression AND upper=valueExpression + | NOT? kind=IN '(' expression (',' expression)* ')' + | NOT? kind=IN '(' queryStatement ')' + | kind=EXISTS '(' queryStatement ')' + | NOT? kind=RLIKE pattern=valueExpression + | NOT? kind=LIKE quantifier=(ANY | ALL) ('('')' | '(' expression (',' expression)* ')') + | NOT? kind=LIKE pattern=valueExpression + | IS NOT? kind=NULL + | IS NOT? kind=(TRUE | FALSE) + | IS NOT? kind=DISTINCT FROM right=valueExpression + ; + +valueExpression + : primaryExpression #valueExpressionDefault + | operator=('-' | '+' | '~') valueExpression #arithmeticUnary + | left=valueExpression operator=('*' | '/' | '%' | DIV) right=valueExpression #arithmeticBinary + | left=valueExpression operator=('+' | '-' | DOUBLE_VERTICAL_SIGN) right=valueExpression #arithmeticBinary + | left=valueExpression operator='&' right=valueExpression #arithmeticBinary + | left=valueExpression operator='^' right=valueExpression #arithmeticBinary + | left=valueExpression operator='|' right=valueExpression #arithmeticBinary + | left=valueExpression comparisonOperator right=valueExpression #comparison + ; + +primaryExpression + : CASE whenClause+ (ELSE elseExpression=expression)? END #searchedCase + | CASE value=expression whenClause+ (ELSE elseExpression=expression)? END #simpleCase + | CAST '(' expression AS columnType ')' #cast + // | STRUCT '(' (argument+=namedExpression (',' argument+=namedExpression)*)? ')' #struct + | FIRST '(' expression (IGNORE NULLS)? ')' #first + | LAST '(' expression (IGNORE NULLS)? ')' #last + | POSITION '(' substr=valueExpression IN str=valueExpression ')' #position + | constant #constantDefault + | '*' #star + | uid '.' '*' #star + // | '(' namedExpression (',' namedExpression)+ ')' #rowConstructor + | '(' queryStatement ')' #subqueryExpression + | functionName '(' (setQuantifier? expression (',' expression)*)? ')' #functionCall + // | identifier '->' expression #lambda + // | '(' identifier (',' identifier)+ ')' '->' expression #lambda + | value=primaryExpression LS_BRACKET index=valueExpression RS_BRACKET #subscript + | identifier #columnReference + | dereferenceDefinition #dereference + | '(' expression ')' #parenthesizedExpression + // | EXTRACT '(' field=identifier FROM source=valueExpression ')' #extract + // | (SUBSTR | SUBSTRING) '(' str=valueExpression (FROM | ',') pos=valueExpression + // ((FOR | ',') len=valueExpression)? ')' #substring + // | TRIM '(' trimOption=(BOTH | LEADING | TRAILING)? (trimStr=valueExpression)? + // FROM srcStr=valueExpression ')' #trim + // | OVERLAY '(' input=valueExpression PLACING replace=valueExpression + // FROM position=valueExpression (FOR length=valueExpression)? ')' #overlay + ; + +functionName + : uid + ; + +dereferenceDefinition + : uid + ; + + +// base common + +qualifiedName + : identifier | dereferenceDefinition + ; + +interval + : INTERVAL (errorCapturingMultiUnitsInterval | errorCapturingUnitToUnitInterval)? + ; + +errorCapturingMultiUnitsInterval + : multiUnitsInterval unitToUnitInterval? + ; + +multiUnitsInterval + : (intervalValue identifier)+ + ; + +errorCapturingUnitToUnitInterval + : body=unitToUnitInterval (error1=multiUnitsInterval | error2=unitToUnitInterval)? + ; + +unitToUnitInterval + : value=intervalValue from=identifier TO to=identifier + ; + +intervalValue + : ('+' | '-')? (DIG_LITERAL | REAL_LITERAL) + | STRING_LITERAL + ; + +columnAlias + : AS? strictIdentifier identifierList? + ; + +tableAlias + : AS? strictIdentifier identifierList? + ; + +errorCapturingIdentifier + : identifier errorCapturingIdentifierExtra + ; + +errorCapturingIdentifierExtra + : (MINUS identifier)+ #errorIdent + | #realIdent + ; + +identifierList + : '(' identifierSeq ')' + ; + +identifierSeq + : identifier (COMMA identifier)* + ; + +identifier + : strictIdentifier + | strictNonReserved + ; + +strictIdentifier + : unquotedIdentifier #unquotedIdentifierAlternative + | quotedIdentifier #quotedIdentifierAlternative + | ansiNonReserved #ansiNonReservedKeywords + | nonReserved #nonReservedKeywords + ; + +unquotedIdentifier + : DIG_LITERAL | ID_LITERAL + ; + +quotedIdentifier + : STRING_LITERAL + ; + +whenClause + : WHEN condition=expression THEN result=expression + ; + +uidList + : uid (',' uid)* + ; + +uid + : ID_LITERAL DOT_ID*? + ; + +plusUid // 匹配 xxx.$xx xx:xxxx 等字符 + : (ID_LITERAL | PLUS_ID_LITERAL) (DOT_ID | PLUS_DOT_ID)*? + ; + +withOption + : WITH tablePropertyList + ; + +ifNotExists + : IF NOT EXISTS; + +ifExists + : IF EXISTS; + +tablePropertyList + : '(' tableProperty (',' tableProperty)* ')' + ; + +tableProperty + : key=tablePropertyKey (EQUAL_SYMBOL? value=tablePropertyValue)? + ; + +tablePropertyKey + : identifier | dereferenceDefinition + | STRING_LITERAL + ; + +tablePropertyValue + : DIG_LITERAL + | REAL_LITERAL + | booleanLiteral + | STRING_LITERAL + ; + +logicalOperator + : AND | '&' '&' | OR | '|' '|' + ; + +comparisonOperator + : '=' | '>' | '<' | '<' '=' | '>' '=' + | '<' '>' | '!' '=' | '<' '=' '>' + ; +bitOperator + : '<' '<' | '>' '>' | '&' | '^' | '|' + ; + +mathOperator + : '*' | SLASH_SIGN | PENCENT_SIGN | DIV | '+' | '-' | DOUBLE_HYPNEN_SIGN + ; + +unaryOperator + : '!' | '~' | ADD_SIGN | '-' | NOT + ; + +fullColumnName + : uid + ; + +constant + : stringLiteral // 引号包含的字符串 + | decimalLiteral // 整数 + | interval // INTERVAL keywords + | HYPNEN_SIGN decimalLiteral // 负整数 + | booleanLiteral // 布尔值 + | REAL_LITERAL // 小数 + | BIT_STRING + | NOT? NULL // 空 | 非空 + ; + +stringLiteral + : STRING_LITERAL + ; + +decimalLiteral + : DIG_LITERAL + ; + +booleanLiteral + : TRUE | FALSE; + +setQuantifier + : DISTINCT + | ALL + ; + +ansiNonReserved + : ADD + | AFTER + | ALTER + | ANALYZE + | ANTI + | ARCHIVE + | ARRAY + | ASC + | AT + | BETWEEN + | BIGINT + | BINARY + | BOOLEAN + | BUCKET + | BUCKETS + | BY + | BYTES + | CACHE + | CASCADE + | CATALOG + | CATALOGS + | CHANGE + | CHAR + | CLEAR + | CLUSTER + | CLUSTERED + | CODEGEN + | COLLECTION + | COLUMNS + | COMMENT + | COMMIT + | COMPACT + | COMPACTIONS + | COMPUTE + | CONCATENATE + | CONSTRAINTS + | COST + | CUBE + | CURRENT + | DATA + | DATABASE + | DATABASES + | DATE + | DATETIME + | DBPROPERTIES + | DECIMAL + | DEFINED + | DELETE + | DELIMITED + | DESC + | DESCRIBE + | DFS + | DIRECTORIES + | DIRECTORY + | DISTRIBUTE + | DIV + | DOUBLE + | DROP + | ESCAPED + | EXCHANGE + | EXCLUDING + | EXISTS + | EXPLAIN + | EXPORT + | EXTENDED + | EXTERNAL + | EXTRACT + | FIELDS + | FILEFORMAT + | FIRST + | FLOAT + | FOLLOWING + | FORMAT + | FORMATTED + | FUNCTION + | FUNCTIONS + | GENERATED + | GLOBAL + | GROUPING + | IF + | IGNORE + | IMPORT + | INCLUDING + | INDEX + | INDEXES + | INPATH + | INPUTFORMAT + | INSERT + | INT + | INTERVAL + | ITEMS + | KEY + | KEYS + | LANGUAGE + | LAST + | LATERAL + | LAZY + | LIKE + | LIMIT + | LINES + | LIST + | LOAD + | LOCAL + | LOCATION + | LOCK + | LOCKS + | LOGICAL + | MACRO + | MAP + | MATCH + | MINUS + | MSCK + | MULTISET + | NEXT + | NO + | NULL + | NULLS + | OF + | OPTION + | OPTIONS + | OUT + | OUTPUTFORMAT + | OVER + | OVERWRITE + | PARTITION + | PARTITIONED + | PARTITIONS + | PERCENTLIT + | PERIOD + | PIVOT + | POSITION + | PRECEDING + | PRINCIPALS + | PURGE + | RANGE + | RAW + | RECORDREADER + | RECORDWRITER + | RECOVER + | REDUCE + | REFRESH + | RENAME + | REPAIR + | REPLACE + | RESET + | RESTRICT + | REVOKE + | RLIKE + | ROLE + | ROLES + | ROLLBACK + | ROLLUP + | ROW + | ROWS + | SEMI + | SEPARATED + | SERDE + | SERDEPROPERTIES + | SET + | SETMINUS + | SETS + | SHOW + | SKEWED + | SMALLINT + | SORT + | SORTED + | START + | STATISTICS + | STORED + | STRATIFY + | STRING + | STRUCT + | SYSTEM + | SYSTEM_TIME + | TABLES + | TABLESAMPLE + | TBLPROPERTIES + | TEMPORARY + | TERMINATED + | TIME + | TIMESTAMP + | TINYINT + | TOUCH + | TRANSACTION + | TRANSACTIONS + | TRANSFORM + | TRUE + | TRUNCATE + | UNARCHIVE + | UNBOUNDED + | UNCACHE + | UNLOCK + | UNSET + | UNNEST + | USE + | VALUES + | VARBINARY + | VARCHAR + | VIEW + | VIEWS + | WATERMARK + | WINDOW + | WITHIN + | WS + ; + +strictNonReserved + : ANTI + | CROSS + | EXCEPT + | FULL + | INNER + | INTERSECT + | JOIN + | LEFT + | NATURAL + | ON + | RIGHT + | SEMI + | SETMINUS + | UNION + | USING + ; + +nonReserved + : ADD + | AFTER + | ALL + | ALTER + | ANALYZE + | AND + | ANY + | COLUMNS + | ARRAY + | AS + | ASC + | AT + | BETWEEN + | BIGINT + | BINARY + | BOOLEAN + | BOTH + | BUCKET + | BUCKETS + | BY + | BYTES + | CACHE + | CASCADE + | CASE + | CAST + | CATALOG + | CATALOGS + | CHANGE + | CHAR + | CLEAR + | CLUSTER + | CLUSTERED + | CODEGEN + | COLLECTION + | COLUMN + | COLUMNS + | COMMENT + | COMMIT + | COMPACT + | COMPACTIONS + | COMPUTE + | CONCATENATE + | CONSTRAINT + | CONSTRAINTS + | COST + | CREATE + | CUBE + | CURRENT + | DATA + | DATABASE + | DATABASES + | DATE + | DATETIME + | DBPROPERTIES + | DECIMAL + | DEFINED + | DELETE + | DELIMITED + | DESC + | DESCRIBE + | DFS + | DIRECTORIES + | DIRECTORY + | DISTINCT + | DISTRIBUTE + | DIV + | DOUBLE + | DROP + | ELSE + | END + | ESCAPED + | EXCHANGE + | EXCLUDING + | EXISTS + | EXPLAIN + | EXPORT + | EXTENDED + | EXTERNAL + | EXTRACT + | FALSE + | FIELDS + | FILEFORMAT + | FIRST + | FLOAT + | FOLLOWING + | FOR + | FORMAT + | FORMATTED + | FROM + | FUNCTION + | FUNCTIONS + | GENERATED + | GLOBAL + | GRANT + | GROUP + | GROUPING + | HAVING + | IF + | IGNORE + | IMPORT + | IN + | INCLUDING + | INDEX + | INDEXES + | INPATH + | INPUTFORMAT + | INSERT + | INT + | INTERVAL + | INTO + | IS + | ITEMS + | KEY + | KEYS + | LANGUAGE + | LAST + | LATERAL + | LAZY + | LEADING + | LIKE + | LIMIT + | LINES + | LIST + | LOAD + | LOCAL + | LOCATION + | LOCK + | LOCKS + | LOGICAL + | MACRO + | MAP + | MATCH + | MINUS + | MSCK + | MULTISET + | NEXT + | NO + | NOT + | NULL + | NULLS + | OF + | OPTION + | OPTIONS + | OR + | ORDER + | OUT + | OUTER + | OUTPUTFORMAT + | OVER + | OVERWRITE + | PARTITION + | PARTITIONED + | PARTITIONS + | PERCENTLIT + | PERIOD + | PIVOT + | POSITION + | PRECEDING + | PRIMARY + | PRINCIPALS + | PURGE + | RANGE + | RAW + | RECORDREADER + | RECORDWRITER + | RECOVER + | REDUCE + | REFRESH + | RENAME + | REPAIR + | REPLACE + | RESET + | RESTRICT + | REVOKE + | RLIKE + | ROLE + | ROLES + | ROLLBACK + | ROLLUP + | ROW + | ROWS + | SELECT + | SEPARATED + | SERDE + | SERDEPROPERTIES + | SET + | SETS + | SHOW + | SKEWED + | SMALLINT + | SORT + | SORTED + | START + | STATISTICS + | STORED + | STRATIFY + | STRING + | STRUCT + | SYSTEM + | SYSTEM_TIME + | TABLE + | TABLES + | TABLESAMPLE + | TBLPROPERTIES + | TEMPORARY + | TERMINATED + | THEN + | TIME + | TIMESTAMP + | TINYINT + | TO + | TOUCH + | TRAILING + | TRANSACTION + | TRANSACTIONS + | TRANSFORM + | TRUE + | TRUNCATE + | UNARCHIVE + | UNBOUNDED + | UNCACHE + | UNLOCK + | UNSET + | UNNEST + | USE + | VALUES + | VARBINARY + | VARCHAR + | VIEW + | VIEWS + | WATERMARK + | WHEN + | WHERE + | WINDOW + | WITH + | WITHIN + | WS + ; diff --git a/src/grammar/hive/HiveSql.g4 b/src/grammar/hive/HiveSql.g4 index 65dbba0..d01dfc4 100644 --- a/src/grammar/hive/HiveSql.g4 +++ b/src/grammar/hive/HiveSql.g4 @@ -1,11 +1,13 @@ /** - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with + (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, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -13,36 +15,39 @@ limitations under the License. */ -// HPL/SQL Procedural SQL Extension Grammar -grammar HiveSql; +parser grammar HiveSql; options { tokenVocab=HiveSqlLexer; } -program: block EOF; +@parser::members { +this._input = input; +} + +program : block EOF; block : ((begin_end_block | stmt) T_GO?)+ ; // Multiple consecutive blocks/statements begin_end_block : declare_block? T_BEGIN block exception_block? block_end ; - + single_block_stmt : // Single BEGIN END block (but nested blocks are possible) or single statement T_BEGIN block exception_block? block_end | stmt T_SEMICOLON? ; block_end : - {!this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION")}? T_END + {!this._input.LT(2).text.toUpperCase() === "TRANSACTION"}? T_END ; - + proc_block : begin_end_block | stmt+ T_GO? ; -stmt : +stmt : assignment_stmt | allocate_cursor_stmt | alter_table_stmt @@ -69,12 +74,12 @@ stmt : | describe_stmt | drop_stmt | end_transaction_stmt - | exec_stmt + | exec_stmt | exit_stmt | fetch_stmt | for_cursor_stmt | for_range_stmt - | if_stmt + | if_stmt | include_stmt | insert_stmt | insert_directory_stmt @@ -98,66 +103,66 @@ stmt : | truncate_stmt | values_into_stmt | while_stmt - | label - | hive + | label + | hive | host | null_stmt - | expr_stmt - | semicolon_stmt // Placed here to allow null statements ;;... + | expr_stmt + | semicolon_stmt // Placed here to allow null statements ;;... ; - + semicolon_stmt : T_SEMICOLON - | '@' | '#' | '/' + | T_CALLS | T_SHARP | T_DIV ; exception_block : // Exception block T_EXCEPTION exception_block_item+ ; -exception_block_item : - T_WHEN L_ID T_THEN block ~(T_WHEN | T_END) +exception_block_item : + T_WHEN L_ID T_THEN block ~(T_WHEN | T_END) ; - + null_stmt : // NULL statement (no operation) T_NULL ; expr_stmt : // Standalone expression - {!this._input.LT(1).getText().equalsIgnoreCase("GO")}? expr + {this._input.LT(1).text.toUpperCase() !== "GO"}? expr ; assignment_stmt : // Assignment statement T_SET set_session_option - | T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* + | T_SET? assignment_stmt_item (T_COMMA assignment_stmt_item)* ; -assignment_stmt_item : +assignment_stmt_item : assignment_stmt_single_item | assignment_stmt_multiple_item | assignment_stmt_select_item ; -assignment_stmt_single_item : +assignment_stmt_single_item : ident T_COLON? T_EQUAL expr | T_OPEN_P ident T_CLOSE_P T_COLON? T_EQUAL expr ; -assignment_stmt_multiple_item : +assignment_stmt_multiple_item : T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_COLON? T_EQUAL T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P ; -assignment_stmt_select_item : +assignment_stmt_select_item : (ident | (T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P)) T_COLON? T_EQUAL T_OPEN_P select_stmt T_CLOSE_P ; - + allocate_cursor_stmt: T_ALLOCATE ident T_CURSOR T_FOR ((T_RESULT T_SET) | T_PROCEDURE) ident ; - -associate_locator_stmt : + +associate_locator_stmt : T_ASSOCIATE (T_RESULT T_SET)? (T_LOCATOR | T_LOCATORS) T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_WITH T_PROCEDURE ident - ; + ; begin_transaction_stmt : T_BEGIN T_TRANSACTION @@ -166,11 +171,11 @@ begin_transaction_stmt : break_stmt : T_BREAK ; - + call_stmt : T_CALL ident (T_OPEN_P expr_func_params? T_CLOSE_P | expr_func_params)? ; - + declare_stmt : // Declaration statement T_DECLARE declare_stmt_item (T_COMMA declare_stmt_item)* ; @@ -179,68 +184,68 @@ declare_block : // Declaration block T_DECLARE declare_stmt_item T_SEMICOLON (declare_stmt_item T_SEMICOLON)* ; -declare_block_inplace : +declare_block_inplace : declare_stmt_item T_SEMICOLON (declare_stmt_item T_SEMICOLON)* ; - + declare_stmt_item : declare_cursor_item - | declare_condition_item + | declare_condition_item | declare_handler_item - | declare_var_item + | declare_var_item | declare_temporary_table_item ; declare_var_item : - ident (T_COMMA ident)* T_AS? dtype dtype_len? dtype_attr* dtype_default? - | ident T_CONSTANT T_AS? dtype dtype_len? dtype_default + ident (T_COMMA ident)* T_AS? dtype dtype_len? dtype_attr* dtype_default? + | ident T_CONSTANT T_AS? dtype dtype_len? dtype_default ; -declare_condition_item : // Condition declaration +declare_condition_item : // Condition declaration ident T_CONDITION ; - -declare_cursor_item : // Cursor declaration + +declare_cursor_item : // Cursor declaration (T_CURSOR ident | ident T_CURSOR) (cursor_with_return | cursor_without_return)? (T_IS | T_AS | T_FOR) (select_stmt | expr ) ; - + cursor_with_return : T_WITH T_RETURN T_ONLY? (T_TO (T_CALLER | T_CLIENT))? ; - + cursor_without_return : T_WITHOUT T_RETURN ; -declare_handler_item : // Condition handler declaration +declare_handler_item : // Condition handler declaration (T_CONTINUE | T_EXIT) T_HANDLER T_FOR (T_SQLEXCEPTION | T_SQLWARNING | T_NOT T_FOUND | ident) single_block_stmt ; - + declare_temporary_table_item : // DECLARE TEMPORARY TABLE statement T_GLOBAL? T_TEMPORARY T_TABLE ident create_table_preoptions? create_table_definition ; - + create_table_stmt : - T_CREATE T_TABLE (T_IF T_NOT T_EXISTS)? table_name create_table_preoptions? create_table_definition + T_CREATE T_TABLE (T_IF T_NOT T_EXISTS)? table_name create_table_preoptions? create_table_definition ; - + create_local_temp_table_stmt : T_CREATE (T_LOCAL T_TEMPORARY | (T_SET | T_MULTISET)? T_VOLATILE) T_TABLE ident create_table_preoptions? create_table_definition ; - + create_table_definition : - (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P | T_LIKE table_name) create_table_options? + (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P) create_table_options? ; - -create_table_columns : + +create_table_columns : create_table_columns_item (T_COMMA create_table_columns_item)* ; - + create_table_columns_item : - column_name dtype dtype_len? dtype_attr* create_table_column_inline_cons* + column_name dtype dtype_len? dtype_attr* create_table_column_inline_cons* | (T_CONSTRAINT ident)? create_table_column_cons ; - + column_name : ident ; @@ -255,12 +260,12 @@ create_table_column_inline_cons : | T_AUTO_INCREMENT | T_ENABLE ; - + create_table_column_cons : T_PRIMARY T_KEY T_CLUSTERED? T_OPEN_P ident (T_ASC | T_DESC)? (T_COMMA ident (T_ASC | T_DESC)?)* T_CLOSE_P T_ENABLE? index_storage_clause? - | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* + | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* ; - + create_table_fk_action : T_ON (T_UPDATE | T_DELETE) (T_NO T_ACTION | T_RESTRICT | T_SET T_NULL | T_SET T_DEFAULT | T_CASCADE) ; @@ -272,30 +277,30 @@ create_table_preoptions : create_table_preoptions_item : T_COMMA create_table_preoptions_td_item | create_table_options_hive_item - ; - + ; + create_table_preoptions_td_item : T_NO? (T_LOG | T_FALLBACK) ; - + create_table_options : - create_table_options_item+ + create_table_options_item+ ; - + create_table_options_item : - T_ON T_COMMIT (T_DELETE | T_PRESERVE) T_ROWS + T_ON T_COMMIT (T_DELETE | T_PRESERVE) T_ROWS | create_table_options_ora_item - | create_table_options_db2_item + | create_table_options_db2_item | create_table_options_td_item - | create_table_options_hive_item + | create_table_options_hive_item | create_table_options_mssql_item - | create_table_options_mysql_item + | create_table_options_mysql_item ; create_table_options_ora_item : T_SEGMENT T_CREATION (T_IMMEDIATE | T_DEFERRED) - | (T_PCTFREE | T_PCTUSED | T_INITRANS | T_MAXTRANS) L_INT - | T_NOCOMPRESS + | (T_PCTFREE | T_PCTUSED | T_INITRANS | T_MAXTRANS) L_INT + | T_NOCOMPRESS | (T_LOGGING | T_NOLOGGING) | T_STORAGE T_OPEN_P (ident | L_INT)+ T_CLOSE_P | T_TABLESPACE ident @@ -305,26 +310,26 @@ create_table_options_db2_item : T_INDEX? T_IN ident | T_WITH T_REPLACE | T_DISTRIBUTE T_BY T_HASH T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P - | T_NOT? T_LOGGED + | T_NOT? T_LOGGED | T_COMPRESS (T_YES | T_NO) | T_DEFINITION T_ONLY | T_WITH T_RESTRICT T_ON T_DROP ; - + create_table_options_td_item : T_UNIQUE? T_PRIMARY T_INDEX T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P | T_WITH T_DATA ; - + create_table_options_hive_item : create_table_hive_row_format | T_STORED T_AS ident ; - + create_table_hive_row_format : T_ROW T_FORMAT T_DELIMITED create_table_hive_row_format_fields* ; - + create_table_hive_row_format_fields : T_FIELDS T_TERMINATED T_BY expr (T_ESCAPED T_BY expr)? | T_COLLECTION T_ITEMS T_TERMINATED T_BY expr @@ -332,7 +337,7 @@ create_table_hive_row_format_fields : | T_LINES T_TERMINATED T_BY expr | T_NULL T_DEFINED T_AS expr ; - + create_table_options_mssql_item : T_ON ident | T_TEXTIMAGE_ON ident @@ -344,28 +349,27 @@ create_table_options_mysql_item : | T_DEFAULT? (T_CHARACTER T_SET | T_CHARSET) T_EQUAL? expr | T_ENGINE T_EQUAL? expr ; - + alter_table_stmt : T_ALTER T_TABLE table_name alter_table_item ; - + alter_table_item : alter_table_add_constraint ; - + alter_table_add_constraint : T_ADD2 (T_CONSTRAINT ident)? alter_table_add_constraint_item ; - + alter_table_add_constraint_item : T_PRIMARY T_KEY T_CLUSTERED? T_OPEN_P ident (T_ASC | T_DESC)? (T_COMMA ident (T_ASC | T_DESC)?)* T_CLOSE_P T_ENABLE? index_storage_clause? | T_FOREIGN T_KEY T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P T_REFERENCES table_name T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P create_table_fk_action* | T_DEFAULT expr T_FOR ident ; - + dtype : // Data types T_CHAR - | T_CHARACTER | T_BIGINT | T_BINARY_DOUBLE | T_BINARY_FLOAT @@ -401,59 +405,59 @@ dtype : // Data types | T_VARCHAR | T_VARCHAR2 | T_XML - | ident ('%' (T_TYPE | T_ROWTYPE))? // User-defined or derived data type + | ident (T_PRECENT (T_TYPE | T_ROWTYPE))? // User-defined or derived data type ; - + dtype_len : // Data type length or size specification T_OPEN_P (L_INT | T_MAX) (T_CHAR | T_BYTE)? (T_COMMA L_INT)? T_CLOSE_P ; - + dtype_attr : T_NOT? T_NULL | T_CHARACTER T_SET ident | T_NOT? (T_CASESPECIFIC | T_CS) ; -dtype_default : +dtype_default : T_COLON? T_EQUAL expr | T_WITH? T_DEFAULT expr? ; - + create_database_stmt : - T_CREATE (T_DATABASE | T_SCHEMA) (T_IF T_NOT T_EXISTS)? expr create_database_option* + T_CREATE (T_DATABASE | T_SCHEMA) (T_IF T_NOT T_EXISTS)? expr create_database_option* ; create_database_option : T_COMMENT expr | T_LOCATION expr ; - -create_function_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_FUNCTION ident create_routine_params? create_function_return (T_AS | T_IS)? declare_block_inplace? single_block_stmt + +create_function_stmt : + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_FUNCTION ident create_routine_params? create_function_return (T_AS | T_IS)? declare_block_inplace? single_block_stmt ; - + create_function_return : (T_RETURN | T_RETURNS) dtype dtype_len? ; - + create_package_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE ident (T_AS | T_IS) package_spec T_END (ident T_SEMICOLON)? + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE ident (T_AS | T_IS) package_spec T_END (ident T_SEMICOLON)? ; - + package_spec : package_spec_item T_SEMICOLON (package_spec_item T_SEMICOLON)* ; package_spec_item : declare_stmt_item - | T_FUNCTION ident create_routine_params? create_function_return - | (T_PROCEDURE | T_PROC) ident create_routine_params? + | T_FUNCTION ident create_routine_params? create_function_return + | (T_PROCEDURE | T_PROC) ident create_routine_params? ; create_package_body_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE T_BODY ident (T_AS | T_IS) package_body T_END (ident T_SEMICOLON)? + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? T_PACKAGE T_BODY ident (T_AS | T_IS) package_body T_END (ident T_SEMICOLON)? ; - + package_body : package_body_item T_SEMICOLON (package_body_item T_SEMICOLON)* ; @@ -461,37 +465,37 @@ package_body : package_body_item : declare_stmt_item | create_function_stmt - | create_procedure_stmt + | create_procedure_stmt ; - -create_procedure_stmt : - (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? (T_PROCEDURE | T_PROC) ident create_routine_params? create_routine_options? (T_AS | T_IS)? declare_block_inplace? label? proc_block (ident T_SEMICOLON)? + +create_procedure_stmt : + (T_ALTER | T_CREATE (T_OR T_REPLACE)? | T_REPLACE)? (T_PROCEDURE | T_PROC) ident create_routine_params? create_routine_options? (T_AS | T_IS)? declare_block_inplace? label? proc_block (ident T_SEMICOLON)? ; create_routine_params : T_OPEN_P T_CLOSE_P | T_OPEN_P create_routine_param_item (T_COMMA create_routine_param_item)* T_CLOSE_P - | {!this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) - }? - create_routine_param_item (T_COMMA create_routine_param_item)* + | {this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") + }? + create_routine_param_item (T_COMMA create_routine_param_item)* ; - + create_routine_param_item : - (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? ident dtype dtype_len? dtype_attr* dtype_default? - | ident (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? dtype dtype_len? dtype_attr* dtype_default? + (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? ident dtype dtype_len? dtype_attr* dtype_default? + | ident (T_IN | T_OUT | T_INOUT | T_IN T_OUT)? dtype dtype_len? dtype_attr* dtype_default? ; - + create_routine_options : create_routine_option+ ; create_routine_option : - T_LANGUAGE T_SQL + T_LANGUAGE T_SQL | T_SQL T_SECURITY (T_CREATOR | T_DEFINER | T_INVOKER | T_OWNER) | T_DYNAMIC? T_RESULT T_SETS L_INT ; - + drop_stmt : // DROP statement T_DROP T_TABLE (T_IF T_EXISTS)? table_name | T_DROP (T_DATABASE | T_SCHEMA) (T_IF T_EXISTS)? expr @@ -501,26 +505,26 @@ end_transaction_stmt : T_END T_TRANSACTION ; -exec_stmt : // EXEC, EXECUTE IMMEDIATE statement +exec_stmt : // EXEC, EXECUTE IMMEDIATE statement (T_EXEC | T_EXECUTE) T_IMMEDIATE? expr (T_OPEN_P expr_func_params T_CLOSE_P | expr_func_params)? (T_INTO L_ID (T_COMMA L_ID)*)? using_clause? ; -if_stmt : // IF statement +if_stmt : // IF statement if_plsql_stmt - | if_tsql_stmt + | if_tsql_stmt | if_bteq_stmt ; -if_plsql_stmt : - T_IF bool_expr T_THEN block elseif_block* else_block? T_END T_IF +if_plsql_stmt : + T_IF bool_expr T_THEN block elseif_block* else_block? T_END T_IF ; -if_tsql_stmt : - T_IF bool_expr single_block_stmt (T_ELSE single_block_stmt)? +if_tsql_stmt : + T_IF bool_expr single_block_stmt (T_ELSE single_block_stmt)? ; - + if_bteq_stmt : - '.' T_IF bool_expr T_THEN single_block_stmt + T_DOT T_IF bool_expr T_THEN single_block_stmt ; elseif_block : @@ -529,20 +533,20 @@ elseif_block : else_block : T_ELSE block - ; - + ; + include_stmt : // INCLUDE statement T_INCLUDE (file_name | expr) - ; - + ; + insert_stmt : // INSERT statement T_INSERT (T_OVERWRITE T_TABLE | T_INTO T_TABLE?) table_name insert_stmt_cols? (select_stmt | insert_stmt_rows) ; - + insert_stmt_cols : - T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P + T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - + insert_stmt_rows : T_VALUES insert_stmt_row (T_COMMA insert_stmt_row)* ; @@ -554,20 +558,20 @@ insert_stmt_row: insert_directory_stmt : T_INSERT T_OVERWRITE T_LOCAL? T_DIRECTORY expr_file expr_select ; - + exit_stmt : T_EXIT L_ID? (T_WHEN bool_expr)? ; - + get_diag_stmt : // GET DIAGNOSTICS statement T_GET T_DIAGNOSTICS get_diag_stmt_item ; - + get_diag_stmt_item : get_diag_stmt_exception_item | get_diag_stmt_rowcount_item ; - + get_diag_stmt_exception_item : T_EXCEPTION L_INT ident T_EQUAL T_MESSAGE_TEXT ; @@ -575,23 +579,23 @@ get_diag_stmt_exception_item : get_diag_stmt_rowcount_item : ident T_EQUAL T_ROW_COUNT ; - -grant_stmt : + +grant_stmt : T_GRANT grant_stmt_item (T_COMMA grant_stmt_item)* T_TO T_ROLE ident ; - + grant_stmt_item : T_EXECUTE T_ON T_PROCEDURE ident ; - + leave_stmt : T_LEAVE L_ID? ; - + map_object_stmt : T_MAP T_OBJECT expr (T_TO expr)? (T_AT expr)? ; - + open_stmt : // OPEN cursor statement T_OPEN L_ID (T_FOR (select_stmt | expr))? ; @@ -599,43 +603,43 @@ open_stmt : // OPEN cursor statement fetch_stmt : // FETCH cursor statement T_FETCH T_FROM? L_ID T_INTO L_ID (T_COMMA L_ID)* ; - + collect_stats_stmt : T_COLLECT (T_STATISTICS | T_STATS) T_ON table_name collect_stats_clause? ; - + collect_stats_clause : T_COLUMN T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - + close_stmt : // CLOSE cursor statement T_CLOSE L_ID ; - + cmp_stmt : // CMP statement T_CMP (T_ROW_COUNT | T_SUM) cmp_source T_COMMA cmp_source ; - + cmp_source : (table_name where_clause? | T_OPEN_P select_stmt T_CLOSE_P) (T_AT ident)? ; - + copy_from_local_stmt : // COPY FROM LOCAL statement T_COPY T_FROM T_LOCAL copy_source (T_COMMA copy_source)* T_TO copy_target copy_file_option* ; - + copy_stmt : // COPY statement T_COPY (table_name | T_OPEN_P select_stmt T_CLOSE_P) T_TO T_HDFS? copy_target copy_option* ; - + copy_source : - (file_name | expr) + (file_name | expr) ; copy_target : - (file_name | expr) + (file_name | expr) ; - + copy_option : T_AT ident | T_BATCHSIZE expr @@ -648,75 +652,75 @@ copy_file_option : | T_IGNORE | T_OVERWRITE ; - + commit_stmt : // COMMIT statement T_COMMIT T_WORK? ; - + create_index_stmt : // CREATE INDEX statement T_CREATE T_UNIQUE? T_INDEX ident T_ON table_name T_OPEN_P create_index_col (T_COMMA create_index_col)* T_CLOSE_P ; - -create_index_col : + +create_index_col : ident (T_ASC | T_DESC)? ; - + index_storage_clause : index_mssql_storage_clause ; - + index_mssql_storage_clause : T_WITH T_OPEN_P ident T_EQUAL ident (T_COMMA ident T_EQUAL ident)* T_CLOSE_P create_table_options_mssql_item* ; - -print_stmt : // PRINT statement + +print_stmt : // PRINT statement T_PRINT expr | T_PRINT T_OPEN_P expr T_CLOSE_P ; quit_stmt : - '.'? T_QUIT expr? + T_DOT? T_QUIT expr? ; - + raise_stmt : T_RAISE ; - + resignal_stmt : // RESIGNAL statement T_RESIGNAL (T_SQLSTATE T_VALUE? expr (T_SET T_MESSAGE_TEXT T_EQUAL expr)? )? ; - + return_stmt : // RETURN statement T_RETURN expr? ; - + rollback_stmt : // ROLLBACK statement T_ROLLBACK T_WORK? ; - -set_session_option : + +set_session_option : set_current_schema_option | set_mssql_session_option | set_teradata_session_option ; -set_current_schema_option : +set_current_schema_option : ((T_CURRENT? T_SCHEMA) | T_CURRENT_SCHEMA) T_EQUAL? expr ; - + set_mssql_session_option : - ( T_ANSI_NULLS + ( T_ANSI_NULLS | T_ANSI_PADDING | T_NOCOUNT | T_QUOTED_IDENTIFIER | T_XACT_ABORT ) (T_ON | T_OFF) ; - + set_teradata_session_option : T_QUERY_BAND T_EQUAL (expr | T_NONE) T_UPDATE? T_FOR (T_TRANSACTION | T_SESSION) ; - + signal_stmt : // SIGNAL statement T_SIGNAL ident ; @@ -724,7 +728,7 @@ signal_stmt : // SIGNAL statement summary_stmt : // SUMMARY statement T_SUMMARY (T_TOP expr)? T_FOR (select_stmt | table_name where_clause? (T_LIMIT expr)?) ; - + truncate_stmt : T_TRUNCATE T_TABLE? table_name ; @@ -732,23 +736,23 @@ truncate_stmt : use_stmt : // USE statement T_USE expr ; - + values_into_stmt : // VALUES INTO statement - T_VALUES T_OPEN_P? expr (T_COMMA expr)* T_CLOSE_P? T_INTO T_OPEN_P? ident (T_COMMA ident)* T_CLOSE_P? + T_VALUES T_OPEN_P? expr (T_COMMA expr)* T_CLOSE_P? T_INTO T_OPEN_P? ident (T_COMMA ident)* T_CLOSE_P? ; while_stmt : // WHILE loop statement - T_WHILE bool_expr (T_DO | T_LOOP | T_THEN | T_BEGIN) block T_END (T_WHILE | T_LOOP)? + T_WHILE bool_expr (T_DO | T_LOOP | T_THEN | T_BEGIN) block T_END (T_WHILE | T_LOOP)? ; for_cursor_stmt : // FOR (cursor) statement T_FOR L_ID T_IN T_OPEN_P? select_stmt T_CLOSE_P? T_LOOP block T_END T_LOOP ; - + for_range_stmt : // FOR (Integer range) statement T_FOR L_ID T_IN T_REVERSE? expr T_DOT2 expr ((T_BY | T_STEP) expr)? T_LOOP block T_END T_LOOP ; - + label : L_LABEL | T_LESS T_LESS L_ID T_GREATER T_GREATER @@ -759,26 +763,26 @@ using_clause : // USING var,... clause ; select_stmt : // SELECT statement - cte_select_stmt? fullselect_stmt + cte_select_stmt? fullselect_stmt ; - + cte_select_stmt : T_WITH cte_select_stmt_item (T_COMMA cte_select_stmt_item)* ; - + cte_select_stmt_item : ident cte_select_cols? T_AS T_OPEN_P fullselect_stmt T_CLOSE_P ; - + cte_select_cols : T_OPEN_P ident (T_COMMA ident)* T_CLOSE_P ; - -fullselect_stmt : - fullselect_stmt_item (fullselect_set_clause fullselect_stmt_item)* + +fullselect_stmt : + fullselect_stmt_item (fullselect_set_clause fullselect_stmt_item)* ; -fullselect_stmt_item : +fullselect_stmt_item : subselect_stmt | T_OPEN_P fullselect_stmt T_CLOSE_P ; @@ -786,116 +790,117 @@ fullselect_stmt_item : fullselect_set_clause : T_UNION T_ALL? | T_EXCEPT T_ALL? - | T_INTERSECT T_ALL? + | T_INTERSECT T_ALL? ; - -subselect_stmt : + +subselect_stmt : (T_SELECT | T_SEL) select_list into_clause? from_clause? where_clause? group_by_clause? (having_clause | qualify_clause)? order_by_clause? select_options? ; -select_list : +select_list : select_list_set? select_list_limit? select_list_item (T_COMMA select_list_item)* ; select_list_set : - T_ALL + T_ALL | T_DISTINCT ; - -select_list_limit : + +select_list_limit : T_TOP expr ; select_list_item : - ((ident T_EQUAL)? expr select_list_alias? | select_list_asterisk) + ((ident T_EQUAL)? expr select_list_alias? | select_list_asterisk) ; - + select_list_alias : - {!this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM")}? T_AS? ident + {this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM"}? T_AS? ident | T_OPEN_P T_TITLE L_S_STRING T_CLOSE_P ; - + select_list_asterisk : - (L_ID '.')? '*' + (L_ID '.')? '*' ; - + into_clause : T_INTO ident (T_COMMA ident)* ; - -from_clause : + +from_clause : T_FROM from_table_clause (from_join_clause)* ; - + from_table_clause : from_table_name_clause | from_subselect_clause | from_table_values_clause ; - + from_table_name_clause : table_name from_alias_clause? - ; + ; from_subselect_clause : T_OPEN_P select_stmt T_CLOSE_P from_alias_clause? ; - + from_join_clause : T_COMMA from_table_clause | from_join_type_clause from_table_clause T_ON bool_expr ; - + from_join_type_clause : T_INNER? T_JOIN | (T_LEFT | T_RIGHT | T_FULL) T_OUTER? T_JOIN ; - + from_table_values_clause: T_TABLE T_OPEN_P T_VALUES from_table_values_row (T_COMMA from_table_values_row)* T_CLOSE_P from_alias_clause? ; - + from_table_values_row: expr - | T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P + | T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P ; from_alias_clause : - {!this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH")}? - T_AS? ident (T_OPEN_P L_ID (T_COMMA L_ID)* T_CLOSE_P)? + {this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN"}? + T_AS? ident (T_OPEN_P L_ID (T_COMMA L_ID)* T_CLOSE_P)? ; - + table_name : ident ; - -where_clause : + +where_clause : T_WHERE bool_expr ; - + group_by_clause : T_GROUP T_BY expr (T_COMMA expr)* ; - -having_clause : + +having_clause : T_HAVING bool_expr - ; - -qualify_clause : + ; + +qualify_clause : T_QUALIFY bool_expr - ; + ; order_by_clause : T_ORDER T_BY expr (T_ASC | T_DESC)? (T_COMMA expr (T_ASC | T_DESC)?)* ; - + select_options : select_options_item+ ; @@ -908,54 +913,54 @@ select_options_item : update_stmt : // UPDATE statement T_UPDATE update_table T_SET update_assignment where_clause? update_upsert? ; - + update_assignment : assignment_stmt_item (T_COMMA assignment_stmt_item)* ; update_table : (table_name from_clause? | T_OPEN_P select_stmt T_CLOSE_P) (T_AS? ident)? - ; - + ; + update_upsert : T_ELSE insert_stmt ; - + merge_stmt : // MERGE statement T_MERGE T_INTO merge_table T_USING merge_table T_ON bool_expr merge_condition+ ; - + merge_table : (table_name | (T_OPEN_P select_stmt T_CLOSE_P)) (T_AS? ident)? - ; - + ; + merge_condition : T_WHEN T_NOT? T_MATCHED (T_AND bool_expr)? T_THEN merge_action | T_ELSE T_IGNORE ; - + merge_action : - T_INSERT insert_stmt_cols? T_VALUES insert_stmt_row - | T_UPDATE T_SET assignment_stmt_item (T_COMMA assignment_stmt_item)* where_clause? + T_INSERT insert_stmt_cols? T_VALUES insert_stmt_row + | T_UPDATE T_SET assignment_stmt_item (T_COMMA assignment_stmt_item)* where_clause? | T_DELETE ; - -delete_stmt : + +delete_stmt : T_DELETE T_FROM? table_name delete_alias? (where_clause | T_ALL)? ; delete_alias : - {!this._input.LT(1).getText().equalsIgnoreCase("ALL")}? + {this._input.LT(1).text.toUpperCase() !== "ALL"}? T_AS? ident ; - + describe_stmt : - (T_DESCRIBE | T_DESC) T_TABLE? table_name + (T_DESCRIBE | T_DESC) T_TABLE? table_name ; - + bool_expr : // Boolean condition - T_NOT? T_OPEN_P bool_expr T_CLOSE_P - | bool_expr bool_expr_logical_operator bool_expr + T_NOT? T_OPEN_P bool_expr T_CLOSE_P + | bool_expr bool_expr_logical_operator bool_expr | bool_expr_atom ; @@ -964,7 +969,7 @@ bool_expr_atom : | bool_expr_binary | expr ; - + bool_expr_unary : expr T_IS T_NOT? T_NULL | expr T_BETWEEN expr T_AND expr @@ -972,88 +977,88 @@ bool_expr_unary : | bool_expr_single_in | bool_expr_multi_in ; - + bool_expr_single_in : - expr T_NOT? T_IN T_OPEN_P ((expr (T_COMMA expr)*) | select_stmt) T_CLOSE_P + expr T_NOT? T_IN T_OPEN_P ((expr (T_COMMA expr)*) | select_stmt) T_CLOSE_P ; bool_expr_multi_in : - T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P T_NOT? T_IN T_OPEN_P select_stmt T_CLOSE_P + T_OPEN_P expr (T_COMMA expr)* T_CLOSE_P T_NOT? T_IN T_OPEN_P select_stmt T_CLOSE_P ; - + bool_expr_binary : expr bool_expr_binary_operator expr ; - + bool_expr_logical_operator : - T_AND + T_AND | T_OR - ; + ; bool_expr_binary_operator : - T_EQUAL - | T_EQUAL2 - | T_NOTEQUAL - | T_NOTEQUAL2 - | T_LESS - | T_LESSEQUAL - | T_GREATER - | T_GREATEREQUAL + T_EQUAL + | T_EQUAL2 + | T_NOTEQUAL + | T_NOTEQUAL2 + | T_LESS + | T_LESSEQUAL + | T_GREATER + | T_GREATEREQUAL | T_NOT? (T_LIKE | T_RLIKE | T_REGEXP) ; expr : expr interval_item - | expr T_MUL expr - | expr T_DIV expr - | expr T_ADD expr - | expr T_SUB expr - | T_OPEN_P select_stmt T_CLOSE_P - | T_OPEN_P expr T_CLOSE_P - | expr_interval + | expr T_MUL expr + | expr T_DIV expr + | expr T_ADD expr + | expr T_SUB expr + | T_OPEN_P select_stmt T_CLOSE_P + | T_OPEN_P expr T_CLOSE_P + | expr_interval | expr_concat | expr_case | expr_cursor_attribute | expr_agg_window_func | expr_spec_func - | expr_func - | expr_atom + | expr_func + | expr_atom ; -expr_atom : +expr_atom : date_literal | timestamp_literal | bool_literal - | ident + | ident | string | dec_number | int_number | null_const ; - + expr_interval : - T_INTERVAL expr interval_item + T_INTERVAL expr interval_item ; interval_item : - T_DAY + T_DAY | T_DAYS - | T_MICROSECOND - | T_MICROSECONDS - | T_SECOND - | T_SECONDS + | T_MICROSECOND + | T_MICROSECONDS + | T_SECOND + | T_SECONDS ; - + expr_concat : // String concatenation operator expr_concat_item (T_PIPE | T_CONCAT) expr_concat_item ((T_PIPE | T_CONCAT) expr_concat_item)* ; - -expr_concat_item : - T_OPEN_P expr T_CLOSE_P + +expr_concat_item : + T_OPEN_P expr T_CLOSE_P | expr_case | expr_agg_window_func | expr_spec_func - | expr_func - | expr_atom + | expr_func + | expr_atom ; expr_case : // CASE expression @@ -1061,18 +1066,18 @@ expr_case : // CASE expression | expr_case_searched ; -expr_case_simple : +expr_case_simple : T_CASE expr (T_WHEN expr T_THEN expr)+ (T_ELSE expr)? T_END ; -expr_case_searched : +expr_case_searched : T_CASE (T_WHEN bool_expr T_THEN expr)+ (T_ELSE expr)? T_END ; - + expr_cursor_attribute : - ident '%' (T_ISOPEN | T_FOUND | T_NOTFOUND) + ident T_PRECENT (T_ISOPEN | T_FOUND | T_NOTFOUND) ; - + expr_agg_window_func : T_AVG T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_COUNT T_OPEN_P ((expr_func_all_distinct? expr) | '*') T_CLOSE_P expr_func_over_clause? @@ -1087,95 +1092,95 @@ expr_agg_window_func : | T_MIN T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_RANK T_OPEN_P T_CLOSE_P expr_func_over_clause | T_ROW_NUMBER T_OPEN_P T_CLOSE_P expr_func_over_clause - | T_STDEV T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? + | T_STDEV T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_SUM T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_VAR T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? | T_VARIANCE T_OPEN_P expr_func_all_distinct? expr T_CLOSE_P expr_func_over_clause? - ; + ; expr_func_all_distinct : - T_ALL - | T_DISTINCT - ; + T_ALL + | T_DISTINCT + ; expr_func_over_clause : T_OVER T_OPEN_P expr_func_partition_by_clause? order_by_clause? T_CLOSE_P - ; + ; expr_func_partition_by_clause : T_PARTITION T_BY expr (T_COMMA expr)* - ; - -expr_spec_func : + ; + +expr_spec_func : T_ACTIVITY_COUNT | T_CAST T_OPEN_P expr T_AS dtype dtype_len? T_CLOSE_P | T_COUNT T_OPEN_P (expr | '*') T_CLOSE_P | T_CURRENT_DATE | T_CURRENT T_DATE | (T_CURRENT_TIMESTAMP | T_CURRENT T_TIMESTAMP) (T_OPEN_P expr T_CLOSE_P)? | T_CURRENT_USER | T_CURRENT T_USER - | T_MAX_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MAX_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MAX_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_MIN_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P - | T_PART_COUNT T_OPEN_P expr (T_COMMA expr T_EQUAL expr)* T_CLOSE_P - | T_PART_LOC T_OPEN_P expr (T_COMMA expr T_EQUAL expr)+ (T_COMMA expr)? T_CLOSE_P + | T_MAX_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_STRING T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MAX_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_INT T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MAX_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_MIN_PART_DATE T_OPEN_P expr (T_COMMA expr (T_COMMA expr T_EQUAL expr)*)? T_CLOSE_P + | T_PART_COUNT T_OPEN_P expr (T_COMMA expr T_EQUAL expr)* T_CLOSE_P + | T_PART_LOC T_OPEN_P expr (T_COMMA expr T_EQUAL expr)+ (T_COMMA expr)? T_CLOSE_P | T_TRIM T_OPEN_P expr T_CLOSE_P | T_SUBSTRING T_OPEN_P expr T_FROM expr (T_FOR expr)? T_CLOSE_P | T_SYSDATE | T_USER ; - -expr_func : - ident T_OPEN_P expr_func_params? T_CLOSE_P + +expr_func : + ident T_OPEN_P expr_func_params? T_CLOSE_P ; -expr_func_params : - func_param (T_COMMA func_param)* +expr_func_params : + func_param (T_COMMA func_param)* + ; + +func_param : + {this._input.LT(1).text.toUpperCase() !== "INTO"}? (ident T_EQUAL T_GREATER?)? expr ; -func_param : - {!this._input.LT(1).getText().equalsIgnoreCase("INTO")}? (ident T_EQUAL T_GREATER?)? expr - ; - expr_select : select_stmt | expr ; - + expr_file : file_name | expr ; - + hive : T_HIVE hive_item* ; hive_item : T_SUB ident expr - | T_SUB ident L_ID T_EQUAL expr + | T_SUB ident L_ID T_EQUAL expr | T_SUB ident - ; + ; -host : - '!' host_cmd ';' // OS command +host : + T_NOTE host_cmd ';' // OS command | host_stmt ; -host_cmd : - .*? +host_cmd : + .*? ; - -host_stmt : - T_HOST expr + +host_stmt : + T_HOST expr ; - + file_name : - L_FILE | ('/' | '.' '/')? ident ('/' ident)* + L_FILE | ('/' | T_DOT '/')? ident ('/' ident)* ; - + date_literal : // DATE 'YYYY-MM-DD' literal T_DATE string ; @@ -1183,11 +1188,11 @@ date_literal : // DATE 'YYYY-MM-DD' literal timestamp_literal : // TIMESTAMP 'YYYY-MM-DD HH:MI:SS.FFF' literal T_TIMESTAMP string ; - + ident : - '-'? (L_ID | non_reserved_words) ('.' (L_ID | non_reserved_words))* + (L_ID | non_reserved_words) (T_DOT (L_ID | non_reserved_words))* ; - + string : // String literal (single or double quoted) L_S_STRING # single_quotedString | L_D_STRING # double_quotedString @@ -1200,91 +1205,91 @@ int_number : // Integer (positive or negative) dec_number : // Decimal number (positive or negative) ('-' | '+')? L_DEC ; - + bool_literal : // Boolean literal T_TRUE | T_FALSE ; - + null_const : // NULL constant T_NULL ; non_reserved_words : // Tokens that are not reserved words and can be used as identifiers - T_ACTION + T_ACTION | T_ACTIVITY_COUNT | T_ADD2 - | T_ALL + | T_ALL | T_ALLOCATE | T_ALTER | T_AND | T_ANSI_NULLS | T_ANSI_PADDING - | T_AS - | T_ASC - | T_ASSOCIATE + | T_AS + | T_ASC + | T_ASSOCIATE | T_AT | T_AUTO_INCREMENT | T_AVG | T_BATCHSIZE - | T_BEGIN + | T_BEGIN | T_BETWEEN - | T_BIGINT + | T_BIGINT | T_BINARY_DOUBLE | T_BINARY_FLOAT | T_BIT | T_BODY - | T_BREAK - | T_BY + | T_BREAK + | T_BY | T_BYTE - | T_CALL - | T_CALLER - | T_CASCADE - | T_CASE + | T_CALL + | T_CALLER + | T_CASCADE + | T_CASE | T_CASESPECIFIC | T_CAST - | T_CHAR - | T_CHARACTER - | T_CHARSET - | T_CLIENT - | T_CLOSE + | T_CHAR + | T_CHARACTER + | T_CHARSET + | T_CLIENT + | T_CLOSE | T_CLUSTERED | T_CMP | T_COLLECT - | T_COLLECTION + | T_COLLECTION | T_COLUMN - | T_COMMENT - | T_COMPRESS - | T_CONSTANT + | T_COMMENT + | T_COMPRESS + | T_CONSTANT | T_COPY | T_COMMIT - | T_CONCAT + | T_CONCAT | T_CONDITION | T_CONSTRAINT | T_CONTINUE - | T_COUNT - | T_COUNT_BIG + | T_COUNT + | T_COUNT_BIG | T_CREATE | T_CREATION | T_CREATOR | T_CS | T_CUME_DIST - | T_CURRENT + | T_CURRENT | T_CURRENT_DATE | T_CURRENT_SCHEMA | T_CURRENT_TIMESTAMP | T_CURRENT_USER - | T_CURSOR + | T_CURSOR | T_DATA | T_DATABASE - | T_DATE - | T_DATETIME + | T_DATE + | T_DATETIME | T_DAY | T_DAYS - | T_DEC - | T_DECIMAL - | T_DECLARE - | T_DEFAULT + | T_DEC + | T_DECIMAL + | T_DECLARE + | T_DEFAULT | T_DEFERRED | T_DEFINED | T_DEFINER @@ -1293,106 +1298,106 @@ non_reserved_words : // Tokens that are not reserved words | T_DELIMITED | T_DELIMITER | T_DENSE_RANK - | T_DESC - | T_DESCRIBE + | T_DESC + | T_DESCRIBE | T_DIAGNOSTICS | T_DIR | T_DIRECTORY - | T_DISTINCT + | T_DISTINCT | T_DISTRIBUTE - | T_DO - | T_DOUBLE - | T_DROP - | T_DYNAMIC - // T_ELSE reserved word - // T_ELSEIF reserved word - // T_ELSIF reserved word + | T_DO + | T_DOUBLE + | T_DROP + | T_DYNAMIC + // T_ELSE reserved word + // T_ELSEIF reserved word + // T_ELSIF reserved word // T_END reserved word | T_ENABLE - | T_ENGINE - | T_ESCAPED - | T_EXCEPT - | T_EXEC - | T_EXECUTE - | T_EXCEPTION - | T_EXCLUSIVE + | T_ENGINE + | T_ESCAPED + | T_EXCEPT + | T_EXEC + | T_EXECUTE + | T_EXCEPTION + | T_EXCLUSIVE | T_EXISTS - | T_EXIT - | T_FALLBACK - | T_FALSE - | T_FETCH + | T_EXIT + | T_FALLBACK + | T_FALSE + | T_FETCH | T_FIELDS - | T_FILE - | T_FILES - | T_FIRST_VALUE - | T_FLOAT - | T_FOR + | T_FILE + | T_FILES + | T_FIRST_VALUE + | T_FLOAT + | T_FOR | T_FOREIGN - | T_FORMAT - | T_FOUND - | T_FROM - | T_FULL + | T_FORMAT + | T_FOUND + | T_FROM + | T_FULL | T_FUNCTION | T_GET | T_GLOBAL | T_GO | T_GRANT - | T_GROUP - | T_HANDLER + | T_GROUP + | T_HANDLER | T_HASH - | T_HAVING + | T_HAVING | T_HDFS - | T_HIVE - | T_HOST - | T_IDENTITY - | T_IF - | T_IGNORE - | T_IMMEDIATE - | T_IN + | T_HIVE + | T_HOST + | T_IDENTITY + | T_IF + | T_IGNORE + | T_IMMEDIATE + | T_IN | T_INCLUDE - | T_INDEX + | T_INDEX | T_INITRANS | T_INNER | T_INOUT | T_INSERT - | T_INT + | T_INT | T_INT2 | T_INT4 | T_INT8 - | T_INTEGER - | T_INTERSECT - | T_INTERVAL - | T_INTO - | T_INVOKER - | T_ITEMS - | T_IS + | T_INTEGER + | T_INTERSECT + | T_INTERVAL + | T_INTO + | T_INVOKER + | T_ITEMS + | T_IS | T_ISOPEN - | T_JOIN - | T_KEEP + | T_JOIN + | T_KEEP | T_KEY | T_KEYS | T_LAG | T_LANGUAGE | T_LAST_VALUE | T_LEAD - | T_LEAVE - | T_LEFT - | T_LIKE - | T_LIMIT - | T_LINES - | T_LOCAL - | T_LOCATION + | T_LEAVE + | T_LEFT + | T_LIKE + | T_LIMIT + | T_LINES + | T_LOCAL + | T_LOCATION | T_LOCATOR | T_LOCATORS | T_LOCKS | T_LOG - | T_LOGGED - | T_LOGGING - | T_LOOP - | T_MAP - | T_MATCHED - | T_MAX - | T_MAXTRANS + | T_LOGGED + | T_LOGGING + | T_LOOP + | T_MAP + | T_MATCHED + | T_MAX + | T_MAXTRANS | T_MERGE | T_MESSAGE_TEXT | T_MICROSECOND @@ -1407,58 +1412,58 @@ non_reserved_words : // Tokens that are not reserved words | T_NOCOUNT | T_NOLOGGING | T_NONE - | T_NOT - | T_NOTFOUND - // T_NULL reserved word + | T_NOT + | T_NOTFOUND + // T_NULL reserved word | T_NUMERIC - | T_NUMBER - | T_OBJECT - | T_OFF + | T_NUMBER + | T_OBJECT + | T_OFF | T_ON | T_ONLY - | T_OPEN - | T_OR - | T_ORDER - | T_OUT + | T_OPEN + | T_OR + | T_ORDER + | T_OUT | T_OUTER | T_OVER | T_OVERWRITE | T_OWNER | T_PACKAGE | T_PART_COUNT - | T_PART_LOC - | T_PARTITION + | T_PART_LOC + | T_PARTITION | T_PCTFREE - | T_PCTUSED - | T_PRECISION + | T_PCTUSED + | T_PRECISION | T_PRESERVE | T_PRIMARY - | T_PRINT + | T_PRINT | T_PROC - | T_PROCEDURE - | T_PWD + | T_PROCEDURE + | T_PWD | T_QUALIFY | T_QUERY_BAND | T_QUIT | T_QUOTED_IDENTIFIER | T_RAISE - | T_RANK + | T_RANK | T_REAL - | T_REFERENCES + | T_REFERENCES | T_REGEXP - | T_RR + | T_RR | T_REPLACE | T_RESIGNAL | T_RESTRICT | T_RESULT | T_RESULT_SET_LOCATOR - | T_RETURN + | T_RETURN | T_RETURNS - | T_REVERSE + | T_REVERSE | T_RIGHT | T_RLIKE - | T_RS - | T_ROLE + | T_RS + | T_ROLE | T_ROLLBACK | T_ROW | T_ROWS @@ -1469,72 +1474,73 @@ non_reserved_words : // Tokens that are not reserved words | T_SECONDS | T_SECURITY | T_SEGMENT - | T_SEL - | T_SELECT - | T_SESSION + | T_SEL + | T_SELECT + | T_SESSION | T_SESSIONS - | T_SET - | T_SETS + | T_SET + | T_SETS | T_SHARE | T_SIGNAL | T_SIMPLE_DOUBLE | T_SIMPLE_FLOAT | T_SMALLDATETIME - | T_SMALLINT + | T_SMALLINT | T_SQL - | T_SQLEXCEPTION + | T_SQLEXCEPTION | T_SQLINSERT | T_SQLSTATE - | T_SQLWARNING + | T_SQLWARNING | T_STATS - | T_STATISTICS - | T_STEP - | T_STDEV + | T_STATISTICS + | T_STEP + | T_STDEV | T_STORAGE | T_STORED - | T_STRING - | T_SUBDIR + | T_STRING + | T_SUBDIR | T_SUBSTRING | T_SUM | T_SUMMARY - | T_SYSDATE - | T_SYS_REFCURSOR + | T_SYSDATE + | T_SYS_REFCURSOR | T_TABLE | T_TABLESPACE | T_TEMPORARY | T_TERMINATED | T_TEXTIMAGE_ON - | T_THEN - | T_TIMESTAMP + | T_THEN + | T_TIMESTAMP | T_TITLE - | T_TO + | T_TO | T_TOP | T_TRANSACTION | T_TRIM | T_TRUE | T_TRUNCATE - // T_UNION reserved word - | T_UNIQUE - | T_UPDATE - | T_UR - | T_USE - | T_USER - | T_USING + // T_UNION reserved word + | T_UNIQUE + | T_UPDATE + | T_UR + | T_USE + | T_USER + | T_USING | T_VALUE | T_VALUES | T_VAR - | T_VARCHAR + | T_VARCHAR | T_VARCHAR2 | T_VARYING | T_VARIANCE | T_VOLATILE - // T_WHEN reserved word - // T_WHERE reserved word - | T_WHILE - | T_WITH - | T_WITHOUT + // T_WHEN reserved word + // T_WHERE reserved word + | T_WHILE + | T_WITH + | T_WITHOUT | T_WORK | T_XACT_ABORT | T_XML | T_YES ; + diff --git a/src/grammar/hive/HiveSqlLexer.g4 b/src/grammar/hive/HiveSqlLexer.g4 index d322ba1..59cf669 100644 --- a/src/grammar/hive/HiveSqlLexer.g4 +++ b/src/grammar/hive/HiveSqlLexer.g4 @@ -1,7 +1,8 @@ + lexer grammar HiveSqlLexer; // Lexer rules -T_ACTION : A C T I O N ; +T_ACTION : A C T I O N ; T_ADD2 : A D D ; T_ALL : A L L ; T_ALLOCATE : A L L O C A T E ; @@ -11,27 +12,27 @@ T_ANSI_NULLS : A N S I '_' N U L L S ; T_ANSI_PADDING : A N S I '_' P A D D I N G ; T_AS : A S ; T_ASC : A S C ; -T_ASSOCIATE : A S S O C I A T E ; +T_ASSOCIATE : A S S O C I A T E ; T_AT : A T ; T_AUTO_INCREMENT : A U T O '_' I N C R E M E N T ; -T_AVG : A V G ; +T_AVG : A V G ; T_BATCHSIZE : B A T C H S I Z E ; T_BEGIN : B E G I N ; -T_BETWEEN : B E T W E E N ; +T_BETWEEN : B E T W E E N ; T_BIGINT : B I G I N T ; T_BINARY_DOUBLE : B I N A R Y '_' D O U B L E ; T_BINARY_FLOAT : B I N A R Y '_' F L O A T ; T_BINARY_INTEGER : B I N A R Y '_' I N T E G E R ; T_BIT : B I T ; -T_BODY : B O D Y ; +T_BODY : B O D Y ; T_BREAK : B R E A K ; T_BY : B Y ; -T_BYTE : B Y T E ; +T_BYTE : B Y T E ; T_CALL : C A L L ; T_CALLER : C A L L E R ; -T_CASCADE : C A S C A D E ; +T_CASCADE : C A S C A D E ; T_CASE : C A S E ; -T_CASESPECIFIC : C A S E S P E C I F I C ; +T_CASESPECIFIC : C A S E S P E C I F I C ; T_CAST : C A S T ; T_CHAR : C H A R ; T_CHARACTER : C H A R A C T E R ; @@ -39,23 +40,23 @@ T_CHARSET : C H A R S E T ; T_CLIENT : C L I E N T ; T_CLOSE : C L O S E ; T_CLUSTERED : C L U S T E R E D; -T_CMP : C M P ; -T_COLLECT : C O L L E C T ; -T_COLLECTION : C O L L E C T I O N ; +T_CMP : C M P ; +T_COLLECT : C O L L E C T ; +T_COLLECTION : C O L L E C T I O N ; T_COLUMN : C O L U M N ; T_COMMENT : C O M M E N T; T_CONSTANT : C O N S T A N T ; -T_COMMIT : C O M M I T ; +T_COMMIT : C O M M I T ; T_COMPRESS : C O M P R E S S ; T_CONCAT : C O N C A T; T_CONDITION : C O N D I T I O N ; -T_CONSTRAINT : C O N S T R A I N T ; +T_CONSTRAINT : C O N S T R A I N T ; T_CONTINUE : C O N T I N U E ; T_COPY : C O P Y ; T_COUNT : C O U N T ; T_COUNT_BIG : C O U N T '_' B I G; T_CREATE : C R E A T E ; -T_CREATION : C R E A T I O N ; +T_CREATION : C R E A T I O N ; T_CREATOR : C R E A T O R ; T_CS : C S; T_CURRENT : C U R R E N T ; @@ -64,79 +65,79 @@ T_CURSOR : C U R S O R ; T_DATABASE : D A T A B A S E ; T_DATA : D A T A ; T_DATE : D A T E ; -T_DATETIME : D A T E T I M E ; +T_DATETIME : D A T E T I M E ; T_DAY : D A Y ; T_DAYS : D A Y S ; T_DEC : D E C ; T_DECIMAL : D E C I M A L ; T_DECLARE : D E C L A R E ; T_DEFAULT : D E F A U L T ; -T_DEFERRED : D E F E R R E D ; -T_DEFINED : D E F I N E D ; +T_DEFERRED : D E F E R R E D ; +T_DEFINED : D E F I N E D ; T_DEFINER : D E F I N E R ; -T_DEFINITION : D E F I N I T I O N ; +T_DEFINITION : D E F I N I T I O N ; T_DELETE : D E L E T E ; -T_DELIMITED : D E L I M I T E D ; -T_DELIMITER : D E L I M I T E R ; +T_DELIMITED : D E L I M I T E D ; +T_DELIMITER : D E L I M I T E R ; T_DESC : D E S C ; -T_DESCRIBE : D E S C R I B E ; +T_DESCRIBE : D E S C R I B E ; T_DIAGNOSTICS : D I A G N O S T I C S ; T_DIR : D I R ; -T_DIRECTORY : D I R E C T O R Y ; +T_DIRECTORY : D I R E C T O R Y ; T_DISTINCT : D I S T I N C T ; T_DISTRIBUTE : D I S T R I B U T E ; T_DO : D O ; T_DOUBLE : D O U B L E ; T_DROP : D R O P ; -T_DYNAMIC : D Y N A M I C ; +T_DYNAMIC : D Y N A M I C ; T_ELSE : E L S E ; T_ELSEIF : E L S E I F ; T_ELSIF : E L S I F ; T_ENABLE : E N A B L E ; T_END : E N D ; T_ENGINE : E N G I N E ; -T_ESCAPED : E S C A P E D ; +T_ESCAPED : E S C A P E D ; T_EXCEPT : E X C E P T ; T_EXEC : E X E C ; T_EXECUTE : E X E C U T E ; T_EXCEPTION : E X C E P T I O N ; -T_EXCLUSIVE : E X C L U S I V E ; -T_EXISTS : E X I S T S ; +T_EXCLUSIVE : E X C L U S I V E ; +T_EXISTS : E X I S T S ; T_EXIT : E X I T ; T_FALLBACK : F A L L B A C K ; T_FALSE : F A L S E ; T_FETCH : F E T C H ; -T_FIELDS : F I E L D S ; +T_FIELDS : F I E L D S ; T_FILE : F I L E ; -T_FILES : F I L E S ; +T_FILES : F I L E S ; T_FLOAT : F L O A T ; T_FOR : F O R ; -T_FOREIGN : F O R E I G N ; +T_FOREIGN : F O R E I G N ; T_FORMAT : F O R M A T ; T_FOUND : F O U N D ; -T_FROM : F R O M ; +T_FROM : F R O M ; T_FULL : F U L L ; T_FUNCTION : F U N C T I O N ; T_GET : G E T ; -T_GLOBAL : G L O B A L ; +T_GLOBAL : G L O B A L ; T_GO : G O ; -T_GRANT : G R A N T ; +T_GRANT : G R A N T ; T_GROUP : G R O U P ; T_HANDLER : H A N D L E R ; T_HASH : H A S H ; T_HAVING : H A V I N G ; -T_HDFS : H D F S ; +T_HDFS : H D F S ; T_HIVE : H I V E ; T_HOST : H O S T ; -T_IDENTITY : I D E N T I T Y ; +T_IDENTITY : I D E N T I T Y ; T_IF : I F ; -T_IGNORE : I G N O R E ; +T_IGNORE : I G N O R E ; T_IMMEDIATE : I M M E D I A T E ; T_IN : I N ; T_INCLUDE : I N C L U D E ; T_INDEX : I N D E X ; T_INITRANS : I N I T R A N S ; -T_INNER : I N N E R ; +T_INNER : I N N E R ; T_INOUT : I N O U T; T_INSERT : I N S E R T ; T_INT : I N T ; @@ -145,55 +146,55 @@ T_INT4 : I N T '4'; T_INT8 : I N T '8'; T_INTEGER : I N T E G E R ; T_INTERSECT : I N T E R S E C T ; -T_INTERVAL : I N T E R V A L ; +T_INTERVAL : I N T E R V A L ; T_INTO : I N T O ; T_INVOKER : I N V O K E R ; T_IS : I S ; T_ISOPEN : I S O P E N ; -T_ITEMS : I T E M S ; +T_ITEMS : I T E M S ; T_JOIN : J O I N ; -T_KEEP : K E E P; +T_KEEP : K E E P; T_KEY : K E Y ; T_KEYS : K E Y S ; T_LANGUAGE : L A N G U A G E ; T_LEAVE : L E A V E ; T_LEFT : L E F T ; -T_LIKE : L I K E ; +T_LIKE : L I K E ; T_LIMIT : L I M I T ; -T_LINES : L I N E S ; +T_LINES : L I N E S ; T_LOCAL : L O C A L ; T_LOCATION : L O C A T I O N ; -T_LOCATOR : L O C A T O R ; -T_LOCATORS : L O C A T O R S ; -T_LOCKS : L O C K S ; -T_LOG : L O G ; -T_LOGGED : L O G G E D ; -T_LOGGING : L O G G I N G ; +T_LOCATOR : L O C A T O R ; +T_LOCATORS : L O C A T O R S ; +T_LOCKS : L O C K S ; +T_LOG : L O G ; +T_LOGGED : L O G G E D ; +T_LOGGING : L O G G I N G ; T_LOOP : L O O P ; -T_MAP : M A P ; -T_MATCHED : M A T C H E D ; +T_MAP : M A P ; +T_MATCHED : M A T C H E D ; T_MAX : M A X ; -T_MAXTRANS : M A X T R A N S ; -T_MERGE : M E R G E ; +T_MAXTRANS : M A X T R A N S ; +T_MERGE : M E R G E ; T_MESSAGE_TEXT : M E S S A G E '_' T E X T ; T_MICROSECOND : M I C R O S E C O N D ; T_MICROSECONDS : M I C R O S E C O N D S; T_MIN : M I N ; -T_MULTISET : M U L T I S E T ; -T_NCHAR : N C H A R ; +T_MULTISET : M U L T I S E T ; +T_NCHAR : N C H A R ; T_NEW : N E W ; -T_NVARCHAR : N V A R C H A R ; +T_NVARCHAR : N V A R C H A R ; T_NO : N O ; T_NOCOUNT : N O C O U N T ; -T_NOCOMPRESS : N O C O M P R E S S ; +T_NOCOMPRESS : N O C O M P R E S S ; T_NOLOGGING : N O L O G G I N G ; T_NONE : N O N E ; T_NOT : N O T ; -T_NOTFOUND : N O T F O U N D ; +T_NOTFOUND : N O T F O U N D ; T_NULL : N U L L ; -T_NUMERIC : N U M E R I C ; +T_NUMERIC : N U M E R I C ; T_NUMBER : N U M B E R ; -T_OBJECT : O B J E C T ; +T_OBJECT : O B J E C T ; T_OFF : O F F ; T_ON : O N ; T_ONLY : O N L Y ; @@ -203,31 +204,31 @@ T_ORDER : O R D E R; T_OUT : O U T ; T_OUTER : O U T E R ; T_OVER : O V E R ; -T_OVERWRITE : O V E R W R I T E ; -T_OWNER : O W N E R ; -T_PACKAGE : P A C K A G E ; -T_PARTITION : P A R T I T I O N ; -T_PCTFREE : P C T F R E E ; +T_OVERWRITE : O V E R W R I T E ; +T_OWNER : O W N E R ; +T_PACKAGE : P A C K A G E ; +T_PARTITION : P A R T I T I O N ; +T_PCTFREE : P C T F R E E ; T_PCTUSED : P C T U S E D ; T_PLS_INTEGER : P L S '_' I N T E G E R ; -T_PRECISION : P R E C I S I O N ; -T_PRESERVE : P R E S E R V E ; +T_PRECISION : P R E C I S I O N ; +T_PRESERVE : P R E S E R V E ; T_PRIMARY : P R I M A R Y ; -T_PRINT : P R I N T ; +T_PRINT : P R I N T ; T_PROC : P R O C ; T_PROCEDURE : P R O C E D U R E ; T_QUALIFY : Q U A L I F Y ; -T_QUERY_BAND : Q U E R Y '_' B A N D ; -T_QUIT : Q U I T ; +T_QUERY_BAND : Q U E R Y '_' B A N D ; +T_QUIT : Q U I T ; T_QUOTED_IDENTIFIER : Q U O T E D '_' I D E N T I F I E R ; T_RAISE : R A I S E ; -T_REAL : R E A L ; -T_REFERENCES : R E F E R E N C E S ; +T_REAL : R E A L ; +T_REFERENCES : R E F E R E N C E S ; T_REGEXP : R E G E X P ; -T_REPLACE : R E P L A C E ; +T_REPLACE : R E P L A C E ; T_RESIGNAL : R E S I G N A L ; -T_RESTRICT : R E S T R I C T ; -T_RESULT : R E S U L T ; +T_RESTRICT : R E S T R I C T ; +T_RESULT : R E S U L T ; T_RESULT_SET_LOCATOR : R E S U L T '_' S E T '_' L O C A T O R ; T_RETURN : R E T U R N ; T_RETURNS : R E T U R N S ; @@ -236,66 +237,66 @@ T_RIGHT : R I G H T ; T_RLIKE : R L I K E ; T_ROLE : R O L E ; T_ROLLBACK : R O L L B A C K ; -T_ROW : R O W ; -T_ROWS : R O W S ; -T_ROWTYPE : R O W T Y P E ; +T_ROW : R O W ; +T_ROWS : R O W S ; +T_ROWTYPE : R O W T Y P E ; T_ROW_COUNT : R O W '_' C O U N T ; T_RR : R R; T_RS : R S ; -T_PWD : P W D ; +T_PWD : P W D ; T_TRIM : T R I M ; T_SCHEMA : S C H E M A ; T_SECOND : S E C O N D ; T_SECONDS : S E C O N D S; -T_SECURITY : S E C U R I T Y ; -T_SEGMENT : S E G M E N T ; +T_SECURITY : S E C U R I T Y ; +T_SEGMENT : S E G M E N T ; T_SEL : S E L ; -T_SELECT : S E L E C T ; +T_SELECT : S E L E C T ; T_SET : S E T ; -T_SESSION : S E S S I O N ; +T_SESSION : S E S S I O N ; T_SESSIONS : S E S S I O N S ; T_SETS : S E T S; -T_SHARE : S H A R E ; +T_SHARE : S H A R E ; T_SIGNAL : S I G N A L ; T_SIMPLE_DOUBLE : S I M P L E '_' D O U B L E ; T_SIMPLE_FLOAT : S I M P L E '_' F L O A T ; T_SIMPLE_INTEGER : S I M P L E '_' I N T E G E R ; T_SMALLDATETIME : S M A L L D A T E T I M E ; T_SMALLINT : S M A L L I N T ; -T_SQL : S Q L ; +T_SQL : S Q L ; T_SQLEXCEPTION : S Q L E X C E P T I O N ; T_SQLINSERT : S Q L I N S E R T ; T_SQLSTATE : S Q L S T A T E ; T_SQLWARNING : S Q L W A R N I N G ; -T_STATS : S T A T S ; +T_STATS : S T A T S ; T_STATISTICS : S T A T I S T I C S ; -T_STEP : S T E P ; -T_STORAGE : S T O R A G E ; +T_STEP : S T E P ; +T_STORAGE : S T O R A G E ; T_STORED : S T O R E D ; T_STRING : S T R I N G ; -T_SUBDIR : S U B D I R ; -T_SUBSTRING : S U B S T R I N G ; +T_SUBDIR : S U B D I R ; +T_SUBSTRING : S U B S T R I N G ; T_SUM : S U M ; T_SUMMARY : S U M M A R Y ; -T_SYS_REFCURSOR : S Y S '_' R E F C U R S O R ; +T_SYS_REFCURSOR : S Y S '_' R E F C U R S O R ; T_TABLE : T A B L E ; -T_TABLESPACE : T A B L E S P A C E ; +T_TABLESPACE : T A B L E S P A C E ; T_TEMPORARY : T E M P O R A R Y ; -T_TERMINATED : T E R M I N A T E D ; +T_TERMINATED : T E R M I N A T E D ; T_TEXTIMAGE_ON : T E X T I M A G E '_' O N ; T_THEN : T H E N ; T_TIMESTAMP : T I M E S T A M P ; T_TINYINT : T I N Y I N T ; T_TITLE : T I T L E ; -T_TO : T O ; +T_TO : T O ; T_TOP : T O P ; T_TRANSACTION : T R A N S A C T I O N ; T_TRUE : T R U E ; T_TRUNCATE : T R U N C A T E; -T_TYPE : T Y P E ; +T_TYPE : T Y P E ; T_UNION : U N I O N ; T_UNIQUE : U N I Q U E ; -T_UPDATE : U P D A T E ; +T_UPDATE : U P D A T E ; T_UR : U R ; T_USE : U S E ; T_USING : U S I N G ; @@ -309,47 +310,50 @@ T_VOLATILE : V O L A T I L E ; T_WHEN : W H E N ; T_WHERE : W H E R E ; T_WHILE : W H I L E ; -T_WITH : W I T H ; +T_WITH : W I T H ; T_WITHOUT : W I T H O U T ; T_WORK : W O R K ; T_XACT_ABORT : X A C T '_' A B O R T ; T_XML : X M L ; -T_YES : Y E S ; +T_YES : Y E S ; // Functions with specific syntax T_ACTIVITY_COUNT : A C T I V I T Y '_' C O U N T ; -T_CUME_DIST : C U M E '_' D I S T ; +T_CUME_DIST : C U M E '_' D I S T ; T_CURRENT_DATE : C U R R E N T '_' D A T E ; T_CURRENT_TIMESTAMP : C U R R E N T '_' T I M E S T A M P ; T_CURRENT_USER : C U R R E N T '_' U S E R ; T_DENSE_RANK : D E N S E '_' R A N K ; -T_FIRST_VALUE : F I R S T '_' V A L U E; +T_FIRST_VALUE : F I R S T '_' V A L U E; T_LAG : L A G ; -T_LAST_VALUE : L A S T '_' V A L U E; -T_LEAD : L E A D ; +T_LAST_VALUE : L A S T '_' V A L U E; +T_LEAD : L E A D ; T_MAX_PART_STRING : M A X '_' P A R T '_' S T R I N G ; T_MIN_PART_STRING : M I N '_' P A R T '_' S T R I N G ; T_MAX_PART_INT : M A X '_' P A R T '_' I N T ; T_MIN_PART_INT : M I N '_' P A R T '_' I N T ; T_MAX_PART_DATE : M A X '_' P A R T '_' D A T E ; T_MIN_PART_DATE : M I N '_' P A R T '_' D A T E ; -T_PART_COUNT : P A R T '_' C O U N T ; +T_PART_COUNT : P A R T '_' C O U N T ; T_PART_LOC : P A R T '_' L O C ; T_RANK : R A N K ; T_ROW_NUMBER : R O W '_' N U M B E R; T_STDEV : S T D E V ; T_SYSDATE : S Y S D A T E ; -T_VARIANCE : V A R I A N C E ; -T_USER : U S E R; +T_VARIANCE : V A R I A N C E ; +T_USER : U S E R; T_ADD : '+' ; T_COLON : ':' ; T_COMMA : ',' ; T_PIPE : '||' ; T_DIV : '/' ; +T_DOT : '.' ; T_DOT2 : '..' ; T_EQUAL : '=' ; T_EQUAL2 : '==' ; +T_SHARP : '#' ; +T_NOTE : '!' ; T_NOTEQUAL : '<>' ; T_NOTEQUAL2 : '!=' ; T_GREATER : '>' ; @@ -357,10 +361,12 @@ T_GREATEREQUAL : '>=' ; T_LESS : '<' ; T_LESSEQUAL : '<=' ; T_MUL : '*' ; +T_PRECENT : '%' ; +T_CALLS : '@' ; T_OPEN_B : '{' ; T_OPEN_P : '(' ; T_OPEN_SB : '[' ; -T_CLOSE_B : '}' ; +T_CLOSE_B : '}' ; T_CLOSE_P : ')' ; T_CLOSE_SB : ']' ; T_SEMICOLON : ';' ; @@ -381,11 +387,11 @@ L_M_COMMENT : '/*' .*? '*/' -> channel(HIDDEN) ; // Multil L_S_COMMENT : ('--' | '//') .*? '\r'? '\n' -> channel(HIDDEN) ; // Single line comment L_FILE : ([a-zA-Z] ':' '\\'?)? L_ID ('\\' L_ID)* // File path (a/b/c Linux path causes conflicts with division operator and handled at parser level) - ; - -L_LABEL : ([a-zA-Z] | L_DIGIT | '_')* ':' ; - + +L_LABEL : ([a-zA-Z] | L_DIGIT | '_')* ':' + ; + fragment L_ID_PART : [a-zA-Z] ([a-zA-Z] | L_DIGIT | '_')* // Identifier part @@ -397,8 +403,8 @@ L_ID_PART : ; fragment L_STR_ESC_D : // Double quoted string escape sequence - '""' | '\\"' - ; + '""' | '\\"' + ; fragment L_DIGIT : [0-9] // Digit ; diff --git a/src/grammar/hive/README.md b/src/grammar/hive/README.md deleted file mode 100644 index 4fed08b..0000000 --- a/src/grammar/hive/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Hive SQL Grammar - -Source file from [Hive Github](https://github.com/apache/hive/tree/master/hplsql/src/main/antlr4/org/apache/hive/hplsql) diff --git a/src/lib/flinksql/FlinkSqlLexer.interp b/src/lib/flinksql/FlinkSqlLexer.interp new file mode 100644 index 0000000..1fca445 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlLexer.interp @@ -0,0 +1,899 @@ +token literal names: +null +null +null +null +'SELECT' +'FROM' +'ADD' +'AS' +'ALL' +'ANY' +'DISTINCT' +'WHERE' +'GROUP' +'BY' +'GROUPING' +'SETS' +'CUBE' +'ROLLUP' +'ORDER' +'HAVING' +'LIMIT' +'AT' +'OR' +'AND' +'IN' +'NOT' +'NO' +'EXISTS' +'BETWEEN' +'LIKE' +'RLIKE' +'IS' +'TRUE' +'FALSE' +'NULLS' +'ASC' +'DESC' +'FOR' +'INTERVAL' +'CASE' +'WHEN' +'THEN' +'ELSE' +'END' +'JOIN' +'CROSS' +'OUTER' +'INNER' +'LEFT' +'SEMI' +'RIGHT' +'FULL' +'NATURAL' +'ON' +'PIVOT' +'LATERAL' +'WINDOW' +'OVER' +'PARTITION' +'RANGE' +'ROWS' +'UNBOUNDED' +'PRECEDING' +'FOLLOWING' +'CURRENT' +'FIRST' +'AFTER' +'LAST' +'WITH' +'VALUES' +'CREATE' +'TABLE' +'DIRECTORY' +'VIEW' +'REPLACE' +'INSERT' +'DELETE' +'INTO' +'DESCRIBE' +'EXPLAIN' +'FORMAT' +'LOGICAL' +'CODEGEN' +'COST' +'CAST' +'SHOW' +'TABLES' +'COLUMNS' +'COLUMN' +'USE' +'PARTITIONS' +'FUNCTIONS' +'DROP' +'UNION' +'EXCEPT' +'SETMINUS' +'INTERSECT' +'TO' +'TABLESAMPLE' +'STRATIFY' +'ALTER' +'RENAME' +'STRUCT' +'COMMENT' +'SET' +'RESET' +'DATA' +'START' +'TRANSACTION' +'COMMIT' +'ROLLBACK' +'MACRO' +'IGNORE' +'BOTH' +'LEADING' +'TRAILING' +'IF' +'POSITION' +'EXTRACT' +'MINUS' +'DIV' +'PERCENTLIT' +'BUCKET' +'OUT' +'OF' +'SORT' +'CLUSTER' +'DISTRIBUTE' +'OVERWRITE' +'TRANSFORM' +'REDUCE' +'USING' +'SERDE' +'SERDEPROPERTIES' +'RECORDREADER' +'RECORDWRITER' +'DELIMITED' +'FIELDS' +'TERMINATED' +'COLLECTION' +'ITEMS' +'KEYS' +'ESCAPED' +'LINES' +'SEPARATED' +'FUNCTION' +'EXTENDED' +'REFRESH' +'CLEAR' +'CACHE' +'UNCACHE' +'LAZY' +'FORMATTED' +'GLOBAL' +'TEMPORARY' +'OPTIONS' +'UNSET' +'TBLPROPERTIES' +'DBPROPERTIES' +'BUCKETS' +'SKEWED' +'STORED' +'DIRECTORIES' +'LOCATION' +'EXCHANGE' +'ARCHIVE' +'UNARCHIVE' +'FILEFORMAT' +'TOUCH' +'COMPACT' +'CONCATENATE' +'CHANGE' +'CASCADE' +'CONSTRAINT' +'RESTRICT' +'CLUSTERED' +'SORTED' +'PURGE' +'INPUTFORMAT' +'OUTPUTFORMAT' +'DATABASE' +'DATABASES' +'DFS' +'TRUNCATE' +'ANALYZE' +'COMPUTE' +'LIST' +'STATISTICS' +'PARTITIONED' +'EXTERNAL' +'DEFINED' +'REVOKE' +'GRANT' +'LOCK' +'UNLOCK' +'MSCK' +'REPAIR' +'RECOVER' +'EXPORT' +'IMPORT' +'LOAD' +'ROLE' +'ROLES' +'COMPACTIONS' +'PRINCIPALS' +'TRANSACTIONS' +'INDEX' +'INDEXES' +'LOCKS' +'OPTION' +'ANTI' +'LOCAL' +'INPATH' +'WATERMARK' +'UNNEST' +'MATCH' +'NEXT' +'WITHIN' +'WS' +'SYSTEM' +'INCLUDING' +'EXCLUDING' +'CONSTRAINTS' +'GENERATED' +'CATALOG' +'LANGUAGE' +'CATALOGS' +'VIEWS' +'PRIMARY' +'KEY' +'PERIOD' +'SYSTEM_TIME' +'STRING' +'ARRAY' +'MAP' +'CHAR' +'VARCHAR' +'BINARY' +'VARBINARY' +'BYTES' +'DECIMAL' +'TINYINT' +'SMALLINT' +'INT' +'BIGINT' +'FLOAT' +'DOUBLE' +'DATE' +'TIME' +'TIMESTAMP' +'MULTISET' +'BOOLEAN' +'RAW' +'ROW' +'NULL' +'DATETIME' +'=' +'>' +'<' +'!' +'~' +'|' +'&' +'^' +'.' +'[' +']' +'(' +')' +',' +';' +'@' +'\'' +'"' +'`' +':' +'*' +'_' +'-' +'+' +'%' +'||' +'--' +'/' +null +null +null +null +null +null +null +null + +token symbolic names: +null +SPACE +COMMENT_INPUT +LINE_COMMENT +SELECT +FROM +ADD +AS +ALL +ANY +DISTINCT +WHERE +GROUP +BY +GROUPING +SETS +CUBE +ROLLUP +ORDER +HAVING +LIMIT +AT +OR +AND +IN +NOT +NO +EXISTS +BETWEEN +LIKE +RLIKE +IS +TRUE +FALSE +NULLS +ASC +DESC +FOR +INTERVAL +CASE +WHEN +THEN +ELSE +END +JOIN +CROSS +OUTER +INNER +LEFT +SEMI +RIGHT +FULL +NATURAL +ON +PIVOT +LATERAL +WINDOW +OVER +PARTITION +RANGE +ROWS +UNBOUNDED +PRECEDING +FOLLOWING +CURRENT +FIRST +AFTER +LAST +WITH +VALUES +CREATE +TABLE +DIRECTORY +VIEW +REPLACE +INSERT +DELETE +INTO +DESCRIBE +EXPLAIN +FORMAT +LOGICAL +CODEGEN +COST +CAST +SHOW +TABLES +COLUMNS +COLUMN +USE +PARTITIONS +FUNCTIONS +DROP +UNION +EXCEPT +SETMINUS +INTERSECT +TO +TABLESAMPLE +STRATIFY +ALTER +RENAME +STRUCT +COMMENT +SET +RESET +DATA +START +TRANSACTION +COMMIT +ROLLBACK +MACRO +IGNORE +BOTH +LEADING +TRAILING +IF +POSITION +EXTRACT +MINUS +DIV +PERCENTLIT +BUCKET +OUT +OF +SORT +CLUSTER +DISTRIBUTE +OVERWRITE +TRANSFORM +REDUCE +USING +SERDE +SERDEPROPERTIES +RECORDREADER +RECORDWRITER +DELIMITED +FIELDS +TERMINATED +COLLECTION +ITEMS +KEYS +ESCAPED +LINES +SEPARATED +FUNCTION +EXTENDED +REFRESH +CLEAR +CACHE +UNCACHE +LAZY +FORMATTED +GLOBAL +TEMPORARY +OPTIONS +UNSET +TBLPROPERTIES +DBPROPERTIES +BUCKETS +SKEWED +STORED +DIRECTORIES +LOCATION +EXCHANGE +ARCHIVE +UNARCHIVE +FILEFORMAT +TOUCH +COMPACT +CONCATENATE +CHANGE +CASCADE +CONSTRAINT +RESTRICT +CLUSTERED +SORTED +PURGE +INPUTFORMAT +OUTPUTFORMAT +DATABASE +DATABASES +DFS +TRUNCATE +ANALYZE +COMPUTE +LIST +STATISTICS +PARTITIONED +EXTERNAL +DEFINED +REVOKE +GRANT +LOCK +UNLOCK +MSCK +REPAIR +RECOVER +EXPORT +IMPORT +LOAD +ROLE +ROLES +COMPACTIONS +PRINCIPALS +TRANSACTIONS +INDEX +INDEXES +LOCKS +OPTION +ANTI +LOCAL +INPATH +WATERMARK +UNNEST +MATCH +NEXT +WITHIN +WS +SYSTEM +INCLUDING +EXCLUDING +CONSTRAINTS +GENERATED +CATALOG +LANGUAGE +CATALOGS +VIEWS +PRIMARY +KEY +PERIOD +SYSTEM_TIME +STRING +ARRAY +MAP +CHAR +VARCHAR +BINARY +VARBINARY +BYTES +DECIMAL +TINYINT +SMALLINT +INT +BIGINT +FLOAT +DOUBLE +DATE +TIME +TIMESTAMP +MULTISET +BOOLEAN +RAW +ROW +NULL +DATETIME +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LS_BRACKET +RS_BRACKET +LR_BRACKET +RR_BRACKET +COMMA +SEMICOLON +AT_SIGN +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +ASTERISK_SIGN +UNDERLINE_SIGN +HYPNEN_SIGN +ADD_SIGN +PENCENT_SIGN +DOUBLE_VERTICAL_SIGN +DOUBLE_HYPNEN_SIGN +SLASH_SIGN +DOT_ID +PLUS_DOT_ID +STRING_LITERAL +DIG_LITERAL +REAL_LITERAL +BIT_STRING +ID_LITERAL +PLUS_ID_LITERAL + +rule names: +SPACE +COMMENT_INPUT +LINE_COMMENT +SELECT +FROM +ADD +AS +ALL +ANY +DISTINCT +WHERE +GROUP +BY +GROUPING +SETS +CUBE +ROLLUP +ORDER +HAVING +LIMIT +AT +OR +AND +IN +NOT +NO +EXISTS +BETWEEN +LIKE +RLIKE +IS +TRUE +FALSE +NULLS +ASC +DESC +FOR +INTERVAL +CASE +WHEN +THEN +ELSE +END +JOIN +CROSS +OUTER +INNER +LEFT +SEMI +RIGHT +FULL +NATURAL +ON +PIVOT +LATERAL +WINDOW +OVER +PARTITION +RANGE +ROWS +UNBOUNDED +PRECEDING +FOLLOWING +CURRENT +FIRST +AFTER +LAST +WITH +VALUES +CREATE +TABLE +DIRECTORY +VIEW +REPLACE +INSERT +DELETE +INTO +DESCRIBE +EXPLAIN +FORMAT +LOGICAL +CODEGEN +COST +CAST +SHOW +TABLES +COLUMNS +COLUMN +USE +PARTITIONS +FUNCTIONS +DROP +UNION +EXCEPT +SETMINUS +INTERSECT +TO +TABLESAMPLE +STRATIFY +ALTER +RENAME +STRUCT +COMMENT +SET +RESET +DATA +START +TRANSACTION +COMMIT +ROLLBACK +MACRO +IGNORE +BOTH +LEADING +TRAILING +IF +POSITION +EXTRACT +MINUS +DIV +PERCENTLIT +BUCKET +OUT +OF +SORT +CLUSTER +DISTRIBUTE +OVERWRITE +TRANSFORM +REDUCE +USING +SERDE +SERDEPROPERTIES +RECORDREADER +RECORDWRITER +DELIMITED +FIELDS +TERMINATED +COLLECTION +ITEMS +KEYS +ESCAPED +LINES +SEPARATED +FUNCTION +EXTENDED +REFRESH +CLEAR +CACHE +UNCACHE +LAZY +FORMATTED +GLOBAL +TEMPORARY +OPTIONS +UNSET +TBLPROPERTIES +DBPROPERTIES +BUCKETS +SKEWED +STORED +DIRECTORIES +LOCATION +EXCHANGE +ARCHIVE +UNARCHIVE +FILEFORMAT +TOUCH +COMPACT +CONCATENATE +CHANGE +CASCADE +CONSTRAINT +RESTRICT +CLUSTERED +SORTED +PURGE +INPUTFORMAT +OUTPUTFORMAT +DATABASE +DATABASES +DFS +TRUNCATE +ANALYZE +COMPUTE +LIST +STATISTICS +PARTITIONED +EXTERNAL +DEFINED +REVOKE +GRANT +LOCK +UNLOCK +MSCK +REPAIR +RECOVER +EXPORT +IMPORT +LOAD +ROLE +ROLES +COMPACTIONS +PRINCIPALS +TRANSACTIONS +INDEX +INDEXES +LOCKS +OPTION +ANTI +LOCAL +INPATH +WATERMARK +UNNEST +MATCH +NEXT +WITHIN +WS +SYSTEM +INCLUDING +EXCLUDING +CONSTRAINTS +GENERATED +CATALOG +LANGUAGE +CATALOGS +VIEWS +PRIMARY +KEY +PERIOD +SYSTEM_TIME +STRING +ARRAY +MAP +CHAR +VARCHAR +BINARY +VARBINARY +BYTES +DECIMAL +TINYINT +SMALLINT +INT +BIGINT +FLOAT +DOUBLE +DATE +TIME +TIMESTAMP +MULTISET +BOOLEAN +RAW +ROW +NULL +DATETIME +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LS_BRACKET +RS_BRACKET +LR_BRACKET +RR_BRACKET +COMMA +SEMICOLON +AT_SIGN +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +ASTERISK_SIGN +UNDERLINE_SIGN +HYPNEN_SIGN +ADD_SIGN +PENCENT_SIGN +DOUBLE_VERTICAL_SIGN +DOUBLE_HYPNEN_SIGN +SLASH_SIGN +DOT_ID +PLUS_DOT_ID +STRING_LITERAL +DIG_LITERAL +REAL_LITERAL +BIT_STRING +ID_LITERAL +PLUS_ID_LITERAL +EXPONENT_NUM_PART +ID_LITERAL_FRAG +PLUS_ID_LITERAL_FRAG +DEC_DIGIT +DEC_LETTER +DQUOTA_STRING +SQUOTA_STRING +BIT_STRING_L +BQUOTA_STRING + +channel names: +DEFAULT_TOKEN_CHANNEL +HIDDEN + +mode names: +DEFAULT_MODE + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 293, 2687, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 3, 2, 6, 2, 605, 10, 2, 13, 2, 14, 2, 606, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 615, 10, 3, 12, 3, 14, 3, 618, 11, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 629, 10, 4, 3, 4, 7, 4, 632, 10, 4, 12, 4, 14, 4, 635, 11, 4, 3, 4, 5, 4, 638, 10, 4, 3, 4, 3, 4, 5, 4, 642, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 648, 10, 4, 3, 4, 3, 4, 5, 4, 652, 10, 4, 5, 4, 654, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 257, 3, 257, 3, 258, 3, 258, 3, 259, 3, 259, 3, 260, 3, 260, 3, 261, 3, 261, 3, 262, 3, 262, 3, 263, 3, 263, 3, 264, 3, 264, 3, 265, 3, 265, 3, 266, 3, 266, 3, 267, 3, 267, 3, 268, 3, 268, 3, 269, 3, 269, 3, 270, 3, 270, 3, 271, 3, 271, 3, 272, 3, 272, 3, 273, 3, 273, 3, 274, 3, 274, 3, 275, 3, 275, 3, 276, 3, 276, 3, 277, 3, 277, 3, 278, 3, 278, 3, 279, 3, 279, 3, 280, 3, 280, 3, 281, 3, 281, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 285, 3, 285, 3, 285, 3, 286, 3, 286, 3, 286, 3, 287, 3, 287, 3, 287, 5, 287, 2535, 10, 287, 3, 288, 6, 288, 2538, 10, 288, 13, 288, 14, 288, 2539, 3, 289, 6, 289, 2543, 10, 289, 13, 289, 14, 289, 2544, 5, 289, 2547, 10, 289, 3, 289, 3, 289, 6, 289, 2551, 10, 289, 13, 289, 14, 289, 2552, 3, 289, 6, 289, 2556, 10, 289, 13, 289, 14, 289, 2557, 3, 289, 3, 289, 3, 289, 3, 289, 6, 289, 2564, 10, 289, 13, 289, 14, 289, 2565, 5, 289, 2568, 10, 289, 3, 289, 3, 289, 6, 289, 2572, 10, 289, 13, 289, 14, 289, 2573, 3, 289, 3, 289, 3, 289, 6, 289, 2579, 10, 289, 13, 289, 14, 289, 2580, 3, 289, 3, 289, 5, 289, 2585, 10, 289, 3, 290, 3, 290, 3, 291, 3, 291, 3, 292, 3, 292, 3, 293, 3, 293, 5, 293, 2595, 10, 293, 3, 293, 6, 293, 2598, 10, 293, 13, 293, 14, 293, 2599, 3, 294, 7, 294, 2603, 10, 294, 12, 294, 14, 294, 2606, 11, 294, 3, 294, 6, 294, 2609, 10, 294, 13, 294, 14, 294, 2610, 3, 294, 7, 294, 2614, 10, 294, 12, 294, 14, 294, 2617, 11, 294, 3, 295, 7, 295, 2620, 10, 295, 12, 295, 14, 295, 2623, 11, 295, 3, 295, 6, 295, 2626, 10, 295, 13, 295, 14, 295, 2627, 3, 295, 7, 295, 2631, 10, 295, 12, 295, 14, 295, 2634, 11, 295, 3, 296, 3, 296, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 3, 298, 7, 298, 2646, 10, 298, 12, 298, 14, 298, 2649, 11, 298, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 7, 299, 2659, 10, 299, 12, 299, 14, 299, 2662, 11, 299, 3, 299, 3, 299, 3, 300, 3, 300, 3, 300, 6, 300, 2669, 10, 300, 13, 300, 14, 300, 2670, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 7, 301, 2681, 10, 301, 12, 301, 14, 301, 2684, 11, 301, 3, 301, 3, 301, 7, 616, 2604, 2610, 2621, 2627, 2, 302, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 465, 234, 467, 235, 469, 236, 471, 237, 473, 238, 475, 239, 477, 240, 479, 241, 481, 242, 483, 243, 485, 244, 487, 245, 489, 246, 491, 247, 493, 248, 495, 249, 497, 250, 499, 251, 501, 252, 503, 253, 505, 254, 507, 255, 509, 256, 511, 257, 513, 258, 515, 259, 517, 260, 519, 261, 521, 262, 523, 263, 525, 264, 527, 265, 529, 266, 531, 267, 533, 268, 535, 269, 537, 270, 539, 271, 541, 272, 543, 273, 545, 274, 547, 275, 549, 276, 551, 277, 553, 278, 555, 279, 557, 280, 559, 281, 561, 282, 563, 283, 565, 284, 567, 285, 569, 286, 571, 287, 573, 288, 575, 289, 577, 290, 579, 291, 581, 292, 583, 293, 585, 2, 587, 2, 589, 2, 591, 2, 593, 2, 595, 2, 597, 2, 599, 2, 601, 2, 3, 2, 16, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 12, 12, 15, 15, 4, 2, 48, 48, 60, 60, 4, 2, 45, 45, 47, 47, 6, 2, 50, 59, 67, 92, 97, 97, 99, 124, 5, 2, 67, 92, 97, 97, 99, 124, 9, 2, 37, 40, 44, 44, 50, 59, 66, 92, 96, 97, 99, 125, 127, 127, 8, 2, 37, 40, 44, 44, 66, 92, 96, 97, 99, 125, 127, 127, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 4, 2, 36, 36, 94, 94, 4, 2, 41, 41, 94, 94, 3, 2, 50, 51, 4, 2, 94, 94, 98, 98, 2, 2718, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 519, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 535, 3, 2, 2, 2, 2, 537, 3, 2, 2, 2, 2, 539, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 545, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 2, 559, 3, 2, 2, 2, 2, 561, 3, 2, 2, 2, 2, 563, 3, 2, 2, 2, 2, 565, 3, 2, 2, 2, 2, 567, 3, 2, 2, 2, 2, 569, 3, 2, 2, 2, 2, 571, 3, 2, 2, 2, 2, 573, 3, 2, 2, 2, 2, 575, 3, 2, 2, 2, 2, 577, 3, 2, 2, 2, 2, 579, 3, 2, 2, 2, 2, 581, 3, 2, 2, 2, 2, 583, 3, 2, 2, 2, 3, 604, 3, 2, 2, 2, 5, 610, 3, 2, 2, 2, 7, 653, 3, 2, 2, 2, 9, 657, 3, 2, 2, 2, 11, 664, 3, 2, 2, 2, 13, 669, 3, 2, 2, 2, 15, 673, 3, 2, 2, 2, 17, 676, 3, 2, 2, 2, 19, 680, 3, 2, 2, 2, 21, 684, 3, 2, 2, 2, 23, 693, 3, 2, 2, 2, 25, 699, 3, 2, 2, 2, 27, 705, 3, 2, 2, 2, 29, 708, 3, 2, 2, 2, 31, 717, 3, 2, 2, 2, 33, 722, 3, 2, 2, 2, 35, 727, 3, 2, 2, 2, 37, 734, 3, 2, 2, 2, 39, 740, 3, 2, 2, 2, 41, 747, 3, 2, 2, 2, 43, 753, 3, 2, 2, 2, 45, 756, 3, 2, 2, 2, 47, 759, 3, 2, 2, 2, 49, 763, 3, 2, 2, 2, 51, 766, 3, 2, 2, 2, 53, 770, 3, 2, 2, 2, 55, 773, 3, 2, 2, 2, 57, 780, 3, 2, 2, 2, 59, 788, 3, 2, 2, 2, 61, 793, 3, 2, 2, 2, 63, 799, 3, 2, 2, 2, 65, 802, 3, 2, 2, 2, 67, 807, 3, 2, 2, 2, 69, 813, 3, 2, 2, 2, 71, 819, 3, 2, 2, 2, 73, 823, 3, 2, 2, 2, 75, 828, 3, 2, 2, 2, 77, 832, 3, 2, 2, 2, 79, 841, 3, 2, 2, 2, 81, 846, 3, 2, 2, 2, 83, 851, 3, 2, 2, 2, 85, 856, 3, 2, 2, 2, 87, 861, 3, 2, 2, 2, 89, 865, 3, 2, 2, 2, 91, 870, 3, 2, 2, 2, 93, 876, 3, 2, 2, 2, 95, 882, 3, 2, 2, 2, 97, 888, 3, 2, 2, 2, 99, 893, 3, 2, 2, 2, 101, 898, 3, 2, 2, 2, 103, 904, 3, 2, 2, 2, 105, 909, 3, 2, 2, 2, 107, 917, 3, 2, 2, 2, 109, 920, 3, 2, 2, 2, 111, 926, 3, 2, 2, 2, 113, 934, 3, 2, 2, 2, 115, 941, 3, 2, 2, 2, 117, 946, 3, 2, 2, 2, 119, 956, 3, 2, 2, 2, 121, 962, 3, 2, 2, 2, 123, 967, 3, 2, 2, 2, 125, 977, 3, 2, 2, 2, 127, 987, 3, 2, 2, 2, 129, 997, 3, 2, 2, 2, 131, 1005, 3, 2, 2, 2, 133, 1011, 3, 2, 2, 2, 135, 1017, 3, 2, 2, 2, 137, 1022, 3, 2, 2, 2, 139, 1027, 3, 2, 2, 2, 141, 1034, 3, 2, 2, 2, 143, 1041, 3, 2, 2, 2, 145, 1047, 3, 2, 2, 2, 147, 1057, 3, 2, 2, 2, 149, 1062, 3, 2, 2, 2, 151, 1070, 3, 2, 2, 2, 153, 1077, 3, 2, 2, 2, 155, 1084, 3, 2, 2, 2, 157, 1089, 3, 2, 2, 2, 159, 1098, 3, 2, 2, 2, 161, 1106, 3, 2, 2, 2, 163, 1113, 3, 2, 2, 2, 165, 1121, 3, 2, 2, 2, 167, 1129, 3, 2, 2, 2, 169, 1134, 3, 2, 2, 2, 171, 1139, 3, 2, 2, 2, 173, 1144, 3, 2, 2, 2, 175, 1151, 3, 2, 2, 2, 177, 1159, 3, 2, 2, 2, 179, 1166, 3, 2, 2, 2, 181, 1170, 3, 2, 2, 2, 183, 1181, 3, 2, 2, 2, 185, 1191, 3, 2, 2, 2, 187, 1196, 3, 2, 2, 2, 189, 1202, 3, 2, 2, 2, 191, 1209, 3, 2, 2, 2, 193, 1218, 3, 2, 2, 2, 195, 1228, 3, 2, 2, 2, 197, 1231, 3, 2, 2, 2, 199, 1243, 3, 2, 2, 2, 201, 1252, 3, 2, 2, 2, 203, 1258, 3, 2, 2, 2, 205, 1265, 3, 2, 2, 2, 207, 1272, 3, 2, 2, 2, 209, 1280, 3, 2, 2, 2, 211, 1284, 3, 2, 2, 2, 213, 1290, 3, 2, 2, 2, 215, 1295, 3, 2, 2, 2, 217, 1301, 3, 2, 2, 2, 219, 1313, 3, 2, 2, 2, 221, 1320, 3, 2, 2, 2, 223, 1329, 3, 2, 2, 2, 225, 1335, 3, 2, 2, 2, 227, 1342, 3, 2, 2, 2, 229, 1347, 3, 2, 2, 2, 231, 1355, 3, 2, 2, 2, 233, 1364, 3, 2, 2, 2, 235, 1367, 3, 2, 2, 2, 237, 1376, 3, 2, 2, 2, 239, 1384, 3, 2, 2, 2, 241, 1390, 3, 2, 2, 2, 243, 1394, 3, 2, 2, 2, 245, 1405, 3, 2, 2, 2, 247, 1412, 3, 2, 2, 2, 249, 1416, 3, 2, 2, 2, 251, 1419, 3, 2, 2, 2, 253, 1424, 3, 2, 2, 2, 255, 1432, 3, 2, 2, 2, 257, 1443, 3, 2, 2, 2, 259, 1453, 3, 2, 2, 2, 261, 1463, 3, 2, 2, 2, 263, 1470, 3, 2, 2, 2, 265, 1476, 3, 2, 2, 2, 267, 1482, 3, 2, 2, 2, 269, 1498, 3, 2, 2, 2, 271, 1511, 3, 2, 2, 2, 273, 1524, 3, 2, 2, 2, 275, 1534, 3, 2, 2, 2, 277, 1541, 3, 2, 2, 2, 279, 1552, 3, 2, 2, 2, 281, 1563, 3, 2, 2, 2, 283, 1569, 3, 2, 2, 2, 285, 1574, 3, 2, 2, 2, 287, 1582, 3, 2, 2, 2, 289, 1588, 3, 2, 2, 2, 291, 1598, 3, 2, 2, 2, 293, 1607, 3, 2, 2, 2, 295, 1616, 3, 2, 2, 2, 297, 1624, 3, 2, 2, 2, 299, 1630, 3, 2, 2, 2, 301, 1636, 3, 2, 2, 2, 303, 1644, 3, 2, 2, 2, 305, 1649, 3, 2, 2, 2, 307, 1659, 3, 2, 2, 2, 309, 1666, 3, 2, 2, 2, 311, 1676, 3, 2, 2, 2, 313, 1684, 3, 2, 2, 2, 315, 1690, 3, 2, 2, 2, 317, 1704, 3, 2, 2, 2, 319, 1717, 3, 2, 2, 2, 321, 1725, 3, 2, 2, 2, 323, 1732, 3, 2, 2, 2, 325, 1739, 3, 2, 2, 2, 327, 1751, 3, 2, 2, 2, 329, 1760, 3, 2, 2, 2, 331, 1769, 3, 2, 2, 2, 333, 1777, 3, 2, 2, 2, 335, 1787, 3, 2, 2, 2, 337, 1798, 3, 2, 2, 2, 339, 1804, 3, 2, 2, 2, 341, 1812, 3, 2, 2, 2, 343, 1824, 3, 2, 2, 2, 345, 1831, 3, 2, 2, 2, 347, 1839, 3, 2, 2, 2, 349, 1850, 3, 2, 2, 2, 351, 1859, 3, 2, 2, 2, 353, 1869, 3, 2, 2, 2, 355, 1876, 3, 2, 2, 2, 357, 1882, 3, 2, 2, 2, 359, 1894, 3, 2, 2, 2, 361, 1907, 3, 2, 2, 2, 363, 1916, 3, 2, 2, 2, 365, 1926, 3, 2, 2, 2, 367, 1930, 3, 2, 2, 2, 369, 1939, 3, 2, 2, 2, 371, 1947, 3, 2, 2, 2, 373, 1955, 3, 2, 2, 2, 375, 1960, 3, 2, 2, 2, 377, 1971, 3, 2, 2, 2, 379, 1983, 3, 2, 2, 2, 381, 1992, 3, 2, 2, 2, 383, 2000, 3, 2, 2, 2, 385, 2007, 3, 2, 2, 2, 387, 2013, 3, 2, 2, 2, 389, 2018, 3, 2, 2, 2, 391, 2025, 3, 2, 2, 2, 393, 2030, 3, 2, 2, 2, 395, 2037, 3, 2, 2, 2, 397, 2045, 3, 2, 2, 2, 399, 2052, 3, 2, 2, 2, 401, 2059, 3, 2, 2, 2, 403, 2064, 3, 2, 2, 2, 405, 2069, 3, 2, 2, 2, 407, 2075, 3, 2, 2, 2, 409, 2087, 3, 2, 2, 2, 411, 2098, 3, 2, 2, 2, 413, 2111, 3, 2, 2, 2, 415, 2117, 3, 2, 2, 2, 417, 2125, 3, 2, 2, 2, 419, 2131, 3, 2, 2, 2, 421, 2138, 3, 2, 2, 2, 423, 2143, 3, 2, 2, 2, 425, 2149, 3, 2, 2, 2, 427, 2156, 3, 2, 2, 2, 429, 2166, 3, 2, 2, 2, 431, 2173, 3, 2, 2, 2, 433, 2179, 3, 2, 2, 2, 435, 2184, 3, 2, 2, 2, 437, 2191, 3, 2, 2, 2, 439, 2194, 3, 2, 2, 2, 441, 2201, 3, 2, 2, 2, 443, 2211, 3, 2, 2, 2, 445, 2221, 3, 2, 2, 2, 447, 2233, 3, 2, 2, 2, 449, 2243, 3, 2, 2, 2, 451, 2251, 3, 2, 2, 2, 453, 2260, 3, 2, 2, 2, 455, 2269, 3, 2, 2, 2, 457, 2275, 3, 2, 2, 2, 459, 2283, 3, 2, 2, 2, 461, 2287, 3, 2, 2, 2, 463, 2294, 3, 2, 2, 2, 465, 2306, 3, 2, 2, 2, 467, 2313, 3, 2, 2, 2, 469, 2319, 3, 2, 2, 2, 471, 2323, 3, 2, 2, 2, 473, 2328, 3, 2, 2, 2, 475, 2336, 3, 2, 2, 2, 477, 2343, 3, 2, 2, 2, 479, 2353, 3, 2, 2, 2, 481, 2359, 3, 2, 2, 2, 483, 2367, 3, 2, 2, 2, 485, 2375, 3, 2, 2, 2, 487, 2384, 3, 2, 2, 2, 489, 2388, 3, 2, 2, 2, 491, 2395, 3, 2, 2, 2, 493, 2401, 3, 2, 2, 2, 495, 2408, 3, 2, 2, 2, 497, 2413, 3, 2, 2, 2, 499, 2418, 3, 2, 2, 2, 501, 2428, 3, 2, 2, 2, 503, 2437, 3, 2, 2, 2, 505, 2445, 3, 2, 2, 2, 507, 2449, 3, 2, 2, 2, 509, 2453, 3, 2, 2, 2, 511, 2458, 3, 2, 2, 2, 513, 2467, 3, 2, 2, 2, 515, 2469, 3, 2, 2, 2, 517, 2471, 3, 2, 2, 2, 519, 2473, 3, 2, 2, 2, 521, 2475, 3, 2, 2, 2, 523, 2477, 3, 2, 2, 2, 525, 2479, 3, 2, 2, 2, 527, 2481, 3, 2, 2, 2, 529, 2483, 3, 2, 2, 2, 531, 2485, 3, 2, 2, 2, 533, 2487, 3, 2, 2, 2, 535, 2489, 3, 2, 2, 2, 537, 2491, 3, 2, 2, 2, 539, 2493, 3, 2, 2, 2, 541, 2495, 3, 2, 2, 2, 543, 2497, 3, 2, 2, 2, 545, 2499, 3, 2, 2, 2, 547, 2501, 3, 2, 2, 2, 549, 2503, 3, 2, 2, 2, 551, 2505, 3, 2, 2, 2, 553, 2507, 3, 2, 2, 2, 555, 2509, 3, 2, 2, 2, 557, 2511, 3, 2, 2, 2, 559, 2513, 3, 2, 2, 2, 561, 2515, 3, 2, 2, 2, 563, 2517, 3, 2, 2, 2, 565, 2520, 3, 2, 2, 2, 567, 2523, 3, 2, 2, 2, 569, 2525, 3, 2, 2, 2, 571, 2528, 3, 2, 2, 2, 573, 2534, 3, 2, 2, 2, 575, 2537, 3, 2, 2, 2, 577, 2584, 3, 2, 2, 2, 579, 2586, 3, 2, 2, 2, 581, 2588, 3, 2, 2, 2, 583, 2590, 3, 2, 2, 2, 585, 2592, 3, 2, 2, 2, 587, 2604, 3, 2, 2, 2, 589, 2621, 3, 2, 2, 2, 591, 2635, 3, 2, 2, 2, 593, 2637, 3, 2, 2, 2, 595, 2639, 3, 2, 2, 2, 597, 2652, 3, 2, 2, 2, 599, 2665, 3, 2, 2, 2, 601, 2674, 3, 2, 2, 2, 603, 605, 9, 2, 2, 2, 604, 603, 3, 2, 2, 2, 605, 606, 3, 2, 2, 2, 606, 604, 3, 2, 2, 2, 606, 607, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 609, 8, 2, 2, 2, 609, 4, 3, 2, 2, 2, 610, 611, 7, 49, 2, 2, 611, 612, 7, 44, 2, 2, 612, 616, 3, 2, 2, 2, 613, 615, 11, 2, 2, 2, 614, 613, 3, 2, 2, 2, 615, 618, 3, 2, 2, 2, 616, 617, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 617, 619, 3, 2, 2, 2, 618, 616, 3, 2, 2, 2, 619, 620, 7, 44, 2, 2, 620, 621, 7, 49, 2, 2, 621, 622, 3, 2, 2, 2, 622, 623, 8, 3, 2, 2, 623, 6, 3, 2, 2, 2, 624, 625, 7, 47, 2, 2, 625, 626, 7, 47, 2, 2, 626, 629, 7, 34, 2, 2, 627, 629, 7, 37, 2, 2, 628, 624, 3, 2, 2, 2, 628, 627, 3, 2, 2, 2, 629, 633, 3, 2, 2, 2, 630, 632, 10, 3, 2, 2, 631, 630, 3, 2, 2, 2, 632, 635, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 641, 3, 2, 2, 2, 635, 633, 3, 2, 2, 2, 636, 638, 7, 15, 2, 2, 637, 636, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 642, 7, 12, 2, 2, 640, 642, 7, 2, 2, 3, 641, 637, 3, 2, 2, 2, 641, 640, 3, 2, 2, 2, 642, 654, 3, 2, 2, 2, 643, 644, 7, 47, 2, 2, 644, 645, 7, 47, 2, 2, 645, 651, 3, 2, 2, 2, 646, 648, 7, 15, 2, 2, 647, 646, 3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 652, 7, 12, 2, 2, 650, 652, 7, 2, 2, 3, 651, 647, 3, 2, 2, 2, 651, 650, 3, 2, 2, 2, 652, 654, 3, 2, 2, 2, 653, 628, 3, 2, 2, 2, 653, 643, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 656, 8, 4, 2, 2, 656, 8, 3, 2, 2, 2, 657, 658, 7, 85, 2, 2, 658, 659, 7, 71, 2, 2, 659, 660, 7, 78, 2, 2, 660, 661, 7, 71, 2, 2, 661, 662, 7, 69, 2, 2, 662, 663, 7, 86, 2, 2, 663, 10, 3, 2, 2, 2, 664, 665, 7, 72, 2, 2, 665, 666, 7, 84, 2, 2, 666, 667, 7, 81, 2, 2, 667, 668, 7, 79, 2, 2, 668, 12, 3, 2, 2, 2, 669, 670, 7, 67, 2, 2, 670, 671, 7, 70, 2, 2, 671, 672, 7, 70, 2, 2, 672, 14, 3, 2, 2, 2, 673, 674, 7, 67, 2, 2, 674, 675, 7, 85, 2, 2, 675, 16, 3, 2, 2, 2, 676, 677, 7, 67, 2, 2, 677, 678, 7, 78, 2, 2, 678, 679, 7, 78, 2, 2, 679, 18, 3, 2, 2, 2, 680, 681, 7, 67, 2, 2, 681, 682, 7, 80, 2, 2, 682, 683, 7, 91, 2, 2, 683, 20, 3, 2, 2, 2, 684, 685, 7, 70, 2, 2, 685, 686, 7, 75, 2, 2, 686, 687, 7, 85, 2, 2, 687, 688, 7, 86, 2, 2, 688, 689, 7, 75, 2, 2, 689, 690, 7, 80, 2, 2, 690, 691, 7, 69, 2, 2, 691, 692, 7, 86, 2, 2, 692, 22, 3, 2, 2, 2, 693, 694, 7, 89, 2, 2, 694, 695, 7, 74, 2, 2, 695, 696, 7, 71, 2, 2, 696, 697, 7, 84, 2, 2, 697, 698, 7, 71, 2, 2, 698, 24, 3, 2, 2, 2, 699, 700, 7, 73, 2, 2, 700, 701, 7, 84, 2, 2, 701, 702, 7, 81, 2, 2, 702, 703, 7, 87, 2, 2, 703, 704, 7, 82, 2, 2, 704, 26, 3, 2, 2, 2, 705, 706, 7, 68, 2, 2, 706, 707, 7, 91, 2, 2, 707, 28, 3, 2, 2, 2, 708, 709, 7, 73, 2, 2, 709, 710, 7, 84, 2, 2, 710, 711, 7, 81, 2, 2, 711, 712, 7, 87, 2, 2, 712, 713, 7, 82, 2, 2, 713, 714, 7, 75, 2, 2, 714, 715, 7, 80, 2, 2, 715, 716, 7, 73, 2, 2, 716, 30, 3, 2, 2, 2, 717, 718, 7, 85, 2, 2, 718, 719, 7, 71, 2, 2, 719, 720, 7, 86, 2, 2, 720, 721, 7, 85, 2, 2, 721, 32, 3, 2, 2, 2, 722, 723, 7, 69, 2, 2, 723, 724, 7, 87, 2, 2, 724, 725, 7, 68, 2, 2, 725, 726, 7, 71, 2, 2, 726, 34, 3, 2, 2, 2, 727, 728, 7, 84, 2, 2, 728, 729, 7, 81, 2, 2, 729, 730, 7, 78, 2, 2, 730, 731, 7, 78, 2, 2, 731, 732, 7, 87, 2, 2, 732, 733, 7, 82, 2, 2, 733, 36, 3, 2, 2, 2, 734, 735, 7, 81, 2, 2, 735, 736, 7, 84, 2, 2, 736, 737, 7, 70, 2, 2, 737, 738, 7, 71, 2, 2, 738, 739, 7, 84, 2, 2, 739, 38, 3, 2, 2, 2, 740, 741, 7, 74, 2, 2, 741, 742, 7, 67, 2, 2, 742, 743, 7, 88, 2, 2, 743, 744, 7, 75, 2, 2, 744, 745, 7, 80, 2, 2, 745, 746, 7, 73, 2, 2, 746, 40, 3, 2, 2, 2, 747, 748, 7, 78, 2, 2, 748, 749, 7, 75, 2, 2, 749, 750, 7, 79, 2, 2, 750, 751, 7, 75, 2, 2, 751, 752, 7, 86, 2, 2, 752, 42, 3, 2, 2, 2, 753, 754, 7, 67, 2, 2, 754, 755, 7, 86, 2, 2, 755, 44, 3, 2, 2, 2, 756, 757, 7, 81, 2, 2, 757, 758, 7, 84, 2, 2, 758, 46, 3, 2, 2, 2, 759, 760, 7, 67, 2, 2, 760, 761, 7, 80, 2, 2, 761, 762, 7, 70, 2, 2, 762, 48, 3, 2, 2, 2, 763, 764, 7, 75, 2, 2, 764, 765, 7, 80, 2, 2, 765, 50, 3, 2, 2, 2, 766, 767, 7, 80, 2, 2, 767, 768, 7, 81, 2, 2, 768, 769, 7, 86, 2, 2, 769, 52, 3, 2, 2, 2, 770, 771, 7, 80, 2, 2, 771, 772, 7, 81, 2, 2, 772, 54, 3, 2, 2, 2, 773, 774, 7, 71, 2, 2, 774, 775, 7, 90, 2, 2, 775, 776, 7, 75, 2, 2, 776, 777, 7, 85, 2, 2, 777, 778, 7, 86, 2, 2, 778, 779, 7, 85, 2, 2, 779, 56, 3, 2, 2, 2, 780, 781, 7, 68, 2, 2, 781, 782, 7, 71, 2, 2, 782, 783, 7, 86, 2, 2, 783, 784, 7, 89, 2, 2, 784, 785, 7, 71, 2, 2, 785, 786, 7, 71, 2, 2, 786, 787, 7, 80, 2, 2, 787, 58, 3, 2, 2, 2, 788, 789, 7, 78, 2, 2, 789, 790, 7, 75, 2, 2, 790, 791, 7, 77, 2, 2, 791, 792, 7, 71, 2, 2, 792, 60, 3, 2, 2, 2, 793, 794, 7, 84, 2, 2, 794, 795, 7, 78, 2, 2, 795, 796, 7, 75, 2, 2, 796, 797, 7, 77, 2, 2, 797, 798, 7, 71, 2, 2, 798, 62, 3, 2, 2, 2, 799, 800, 7, 75, 2, 2, 800, 801, 7, 85, 2, 2, 801, 64, 3, 2, 2, 2, 802, 803, 7, 86, 2, 2, 803, 804, 7, 84, 2, 2, 804, 805, 7, 87, 2, 2, 805, 806, 7, 71, 2, 2, 806, 66, 3, 2, 2, 2, 807, 808, 7, 72, 2, 2, 808, 809, 7, 67, 2, 2, 809, 810, 7, 78, 2, 2, 810, 811, 7, 85, 2, 2, 811, 812, 7, 71, 2, 2, 812, 68, 3, 2, 2, 2, 813, 814, 7, 80, 2, 2, 814, 815, 7, 87, 2, 2, 815, 816, 7, 78, 2, 2, 816, 817, 7, 78, 2, 2, 817, 818, 7, 85, 2, 2, 818, 70, 3, 2, 2, 2, 819, 820, 7, 67, 2, 2, 820, 821, 7, 85, 2, 2, 821, 822, 7, 69, 2, 2, 822, 72, 3, 2, 2, 2, 823, 824, 7, 70, 2, 2, 824, 825, 7, 71, 2, 2, 825, 826, 7, 85, 2, 2, 826, 827, 7, 69, 2, 2, 827, 74, 3, 2, 2, 2, 828, 829, 7, 72, 2, 2, 829, 830, 7, 81, 2, 2, 830, 831, 7, 84, 2, 2, 831, 76, 3, 2, 2, 2, 832, 833, 7, 75, 2, 2, 833, 834, 7, 80, 2, 2, 834, 835, 7, 86, 2, 2, 835, 836, 7, 71, 2, 2, 836, 837, 7, 84, 2, 2, 837, 838, 7, 88, 2, 2, 838, 839, 7, 67, 2, 2, 839, 840, 7, 78, 2, 2, 840, 78, 3, 2, 2, 2, 841, 842, 7, 69, 2, 2, 842, 843, 7, 67, 2, 2, 843, 844, 7, 85, 2, 2, 844, 845, 7, 71, 2, 2, 845, 80, 3, 2, 2, 2, 846, 847, 7, 89, 2, 2, 847, 848, 7, 74, 2, 2, 848, 849, 7, 71, 2, 2, 849, 850, 7, 80, 2, 2, 850, 82, 3, 2, 2, 2, 851, 852, 7, 86, 2, 2, 852, 853, 7, 74, 2, 2, 853, 854, 7, 71, 2, 2, 854, 855, 7, 80, 2, 2, 855, 84, 3, 2, 2, 2, 856, 857, 7, 71, 2, 2, 857, 858, 7, 78, 2, 2, 858, 859, 7, 85, 2, 2, 859, 860, 7, 71, 2, 2, 860, 86, 3, 2, 2, 2, 861, 862, 7, 71, 2, 2, 862, 863, 7, 80, 2, 2, 863, 864, 7, 70, 2, 2, 864, 88, 3, 2, 2, 2, 865, 866, 7, 76, 2, 2, 866, 867, 7, 81, 2, 2, 867, 868, 7, 75, 2, 2, 868, 869, 7, 80, 2, 2, 869, 90, 3, 2, 2, 2, 870, 871, 7, 69, 2, 2, 871, 872, 7, 84, 2, 2, 872, 873, 7, 81, 2, 2, 873, 874, 7, 85, 2, 2, 874, 875, 7, 85, 2, 2, 875, 92, 3, 2, 2, 2, 876, 877, 7, 81, 2, 2, 877, 878, 7, 87, 2, 2, 878, 879, 7, 86, 2, 2, 879, 880, 7, 71, 2, 2, 880, 881, 7, 84, 2, 2, 881, 94, 3, 2, 2, 2, 882, 883, 7, 75, 2, 2, 883, 884, 7, 80, 2, 2, 884, 885, 7, 80, 2, 2, 885, 886, 7, 71, 2, 2, 886, 887, 7, 84, 2, 2, 887, 96, 3, 2, 2, 2, 888, 889, 7, 78, 2, 2, 889, 890, 7, 71, 2, 2, 890, 891, 7, 72, 2, 2, 891, 892, 7, 86, 2, 2, 892, 98, 3, 2, 2, 2, 893, 894, 7, 85, 2, 2, 894, 895, 7, 71, 2, 2, 895, 896, 7, 79, 2, 2, 896, 897, 7, 75, 2, 2, 897, 100, 3, 2, 2, 2, 898, 899, 7, 84, 2, 2, 899, 900, 7, 75, 2, 2, 900, 901, 7, 73, 2, 2, 901, 902, 7, 74, 2, 2, 902, 903, 7, 86, 2, 2, 903, 102, 3, 2, 2, 2, 904, 905, 7, 72, 2, 2, 905, 906, 7, 87, 2, 2, 906, 907, 7, 78, 2, 2, 907, 908, 7, 78, 2, 2, 908, 104, 3, 2, 2, 2, 909, 910, 7, 80, 2, 2, 910, 911, 7, 67, 2, 2, 911, 912, 7, 86, 2, 2, 912, 913, 7, 87, 2, 2, 913, 914, 7, 84, 2, 2, 914, 915, 7, 67, 2, 2, 915, 916, 7, 78, 2, 2, 916, 106, 3, 2, 2, 2, 917, 918, 7, 81, 2, 2, 918, 919, 7, 80, 2, 2, 919, 108, 3, 2, 2, 2, 920, 921, 7, 82, 2, 2, 921, 922, 7, 75, 2, 2, 922, 923, 7, 88, 2, 2, 923, 924, 7, 81, 2, 2, 924, 925, 7, 86, 2, 2, 925, 110, 3, 2, 2, 2, 926, 927, 7, 78, 2, 2, 927, 928, 7, 67, 2, 2, 928, 929, 7, 86, 2, 2, 929, 930, 7, 71, 2, 2, 930, 931, 7, 84, 2, 2, 931, 932, 7, 67, 2, 2, 932, 933, 7, 78, 2, 2, 933, 112, 3, 2, 2, 2, 934, 935, 7, 89, 2, 2, 935, 936, 7, 75, 2, 2, 936, 937, 7, 80, 2, 2, 937, 938, 7, 70, 2, 2, 938, 939, 7, 81, 2, 2, 939, 940, 7, 89, 2, 2, 940, 114, 3, 2, 2, 2, 941, 942, 7, 81, 2, 2, 942, 943, 7, 88, 2, 2, 943, 944, 7, 71, 2, 2, 944, 945, 7, 84, 2, 2, 945, 116, 3, 2, 2, 2, 946, 947, 7, 82, 2, 2, 947, 948, 7, 67, 2, 2, 948, 949, 7, 84, 2, 2, 949, 950, 7, 86, 2, 2, 950, 951, 7, 75, 2, 2, 951, 952, 7, 86, 2, 2, 952, 953, 7, 75, 2, 2, 953, 954, 7, 81, 2, 2, 954, 955, 7, 80, 2, 2, 955, 118, 3, 2, 2, 2, 956, 957, 7, 84, 2, 2, 957, 958, 7, 67, 2, 2, 958, 959, 7, 80, 2, 2, 959, 960, 7, 73, 2, 2, 960, 961, 7, 71, 2, 2, 961, 120, 3, 2, 2, 2, 962, 963, 7, 84, 2, 2, 963, 964, 7, 81, 2, 2, 964, 965, 7, 89, 2, 2, 965, 966, 7, 85, 2, 2, 966, 122, 3, 2, 2, 2, 967, 968, 7, 87, 2, 2, 968, 969, 7, 80, 2, 2, 969, 970, 7, 68, 2, 2, 970, 971, 7, 81, 2, 2, 971, 972, 7, 87, 2, 2, 972, 973, 7, 80, 2, 2, 973, 974, 7, 70, 2, 2, 974, 975, 7, 71, 2, 2, 975, 976, 7, 70, 2, 2, 976, 124, 3, 2, 2, 2, 977, 978, 7, 82, 2, 2, 978, 979, 7, 84, 2, 2, 979, 980, 7, 71, 2, 2, 980, 981, 7, 69, 2, 2, 981, 982, 7, 71, 2, 2, 982, 983, 7, 70, 2, 2, 983, 984, 7, 75, 2, 2, 984, 985, 7, 80, 2, 2, 985, 986, 7, 73, 2, 2, 986, 126, 3, 2, 2, 2, 987, 988, 7, 72, 2, 2, 988, 989, 7, 81, 2, 2, 989, 990, 7, 78, 2, 2, 990, 991, 7, 78, 2, 2, 991, 992, 7, 81, 2, 2, 992, 993, 7, 89, 2, 2, 993, 994, 7, 75, 2, 2, 994, 995, 7, 80, 2, 2, 995, 996, 7, 73, 2, 2, 996, 128, 3, 2, 2, 2, 997, 998, 7, 69, 2, 2, 998, 999, 7, 87, 2, 2, 999, 1000, 7, 84, 2, 2, 1000, 1001, 7, 84, 2, 2, 1001, 1002, 7, 71, 2, 2, 1002, 1003, 7, 80, 2, 2, 1003, 1004, 7, 86, 2, 2, 1004, 130, 3, 2, 2, 2, 1005, 1006, 7, 72, 2, 2, 1006, 1007, 7, 75, 2, 2, 1007, 1008, 7, 84, 2, 2, 1008, 1009, 7, 85, 2, 2, 1009, 1010, 7, 86, 2, 2, 1010, 132, 3, 2, 2, 2, 1011, 1012, 7, 67, 2, 2, 1012, 1013, 7, 72, 2, 2, 1013, 1014, 7, 86, 2, 2, 1014, 1015, 7, 71, 2, 2, 1015, 1016, 7, 84, 2, 2, 1016, 134, 3, 2, 2, 2, 1017, 1018, 7, 78, 2, 2, 1018, 1019, 7, 67, 2, 2, 1019, 1020, 7, 85, 2, 2, 1020, 1021, 7, 86, 2, 2, 1021, 136, 3, 2, 2, 2, 1022, 1023, 7, 89, 2, 2, 1023, 1024, 7, 75, 2, 2, 1024, 1025, 7, 86, 2, 2, 1025, 1026, 7, 74, 2, 2, 1026, 138, 3, 2, 2, 2, 1027, 1028, 7, 88, 2, 2, 1028, 1029, 7, 67, 2, 2, 1029, 1030, 7, 78, 2, 2, 1030, 1031, 7, 87, 2, 2, 1031, 1032, 7, 71, 2, 2, 1032, 1033, 7, 85, 2, 2, 1033, 140, 3, 2, 2, 2, 1034, 1035, 7, 69, 2, 2, 1035, 1036, 7, 84, 2, 2, 1036, 1037, 7, 71, 2, 2, 1037, 1038, 7, 67, 2, 2, 1038, 1039, 7, 86, 2, 2, 1039, 1040, 7, 71, 2, 2, 1040, 142, 3, 2, 2, 2, 1041, 1042, 7, 86, 2, 2, 1042, 1043, 7, 67, 2, 2, 1043, 1044, 7, 68, 2, 2, 1044, 1045, 7, 78, 2, 2, 1045, 1046, 7, 71, 2, 2, 1046, 144, 3, 2, 2, 2, 1047, 1048, 7, 70, 2, 2, 1048, 1049, 7, 75, 2, 2, 1049, 1050, 7, 84, 2, 2, 1050, 1051, 7, 71, 2, 2, 1051, 1052, 7, 69, 2, 2, 1052, 1053, 7, 86, 2, 2, 1053, 1054, 7, 81, 2, 2, 1054, 1055, 7, 84, 2, 2, 1055, 1056, 7, 91, 2, 2, 1056, 146, 3, 2, 2, 2, 1057, 1058, 7, 88, 2, 2, 1058, 1059, 7, 75, 2, 2, 1059, 1060, 7, 71, 2, 2, 1060, 1061, 7, 89, 2, 2, 1061, 148, 3, 2, 2, 2, 1062, 1063, 7, 84, 2, 2, 1063, 1064, 7, 71, 2, 2, 1064, 1065, 7, 82, 2, 2, 1065, 1066, 7, 78, 2, 2, 1066, 1067, 7, 67, 2, 2, 1067, 1068, 7, 69, 2, 2, 1068, 1069, 7, 71, 2, 2, 1069, 150, 3, 2, 2, 2, 1070, 1071, 7, 75, 2, 2, 1071, 1072, 7, 80, 2, 2, 1072, 1073, 7, 85, 2, 2, 1073, 1074, 7, 71, 2, 2, 1074, 1075, 7, 84, 2, 2, 1075, 1076, 7, 86, 2, 2, 1076, 152, 3, 2, 2, 2, 1077, 1078, 7, 70, 2, 2, 1078, 1079, 7, 71, 2, 2, 1079, 1080, 7, 78, 2, 2, 1080, 1081, 7, 71, 2, 2, 1081, 1082, 7, 86, 2, 2, 1082, 1083, 7, 71, 2, 2, 1083, 154, 3, 2, 2, 2, 1084, 1085, 7, 75, 2, 2, 1085, 1086, 7, 80, 2, 2, 1086, 1087, 7, 86, 2, 2, 1087, 1088, 7, 81, 2, 2, 1088, 156, 3, 2, 2, 2, 1089, 1090, 7, 70, 2, 2, 1090, 1091, 7, 71, 2, 2, 1091, 1092, 7, 85, 2, 2, 1092, 1093, 7, 69, 2, 2, 1093, 1094, 7, 84, 2, 2, 1094, 1095, 7, 75, 2, 2, 1095, 1096, 7, 68, 2, 2, 1096, 1097, 7, 71, 2, 2, 1097, 158, 3, 2, 2, 2, 1098, 1099, 7, 71, 2, 2, 1099, 1100, 7, 90, 2, 2, 1100, 1101, 7, 82, 2, 2, 1101, 1102, 7, 78, 2, 2, 1102, 1103, 7, 67, 2, 2, 1103, 1104, 7, 75, 2, 2, 1104, 1105, 7, 80, 2, 2, 1105, 160, 3, 2, 2, 2, 1106, 1107, 7, 72, 2, 2, 1107, 1108, 7, 81, 2, 2, 1108, 1109, 7, 84, 2, 2, 1109, 1110, 7, 79, 2, 2, 1110, 1111, 7, 67, 2, 2, 1111, 1112, 7, 86, 2, 2, 1112, 162, 3, 2, 2, 2, 1113, 1114, 7, 78, 2, 2, 1114, 1115, 7, 81, 2, 2, 1115, 1116, 7, 73, 2, 2, 1116, 1117, 7, 75, 2, 2, 1117, 1118, 7, 69, 2, 2, 1118, 1119, 7, 67, 2, 2, 1119, 1120, 7, 78, 2, 2, 1120, 164, 3, 2, 2, 2, 1121, 1122, 7, 69, 2, 2, 1122, 1123, 7, 81, 2, 2, 1123, 1124, 7, 70, 2, 2, 1124, 1125, 7, 71, 2, 2, 1125, 1126, 7, 73, 2, 2, 1126, 1127, 7, 71, 2, 2, 1127, 1128, 7, 80, 2, 2, 1128, 166, 3, 2, 2, 2, 1129, 1130, 7, 69, 2, 2, 1130, 1131, 7, 81, 2, 2, 1131, 1132, 7, 85, 2, 2, 1132, 1133, 7, 86, 2, 2, 1133, 168, 3, 2, 2, 2, 1134, 1135, 7, 69, 2, 2, 1135, 1136, 7, 67, 2, 2, 1136, 1137, 7, 85, 2, 2, 1137, 1138, 7, 86, 2, 2, 1138, 170, 3, 2, 2, 2, 1139, 1140, 7, 85, 2, 2, 1140, 1141, 7, 74, 2, 2, 1141, 1142, 7, 81, 2, 2, 1142, 1143, 7, 89, 2, 2, 1143, 172, 3, 2, 2, 2, 1144, 1145, 7, 86, 2, 2, 1145, 1146, 7, 67, 2, 2, 1146, 1147, 7, 68, 2, 2, 1147, 1148, 7, 78, 2, 2, 1148, 1149, 7, 71, 2, 2, 1149, 1150, 7, 85, 2, 2, 1150, 174, 3, 2, 2, 2, 1151, 1152, 7, 69, 2, 2, 1152, 1153, 7, 81, 2, 2, 1153, 1154, 7, 78, 2, 2, 1154, 1155, 7, 87, 2, 2, 1155, 1156, 7, 79, 2, 2, 1156, 1157, 7, 80, 2, 2, 1157, 1158, 7, 85, 2, 2, 1158, 176, 3, 2, 2, 2, 1159, 1160, 7, 69, 2, 2, 1160, 1161, 7, 81, 2, 2, 1161, 1162, 7, 78, 2, 2, 1162, 1163, 7, 87, 2, 2, 1163, 1164, 7, 79, 2, 2, 1164, 1165, 7, 80, 2, 2, 1165, 178, 3, 2, 2, 2, 1166, 1167, 7, 87, 2, 2, 1167, 1168, 7, 85, 2, 2, 1168, 1169, 7, 71, 2, 2, 1169, 180, 3, 2, 2, 2, 1170, 1171, 7, 82, 2, 2, 1171, 1172, 7, 67, 2, 2, 1172, 1173, 7, 84, 2, 2, 1173, 1174, 7, 86, 2, 2, 1174, 1175, 7, 75, 2, 2, 1175, 1176, 7, 86, 2, 2, 1176, 1177, 7, 75, 2, 2, 1177, 1178, 7, 81, 2, 2, 1178, 1179, 7, 80, 2, 2, 1179, 1180, 7, 85, 2, 2, 1180, 182, 3, 2, 2, 2, 1181, 1182, 7, 72, 2, 2, 1182, 1183, 7, 87, 2, 2, 1183, 1184, 7, 80, 2, 2, 1184, 1185, 7, 69, 2, 2, 1185, 1186, 7, 86, 2, 2, 1186, 1187, 7, 75, 2, 2, 1187, 1188, 7, 81, 2, 2, 1188, 1189, 7, 80, 2, 2, 1189, 1190, 7, 85, 2, 2, 1190, 184, 3, 2, 2, 2, 1191, 1192, 7, 70, 2, 2, 1192, 1193, 7, 84, 2, 2, 1193, 1194, 7, 81, 2, 2, 1194, 1195, 7, 82, 2, 2, 1195, 186, 3, 2, 2, 2, 1196, 1197, 7, 87, 2, 2, 1197, 1198, 7, 80, 2, 2, 1198, 1199, 7, 75, 2, 2, 1199, 1200, 7, 81, 2, 2, 1200, 1201, 7, 80, 2, 2, 1201, 188, 3, 2, 2, 2, 1202, 1203, 7, 71, 2, 2, 1203, 1204, 7, 90, 2, 2, 1204, 1205, 7, 69, 2, 2, 1205, 1206, 7, 71, 2, 2, 1206, 1207, 7, 82, 2, 2, 1207, 1208, 7, 86, 2, 2, 1208, 190, 3, 2, 2, 2, 1209, 1210, 7, 85, 2, 2, 1210, 1211, 7, 71, 2, 2, 1211, 1212, 7, 86, 2, 2, 1212, 1213, 7, 79, 2, 2, 1213, 1214, 7, 75, 2, 2, 1214, 1215, 7, 80, 2, 2, 1215, 1216, 7, 87, 2, 2, 1216, 1217, 7, 85, 2, 2, 1217, 192, 3, 2, 2, 2, 1218, 1219, 7, 75, 2, 2, 1219, 1220, 7, 80, 2, 2, 1220, 1221, 7, 86, 2, 2, 1221, 1222, 7, 71, 2, 2, 1222, 1223, 7, 84, 2, 2, 1223, 1224, 7, 85, 2, 2, 1224, 1225, 7, 71, 2, 2, 1225, 1226, 7, 69, 2, 2, 1226, 1227, 7, 86, 2, 2, 1227, 194, 3, 2, 2, 2, 1228, 1229, 7, 86, 2, 2, 1229, 1230, 7, 81, 2, 2, 1230, 196, 3, 2, 2, 2, 1231, 1232, 7, 86, 2, 2, 1232, 1233, 7, 67, 2, 2, 1233, 1234, 7, 68, 2, 2, 1234, 1235, 7, 78, 2, 2, 1235, 1236, 7, 71, 2, 2, 1236, 1237, 7, 85, 2, 2, 1237, 1238, 7, 67, 2, 2, 1238, 1239, 7, 79, 2, 2, 1239, 1240, 7, 82, 2, 2, 1240, 1241, 7, 78, 2, 2, 1241, 1242, 7, 71, 2, 2, 1242, 198, 3, 2, 2, 2, 1243, 1244, 7, 85, 2, 2, 1244, 1245, 7, 86, 2, 2, 1245, 1246, 7, 84, 2, 2, 1246, 1247, 7, 67, 2, 2, 1247, 1248, 7, 86, 2, 2, 1248, 1249, 7, 75, 2, 2, 1249, 1250, 7, 72, 2, 2, 1250, 1251, 7, 91, 2, 2, 1251, 200, 3, 2, 2, 2, 1252, 1253, 7, 67, 2, 2, 1253, 1254, 7, 78, 2, 2, 1254, 1255, 7, 86, 2, 2, 1255, 1256, 7, 71, 2, 2, 1256, 1257, 7, 84, 2, 2, 1257, 202, 3, 2, 2, 2, 1258, 1259, 7, 84, 2, 2, 1259, 1260, 7, 71, 2, 2, 1260, 1261, 7, 80, 2, 2, 1261, 1262, 7, 67, 2, 2, 1262, 1263, 7, 79, 2, 2, 1263, 1264, 7, 71, 2, 2, 1264, 204, 3, 2, 2, 2, 1265, 1266, 7, 85, 2, 2, 1266, 1267, 7, 86, 2, 2, 1267, 1268, 7, 84, 2, 2, 1268, 1269, 7, 87, 2, 2, 1269, 1270, 7, 69, 2, 2, 1270, 1271, 7, 86, 2, 2, 1271, 206, 3, 2, 2, 2, 1272, 1273, 7, 69, 2, 2, 1273, 1274, 7, 81, 2, 2, 1274, 1275, 7, 79, 2, 2, 1275, 1276, 7, 79, 2, 2, 1276, 1277, 7, 71, 2, 2, 1277, 1278, 7, 80, 2, 2, 1278, 1279, 7, 86, 2, 2, 1279, 208, 3, 2, 2, 2, 1280, 1281, 7, 85, 2, 2, 1281, 1282, 7, 71, 2, 2, 1282, 1283, 7, 86, 2, 2, 1283, 210, 3, 2, 2, 2, 1284, 1285, 7, 84, 2, 2, 1285, 1286, 7, 71, 2, 2, 1286, 1287, 7, 85, 2, 2, 1287, 1288, 7, 71, 2, 2, 1288, 1289, 7, 86, 2, 2, 1289, 212, 3, 2, 2, 2, 1290, 1291, 7, 70, 2, 2, 1291, 1292, 7, 67, 2, 2, 1292, 1293, 7, 86, 2, 2, 1293, 1294, 7, 67, 2, 2, 1294, 214, 3, 2, 2, 2, 1295, 1296, 7, 85, 2, 2, 1296, 1297, 7, 86, 2, 2, 1297, 1298, 7, 67, 2, 2, 1298, 1299, 7, 84, 2, 2, 1299, 1300, 7, 86, 2, 2, 1300, 216, 3, 2, 2, 2, 1301, 1302, 7, 86, 2, 2, 1302, 1303, 7, 84, 2, 2, 1303, 1304, 7, 67, 2, 2, 1304, 1305, 7, 80, 2, 2, 1305, 1306, 7, 85, 2, 2, 1306, 1307, 7, 67, 2, 2, 1307, 1308, 7, 69, 2, 2, 1308, 1309, 7, 86, 2, 2, 1309, 1310, 7, 75, 2, 2, 1310, 1311, 7, 81, 2, 2, 1311, 1312, 7, 80, 2, 2, 1312, 218, 3, 2, 2, 2, 1313, 1314, 7, 69, 2, 2, 1314, 1315, 7, 81, 2, 2, 1315, 1316, 7, 79, 2, 2, 1316, 1317, 7, 79, 2, 2, 1317, 1318, 7, 75, 2, 2, 1318, 1319, 7, 86, 2, 2, 1319, 220, 3, 2, 2, 2, 1320, 1321, 7, 84, 2, 2, 1321, 1322, 7, 81, 2, 2, 1322, 1323, 7, 78, 2, 2, 1323, 1324, 7, 78, 2, 2, 1324, 1325, 7, 68, 2, 2, 1325, 1326, 7, 67, 2, 2, 1326, 1327, 7, 69, 2, 2, 1327, 1328, 7, 77, 2, 2, 1328, 222, 3, 2, 2, 2, 1329, 1330, 7, 79, 2, 2, 1330, 1331, 7, 67, 2, 2, 1331, 1332, 7, 69, 2, 2, 1332, 1333, 7, 84, 2, 2, 1333, 1334, 7, 81, 2, 2, 1334, 224, 3, 2, 2, 2, 1335, 1336, 7, 75, 2, 2, 1336, 1337, 7, 73, 2, 2, 1337, 1338, 7, 80, 2, 2, 1338, 1339, 7, 81, 2, 2, 1339, 1340, 7, 84, 2, 2, 1340, 1341, 7, 71, 2, 2, 1341, 226, 3, 2, 2, 2, 1342, 1343, 7, 68, 2, 2, 1343, 1344, 7, 81, 2, 2, 1344, 1345, 7, 86, 2, 2, 1345, 1346, 7, 74, 2, 2, 1346, 228, 3, 2, 2, 2, 1347, 1348, 7, 78, 2, 2, 1348, 1349, 7, 71, 2, 2, 1349, 1350, 7, 67, 2, 2, 1350, 1351, 7, 70, 2, 2, 1351, 1352, 7, 75, 2, 2, 1352, 1353, 7, 80, 2, 2, 1353, 1354, 7, 73, 2, 2, 1354, 230, 3, 2, 2, 2, 1355, 1356, 7, 86, 2, 2, 1356, 1357, 7, 84, 2, 2, 1357, 1358, 7, 67, 2, 2, 1358, 1359, 7, 75, 2, 2, 1359, 1360, 7, 78, 2, 2, 1360, 1361, 7, 75, 2, 2, 1361, 1362, 7, 80, 2, 2, 1362, 1363, 7, 73, 2, 2, 1363, 232, 3, 2, 2, 2, 1364, 1365, 7, 75, 2, 2, 1365, 1366, 7, 72, 2, 2, 1366, 234, 3, 2, 2, 2, 1367, 1368, 7, 82, 2, 2, 1368, 1369, 7, 81, 2, 2, 1369, 1370, 7, 85, 2, 2, 1370, 1371, 7, 75, 2, 2, 1371, 1372, 7, 86, 2, 2, 1372, 1373, 7, 75, 2, 2, 1373, 1374, 7, 81, 2, 2, 1374, 1375, 7, 80, 2, 2, 1375, 236, 3, 2, 2, 2, 1376, 1377, 7, 71, 2, 2, 1377, 1378, 7, 90, 2, 2, 1378, 1379, 7, 86, 2, 2, 1379, 1380, 7, 84, 2, 2, 1380, 1381, 7, 67, 2, 2, 1381, 1382, 7, 69, 2, 2, 1382, 1383, 7, 86, 2, 2, 1383, 238, 3, 2, 2, 2, 1384, 1385, 7, 79, 2, 2, 1385, 1386, 7, 75, 2, 2, 1386, 1387, 7, 80, 2, 2, 1387, 1388, 7, 87, 2, 2, 1388, 1389, 7, 85, 2, 2, 1389, 240, 3, 2, 2, 2, 1390, 1391, 7, 70, 2, 2, 1391, 1392, 7, 75, 2, 2, 1392, 1393, 7, 88, 2, 2, 1393, 242, 3, 2, 2, 2, 1394, 1395, 7, 82, 2, 2, 1395, 1396, 7, 71, 2, 2, 1396, 1397, 7, 84, 2, 2, 1397, 1398, 7, 69, 2, 2, 1398, 1399, 7, 71, 2, 2, 1399, 1400, 7, 80, 2, 2, 1400, 1401, 7, 86, 2, 2, 1401, 1402, 7, 78, 2, 2, 1402, 1403, 7, 75, 2, 2, 1403, 1404, 7, 86, 2, 2, 1404, 244, 3, 2, 2, 2, 1405, 1406, 7, 68, 2, 2, 1406, 1407, 7, 87, 2, 2, 1407, 1408, 7, 69, 2, 2, 1408, 1409, 7, 77, 2, 2, 1409, 1410, 7, 71, 2, 2, 1410, 1411, 7, 86, 2, 2, 1411, 246, 3, 2, 2, 2, 1412, 1413, 7, 81, 2, 2, 1413, 1414, 7, 87, 2, 2, 1414, 1415, 7, 86, 2, 2, 1415, 248, 3, 2, 2, 2, 1416, 1417, 7, 81, 2, 2, 1417, 1418, 7, 72, 2, 2, 1418, 250, 3, 2, 2, 2, 1419, 1420, 7, 85, 2, 2, 1420, 1421, 7, 81, 2, 2, 1421, 1422, 7, 84, 2, 2, 1422, 1423, 7, 86, 2, 2, 1423, 252, 3, 2, 2, 2, 1424, 1425, 7, 69, 2, 2, 1425, 1426, 7, 78, 2, 2, 1426, 1427, 7, 87, 2, 2, 1427, 1428, 7, 85, 2, 2, 1428, 1429, 7, 86, 2, 2, 1429, 1430, 7, 71, 2, 2, 1430, 1431, 7, 84, 2, 2, 1431, 254, 3, 2, 2, 2, 1432, 1433, 7, 70, 2, 2, 1433, 1434, 7, 75, 2, 2, 1434, 1435, 7, 85, 2, 2, 1435, 1436, 7, 86, 2, 2, 1436, 1437, 7, 84, 2, 2, 1437, 1438, 7, 75, 2, 2, 1438, 1439, 7, 68, 2, 2, 1439, 1440, 7, 87, 2, 2, 1440, 1441, 7, 86, 2, 2, 1441, 1442, 7, 71, 2, 2, 1442, 256, 3, 2, 2, 2, 1443, 1444, 7, 81, 2, 2, 1444, 1445, 7, 88, 2, 2, 1445, 1446, 7, 71, 2, 2, 1446, 1447, 7, 84, 2, 2, 1447, 1448, 7, 89, 2, 2, 1448, 1449, 7, 84, 2, 2, 1449, 1450, 7, 75, 2, 2, 1450, 1451, 7, 86, 2, 2, 1451, 1452, 7, 71, 2, 2, 1452, 258, 3, 2, 2, 2, 1453, 1454, 7, 86, 2, 2, 1454, 1455, 7, 84, 2, 2, 1455, 1456, 7, 67, 2, 2, 1456, 1457, 7, 80, 2, 2, 1457, 1458, 7, 85, 2, 2, 1458, 1459, 7, 72, 2, 2, 1459, 1460, 7, 81, 2, 2, 1460, 1461, 7, 84, 2, 2, 1461, 1462, 7, 79, 2, 2, 1462, 260, 3, 2, 2, 2, 1463, 1464, 7, 84, 2, 2, 1464, 1465, 7, 71, 2, 2, 1465, 1466, 7, 70, 2, 2, 1466, 1467, 7, 87, 2, 2, 1467, 1468, 7, 69, 2, 2, 1468, 1469, 7, 71, 2, 2, 1469, 262, 3, 2, 2, 2, 1470, 1471, 7, 87, 2, 2, 1471, 1472, 7, 85, 2, 2, 1472, 1473, 7, 75, 2, 2, 1473, 1474, 7, 80, 2, 2, 1474, 1475, 7, 73, 2, 2, 1475, 264, 3, 2, 2, 2, 1476, 1477, 7, 85, 2, 2, 1477, 1478, 7, 71, 2, 2, 1478, 1479, 7, 84, 2, 2, 1479, 1480, 7, 70, 2, 2, 1480, 1481, 7, 71, 2, 2, 1481, 266, 3, 2, 2, 2, 1482, 1483, 7, 85, 2, 2, 1483, 1484, 7, 71, 2, 2, 1484, 1485, 7, 84, 2, 2, 1485, 1486, 7, 70, 2, 2, 1486, 1487, 7, 71, 2, 2, 1487, 1488, 7, 82, 2, 2, 1488, 1489, 7, 84, 2, 2, 1489, 1490, 7, 81, 2, 2, 1490, 1491, 7, 82, 2, 2, 1491, 1492, 7, 71, 2, 2, 1492, 1493, 7, 84, 2, 2, 1493, 1494, 7, 86, 2, 2, 1494, 1495, 7, 75, 2, 2, 1495, 1496, 7, 71, 2, 2, 1496, 1497, 7, 85, 2, 2, 1497, 268, 3, 2, 2, 2, 1498, 1499, 7, 84, 2, 2, 1499, 1500, 7, 71, 2, 2, 1500, 1501, 7, 69, 2, 2, 1501, 1502, 7, 81, 2, 2, 1502, 1503, 7, 84, 2, 2, 1503, 1504, 7, 70, 2, 2, 1504, 1505, 7, 84, 2, 2, 1505, 1506, 7, 71, 2, 2, 1506, 1507, 7, 67, 2, 2, 1507, 1508, 7, 70, 2, 2, 1508, 1509, 7, 71, 2, 2, 1509, 1510, 7, 84, 2, 2, 1510, 270, 3, 2, 2, 2, 1511, 1512, 7, 84, 2, 2, 1512, 1513, 7, 71, 2, 2, 1513, 1514, 7, 69, 2, 2, 1514, 1515, 7, 81, 2, 2, 1515, 1516, 7, 84, 2, 2, 1516, 1517, 7, 70, 2, 2, 1517, 1518, 7, 89, 2, 2, 1518, 1519, 7, 84, 2, 2, 1519, 1520, 7, 75, 2, 2, 1520, 1521, 7, 86, 2, 2, 1521, 1522, 7, 71, 2, 2, 1522, 1523, 7, 84, 2, 2, 1523, 272, 3, 2, 2, 2, 1524, 1525, 7, 70, 2, 2, 1525, 1526, 7, 71, 2, 2, 1526, 1527, 7, 78, 2, 2, 1527, 1528, 7, 75, 2, 2, 1528, 1529, 7, 79, 2, 2, 1529, 1530, 7, 75, 2, 2, 1530, 1531, 7, 86, 2, 2, 1531, 1532, 7, 71, 2, 2, 1532, 1533, 7, 70, 2, 2, 1533, 274, 3, 2, 2, 2, 1534, 1535, 7, 72, 2, 2, 1535, 1536, 7, 75, 2, 2, 1536, 1537, 7, 71, 2, 2, 1537, 1538, 7, 78, 2, 2, 1538, 1539, 7, 70, 2, 2, 1539, 1540, 7, 85, 2, 2, 1540, 276, 3, 2, 2, 2, 1541, 1542, 7, 86, 2, 2, 1542, 1543, 7, 71, 2, 2, 1543, 1544, 7, 84, 2, 2, 1544, 1545, 7, 79, 2, 2, 1545, 1546, 7, 75, 2, 2, 1546, 1547, 7, 80, 2, 2, 1547, 1548, 7, 67, 2, 2, 1548, 1549, 7, 86, 2, 2, 1549, 1550, 7, 71, 2, 2, 1550, 1551, 7, 70, 2, 2, 1551, 278, 3, 2, 2, 2, 1552, 1553, 7, 69, 2, 2, 1553, 1554, 7, 81, 2, 2, 1554, 1555, 7, 78, 2, 2, 1555, 1556, 7, 78, 2, 2, 1556, 1557, 7, 71, 2, 2, 1557, 1558, 7, 69, 2, 2, 1558, 1559, 7, 86, 2, 2, 1559, 1560, 7, 75, 2, 2, 1560, 1561, 7, 81, 2, 2, 1561, 1562, 7, 80, 2, 2, 1562, 280, 3, 2, 2, 2, 1563, 1564, 7, 75, 2, 2, 1564, 1565, 7, 86, 2, 2, 1565, 1566, 7, 71, 2, 2, 1566, 1567, 7, 79, 2, 2, 1567, 1568, 7, 85, 2, 2, 1568, 282, 3, 2, 2, 2, 1569, 1570, 7, 77, 2, 2, 1570, 1571, 7, 71, 2, 2, 1571, 1572, 7, 91, 2, 2, 1572, 1573, 7, 85, 2, 2, 1573, 284, 3, 2, 2, 2, 1574, 1575, 7, 71, 2, 2, 1575, 1576, 7, 85, 2, 2, 1576, 1577, 7, 69, 2, 2, 1577, 1578, 7, 67, 2, 2, 1578, 1579, 7, 82, 2, 2, 1579, 1580, 7, 71, 2, 2, 1580, 1581, 7, 70, 2, 2, 1581, 286, 3, 2, 2, 2, 1582, 1583, 7, 78, 2, 2, 1583, 1584, 7, 75, 2, 2, 1584, 1585, 7, 80, 2, 2, 1585, 1586, 7, 71, 2, 2, 1586, 1587, 7, 85, 2, 2, 1587, 288, 3, 2, 2, 2, 1588, 1589, 7, 85, 2, 2, 1589, 1590, 7, 71, 2, 2, 1590, 1591, 7, 82, 2, 2, 1591, 1592, 7, 67, 2, 2, 1592, 1593, 7, 84, 2, 2, 1593, 1594, 7, 67, 2, 2, 1594, 1595, 7, 86, 2, 2, 1595, 1596, 7, 71, 2, 2, 1596, 1597, 7, 70, 2, 2, 1597, 290, 3, 2, 2, 2, 1598, 1599, 7, 72, 2, 2, 1599, 1600, 7, 87, 2, 2, 1600, 1601, 7, 80, 2, 2, 1601, 1602, 7, 69, 2, 2, 1602, 1603, 7, 86, 2, 2, 1603, 1604, 7, 75, 2, 2, 1604, 1605, 7, 81, 2, 2, 1605, 1606, 7, 80, 2, 2, 1606, 292, 3, 2, 2, 2, 1607, 1608, 7, 71, 2, 2, 1608, 1609, 7, 90, 2, 2, 1609, 1610, 7, 86, 2, 2, 1610, 1611, 7, 71, 2, 2, 1611, 1612, 7, 80, 2, 2, 1612, 1613, 7, 70, 2, 2, 1613, 1614, 7, 71, 2, 2, 1614, 1615, 7, 70, 2, 2, 1615, 294, 3, 2, 2, 2, 1616, 1617, 7, 84, 2, 2, 1617, 1618, 7, 71, 2, 2, 1618, 1619, 7, 72, 2, 2, 1619, 1620, 7, 84, 2, 2, 1620, 1621, 7, 71, 2, 2, 1621, 1622, 7, 85, 2, 2, 1622, 1623, 7, 74, 2, 2, 1623, 296, 3, 2, 2, 2, 1624, 1625, 7, 69, 2, 2, 1625, 1626, 7, 78, 2, 2, 1626, 1627, 7, 71, 2, 2, 1627, 1628, 7, 67, 2, 2, 1628, 1629, 7, 84, 2, 2, 1629, 298, 3, 2, 2, 2, 1630, 1631, 7, 69, 2, 2, 1631, 1632, 7, 67, 2, 2, 1632, 1633, 7, 69, 2, 2, 1633, 1634, 7, 74, 2, 2, 1634, 1635, 7, 71, 2, 2, 1635, 300, 3, 2, 2, 2, 1636, 1637, 7, 87, 2, 2, 1637, 1638, 7, 80, 2, 2, 1638, 1639, 7, 69, 2, 2, 1639, 1640, 7, 67, 2, 2, 1640, 1641, 7, 69, 2, 2, 1641, 1642, 7, 74, 2, 2, 1642, 1643, 7, 71, 2, 2, 1643, 302, 3, 2, 2, 2, 1644, 1645, 7, 78, 2, 2, 1645, 1646, 7, 67, 2, 2, 1646, 1647, 7, 92, 2, 2, 1647, 1648, 7, 91, 2, 2, 1648, 304, 3, 2, 2, 2, 1649, 1650, 7, 72, 2, 2, 1650, 1651, 7, 81, 2, 2, 1651, 1652, 7, 84, 2, 2, 1652, 1653, 7, 79, 2, 2, 1653, 1654, 7, 67, 2, 2, 1654, 1655, 7, 86, 2, 2, 1655, 1656, 7, 86, 2, 2, 1656, 1657, 7, 71, 2, 2, 1657, 1658, 7, 70, 2, 2, 1658, 306, 3, 2, 2, 2, 1659, 1660, 7, 73, 2, 2, 1660, 1661, 7, 78, 2, 2, 1661, 1662, 7, 81, 2, 2, 1662, 1663, 7, 68, 2, 2, 1663, 1664, 7, 67, 2, 2, 1664, 1665, 7, 78, 2, 2, 1665, 308, 3, 2, 2, 2, 1666, 1667, 7, 86, 2, 2, 1667, 1668, 7, 71, 2, 2, 1668, 1669, 7, 79, 2, 2, 1669, 1670, 7, 82, 2, 2, 1670, 1671, 7, 81, 2, 2, 1671, 1672, 7, 84, 2, 2, 1672, 1673, 7, 67, 2, 2, 1673, 1674, 7, 84, 2, 2, 1674, 1675, 7, 91, 2, 2, 1675, 310, 3, 2, 2, 2, 1676, 1677, 7, 81, 2, 2, 1677, 1678, 7, 82, 2, 2, 1678, 1679, 7, 86, 2, 2, 1679, 1680, 7, 75, 2, 2, 1680, 1681, 7, 81, 2, 2, 1681, 1682, 7, 80, 2, 2, 1682, 1683, 7, 85, 2, 2, 1683, 312, 3, 2, 2, 2, 1684, 1685, 7, 87, 2, 2, 1685, 1686, 7, 80, 2, 2, 1686, 1687, 7, 85, 2, 2, 1687, 1688, 7, 71, 2, 2, 1688, 1689, 7, 86, 2, 2, 1689, 314, 3, 2, 2, 2, 1690, 1691, 7, 86, 2, 2, 1691, 1692, 7, 68, 2, 2, 1692, 1693, 7, 78, 2, 2, 1693, 1694, 7, 82, 2, 2, 1694, 1695, 7, 84, 2, 2, 1695, 1696, 7, 81, 2, 2, 1696, 1697, 7, 82, 2, 2, 1697, 1698, 7, 71, 2, 2, 1698, 1699, 7, 84, 2, 2, 1699, 1700, 7, 86, 2, 2, 1700, 1701, 7, 75, 2, 2, 1701, 1702, 7, 71, 2, 2, 1702, 1703, 7, 85, 2, 2, 1703, 316, 3, 2, 2, 2, 1704, 1705, 7, 70, 2, 2, 1705, 1706, 7, 68, 2, 2, 1706, 1707, 7, 82, 2, 2, 1707, 1708, 7, 84, 2, 2, 1708, 1709, 7, 81, 2, 2, 1709, 1710, 7, 82, 2, 2, 1710, 1711, 7, 71, 2, 2, 1711, 1712, 7, 84, 2, 2, 1712, 1713, 7, 86, 2, 2, 1713, 1714, 7, 75, 2, 2, 1714, 1715, 7, 71, 2, 2, 1715, 1716, 7, 85, 2, 2, 1716, 318, 3, 2, 2, 2, 1717, 1718, 7, 68, 2, 2, 1718, 1719, 7, 87, 2, 2, 1719, 1720, 7, 69, 2, 2, 1720, 1721, 7, 77, 2, 2, 1721, 1722, 7, 71, 2, 2, 1722, 1723, 7, 86, 2, 2, 1723, 1724, 7, 85, 2, 2, 1724, 320, 3, 2, 2, 2, 1725, 1726, 7, 85, 2, 2, 1726, 1727, 7, 77, 2, 2, 1727, 1728, 7, 71, 2, 2, 1728, 1729, 7, 89, 2, 2, 1729, 1730, 7, 71, 2, 2, 1730, 1731, 7, 70, 2, 2, 1731, 322, 3, 2, 2, 2, 1732, 1733, 7, 85, 2, 2, 1733, 1734, 7, 86, 2, 2, 1734, 1735, 7, 81, 2, 2, 1735, 1736, 7, 84, 2, 2, 1736, 1737, 7, 71, 2, 2, 1737, 1738, 7, 70, 2, 2, 1738, 324, 3, 2, 2, 2, 1739, 1740, 7, 70, 2, 2, 1740, 1741, 7, 75, 2, 2, 1741, 1742, 7, 84, 2, 2, 1742, 1743, 7, 71, 2, 2, 1743, 1744, 7, 69, 2, 2, 1744, 1745, 7, 86, 2, 2, 1745, 1746, 7, 81, 2, 2, 1746, 1747, 7, 84, 2, 2, 1747, 1748, 7, 75, 2, 2, 1748, 1749, 7, 71, 2, 2, 1749, 1750, 7, 85, 2, 2, 1750, 326, 3, 2, 2, 2, 1751, 1752, 7, 78, 2, 2, 1752, 1753, 7, 81, 2, 2, 1753, 1754, 7, 69, 2, 2, 1754, 1755, 7, 67, 2, 2, 1755, 1756, 7, 86, 2, 2, 1756, 1757, 7, 75, 2, 2, 1757, 1758, 7, 81, 2, 2, 1758, 1759, 7, 80, 2, 2, 1759, 328, 3, 2, 2, 2, 1760, 1761, 7, 71, 2, 2, 1761, 1762, 7, 90, 2, 2, 1762, 1763, 7, 69, 2, 2, 1763, 1764, 7, 74, 2, 2, 1764, 1765, 7, 67, 2, 2, 1765, 1766, 7, 80, 2, 2, 1766, 1767, 7, 73, 2, 2, 1767, 1768, 7, 71, 2, 2, 1768, 330, 3, 2, 2, 2, 1769, 1770, 7, 67, 2, 2, 1770, 1771, 7, 84, 2, 2, 1771, 1772, 7, 69, 2, 2, 1772, 1773, 7, 74, 2, 2, 1773, 1774, 7, 75, 2, 2, 1774, 1775, 7, 88, 2, 2, 1775, 1776, 7, 71, 2, 2, 1776, 332, 3, 2, 2, 2, 1777, 1778, 7, 87, 2, 2, 1778, 1779, 7, 80, 2, 2, 1779, 1780, 7, 67, 2, 2, 1780, 1781, 7, 84, 2, 2, 1781, 1782, 7, 69, 2, 2, 1782, 1783, 7, 74, 2, 2, 1783, 1784, 7, 75, 2, 2, 1784, 1785, 7, 88, 2, 2, 1785, 1786, 7, 71, 2, 2, 1786, 334, 3, 2, 2, 2, 1787, 1788, 7, 72, 2, 2, 1788, 1789, 7, 75, 2, 2, 1789, 1790, 7, 78, 2, 2, 1790, 1791, 7, 71, 2, 2, 1791, 1792, 7, 72, 2, 2, 1792, 1793, 7, 81, 2, 2, 1793, 1794, 7, 84, 2, 2, 1794, 1795, 7, 79, 2, 2, 1795, 1796, 7, 67, 2, 2, 1796, 1797, 7, 86, 2, 2, 1797, 336, 3, 2, 2, 2, 1798, 1799, 7, 86, 2, 2, 1799, 1800, 7, 81, 2, 2, 1800, 1801, 7, 87, 2, 2, 1801, 1802, 7, 69, 2, 2, 1802, 1803, 7, 74, 2, 2, 1803, 338, 3, 2, 2, 2, 1804, 1805, 7, 69, 2, 2, 1805, 1806, 7, 81, 2, 2, 1806, 1807, 7, 79, 2, 2, 1807, 1808, 7, 82, 2, 2, 1808, 1809, 7, 67, 2, 2, 1809, 1810, 7, 69, 2, 2, 1810, 1811, 7, 86, 2, 2, 1811, 340, 3, 2, 2, 2, 1812, 1813, 7, 69, 2, 2, 1813, 1814, 7, 81, 2, 2, 1814, 1815, 7, 80, 2, 2, 1815, 1816, 7, 69, 2, 2, 1816, 1817, 7, 67, 2, 2, 1817, 1818, 7, 86, 2, 2, 1818, 1819, 7, 71, 2, 2, 1819, 1820, 7, 80, 2, 2, 1820, 1821, 7, 67, 2, 2, 1821, 1822, 7, 86, 2, 2, 1822, 1823, 7, 71, 2, 2, 1823, 342, 3, 2, 2, 2, 1824, 1825, 7, 69, 2, 2, 1825, 1826, 7, 74, 2, 2, 1826, 1827, 7, 67, 2, 2, 1827, 1828, 7, 80, 2, 2, 1828, 1829, 7, 73, 2, 2, 1829, 1830, 7, 71, 2, 2, 1830, 344, 3, 2, 2, 2, 1831, 1832, 7, 69, 2, 2, 1832, 1833, 7, 67, 2, 2, 1833, 1834, 7, 85, 2, 2, 1834, 1835, 7, 69, 2, 2, 1835, 1836, 7, 67, 2, 2, 1836, 1837, 7, 70, 2, 2, 1837, 1838, 7, 71, 2, 2, 1838, 346, 3, 2, 2, 2, 1839, 1840, 7, 69, 2, 2, 1840, 1841, 7, 81, 2, 2, 1841, 1842, 7, 80, 2, 2, 1842, 1843, 7, 85, 2, 2, 1843, 1844, 7, 86, 2, 2, 1844, 1845, 7, 84, 2, 2, 1845, 1846, 7, 67, 2, 2, 1846, 1847, 7, 75, 2, 2, 1847, 1848, 7, 80, 2, 2, 1848, 1849, 7, 86, 2, 2, 1849, 348, 3, 2, 2, 2, 1850, 1851, 7, 84, 2, 2, 1851, 1852, 7, 71, 2, 2, 1852, 1853, 7, 85, 2, 2, 1853, 1854, 7, 86, 2, 2, 1854, 1855, 7, 84, 2, 2, 1855, 1856, 7, 75, 2, 2, 1856, 1857, 7, 69, 2, 2, 1857, 1858, 7, 86, 2, 2, 1858, 350, 3, 2, 2, 2, 1859, 1860, 7, 69, 2, 2, 1860, 1861, 7, 78, 2, 2, 1861, 1862, 7, 87, 2, 2, 1862, 1863, 7, 85, 2, 2, 1863, 1864, 7, 86, 2, 2, 1864, 1865, 7, 71, 2, 2, 1865, 1866, 7, 84, 2, 2, 1866, 1867, 7, 71, 2, 2, 1867, 1868, 7, 70, 2, 2, 1868, 352, 3, 2, 2, 2, 1869, 1870, 7, 85, 2, 2, 1870, 1871, 7, 81, 2, 2, 1871, 1872, 7, 84, 2, 2, 1872, 1873, 7, 86, 2, 2, 1873, 1874, 7, 71, 2, 2, 1874, 1875, 7, 70, 2, 2, 1875, 354, 3, 2, 2, 2, 1876, 1877, 7, 82, 2, 2, 1877, 1878, 7, 87, 2, 2, 1878, 1879, 7, 84, 2, 2, 1879, 1880, 7, 73, 2, 2, 1880, 1881, 7, 71, 2, 2, 1881, 356, 3, 2, 2, 2, 1882, 1883, 7, 75, 2, 2, 1883, 1884, 7, 80, 2, 2, 1884, 1885, 7, 82, 2, 2, 1885, 1886, 7, 87, 2, 2, 1886, 1887, 7, 86, 2, 2, 1887, 1888, 7, 72, 2, 2, 1888, 1889, 7, 81, 2, 2, 1889, 1890, 7, 84, 2, 2, 1890, 1891, 7, 79, 2, 2, 1891, 1892, 7, 67, 2, 2, 1892, 1893, 7, 86, 2, 2, 1893, 358, 3, 2, 2, 2, 1894, 1895, 7, 81, 2, 2, 1895, 1896, 7, 87, 2, 2, 1896, 1897, 7, 86, 2, 2, 1897, 1898, 7, 82, 2, 2, 1898, 1899, 7, 87, 2, 2, 1899, 1900, 7, 86, 2, 2, 1900, 1901, 7, 72, 2, 2, 1901, 1902, 7, 81, 2, 2, 1902, 1903, 7, 84, 2, 2, 1903, 1904, 7, 79, 2, 2, 1904, 1905, 7, 67, 2, 2, 1905, 1906, 7, 86, 2, 2, 1906, 360, 3, 2, 2, 2, 1907, 1908, 7, 70, 2, 2, 1908, 1909, 7, 67, 2, 2, 1909, 1910, 7, 86, 2, 2, 1910, 1911, 7, 67, 2, 2, 1911, 1912, 7, 68, 2, 2, 1912, 1913, 7, 67, 2, 2, 1913, 1914, 7, 85, 2, 2, 1914, 1915, 7, 71, 2, 2, 1915, 362, 3, 2, 2, 2, 1916, 1917, 7, 70, 2, 2, 1917, 1918, 7, 67, 2, 2, 1918, 1919, 7, 86, 2, 2, 1919, 1920, 7, 67, 2, 2, 1920, 1921, 7, 68, 2, 2, 1921, 1922, 7, 67, 2, 2, 1922, 1923, 7, 85, 2, 2, 1923, 1924, 7, 71, 2, 2, 1924, 1925, 7, 85, 2, 2, 1925, 364, 3, 2, 2, 2, 1926, 1927, 7, 70, 2, 2, 1927, 1928, 7, 72, 2, 2, 1928, 1929, 7, 85, 2, 2, 1929, 366, 3, 2, 2, 2, 1930, 1931, 7, 86, 2, 2, 1931, 1932, 7, 84, 2, 2, 1932, 1933, 7, 87, 2, 2, 1933, 1934, 7, 80, 2, 2, 1934, 1935, 7, 69, 2, 2, 1935, 1936, 7, 67, 2, 2, 1936, 1937, 7, 86, 2, 2, 1937, 1938, 7, 71, 2, 2, 1938, 368, 3, 2, 2, 2, 1939, 1940, 7, 67, 2, 2, 1940, 1941, 7, 80, 2, 2, 1941, 1942, 7, 67, 2, 2, 1942, 1943, 7, 78, 2, 2, 1943, 1944, 7, 91, 2, 2, 1944, 1945, 7, 92, 2, 2, 1945, 1946, 7, 71, 2, 2, 1946, 370, 3, 2, 2, 2, 1947, 1948, 7, 69, 2, 2, 1948, 1949, 7, 81, 2, 2, 1949, 1950, 7, 79, 2, 2, 1950, 1951, 7, 82, 2, 2, 1951, 1952, 7, 87, 2, 2, 1952, 1953, 7, 86, 2, 2, 1953, 1954, 7, 71, 2, 2, 1954, 372, 3, 2, 2, 2, 1955, 1956, 7, 78, 2, 2, 1956, 1957, 7, 75, 2, 2, 1957, 1958, 7, 85, 2, 2, 1958, 1959, 7, 86, 2, 2, 1959, 374, 3, 2, 2, 2, 1960, 1961, 7, 85, 2, 2, 1961, 1962, 7, 86, 2, 2, 1962, 1963, 7, 67, 2, 2, 1963, 1964, 7, 86, 2, 2, 1964, 1965, 7, 75, 2, 2, 1965, 1966, 7, 85, 2, 2, 1966, 1967, 7, 86, 2, 2, 1967, 1968, 7, 75, 2, 2, 1968, 1969, 7, 69, 2, 2, 1969, 1970, 7, 85, 2, 2, 1970, 376, 3, 2, 2, 2, 1971, 1972, 7, 82, 2, 2, 1972, 1973, 7, 67, 2, 2, 1973, 1974, 7, 84, 2, 2, 1974, 1975, 7, 86, 2, 2, 1975, 1976, 7, 75, 2, 2, 1976, 1977, 7, 86, 2, 2, 1977, 1978, 7, 75, 2, 2, 1978, 1979, 7, 81, 2, 2, 1979, 1980, 7, 80, 2, 2, 1980, 1981, 7, 71, 2, 2, 1981, 1982, 7, 70, 2, 2, 1982, 378, 3, 2, 2, 2, 1983, 1984, 7, 71, 2, 2, 1984, 1985, 7, 90, 2, 2, 1985, 1986, 7, 86, 2, 2, 1986, 1987, 7, 71, 2, 2, 1987, 1988, 7, 84, 2, 2, 1988, 1989, 7, 80, 2, 2, 1989, 1990, 7, 67, 2, 2, 1990, 1991, 7, 78, 2, 2, 1991, 380, 3, 2, 2, 2, 1992, 1993, 7, 70, 2, 2, 1993, 1994, 7, 71, 2, 2, 1994, 1995, 7, 72, 2, 2, 1995, 1996, 7, 75, 2, 2, 1996, 1997, 7, 80, 2, 2, 1997, 1998, 7, 71, 2, 2, 1998, 1999, 7, 70, 2, 2, 1999, 382, 3, 2, 2, 2, 2000, 2001, 7, 84, 2, 2, 2001, 2002, 7, 71, 2, 2, 2002, 2003, 7, 88, 2, 2, 2003, 2004, 7, 81, 2, 2, 2004, 2005, 7, 77, 2, 2, 2005, 2006, 7, 71, 2, 2, 2006, 384, 3, 2, 2, 2, 2007, 2008, 7, 73, 2, 2, 2008, 2009, 7, 84, 2, 2, 2009, 2010, 7, 67, 2, 2, 2010, 2011, 7, 80, 2, 2, 2011, 2012, 7, 86, 2, 2, 2012, 386, 3, 2, 2, 2, 2013, 2014, 7, 78, 2, 2, 2014, 2015, 7, 81, 2, 2, 2015, 2016, 7, 69, 2, 2, 2016, 2017, 7, 77, 2, 2, 2017, 388, 3, 2, 2, 2, 2018, 2019, 7, 87, 2, 2, 2019, 2020, 7, 80, 2, 2, 2020, 2021, 7, 78, 2, 2, 2021, 2022, 7, 81, 2, 2, 2022, 2023, 7, 69, 2, 2, 2023, 2024, 7, 77, 2, 2, 2024, 390, 3, 2, 2, 2, 2025, 2026, 7, 79, 2, 2, 2026, 2027, 7, 85, 2, 2, 2027, 2028, 7, 69, 2, 2, 2028, 2029, 7, 77, 2, 2, 2029, 392, 3, 2, 2, 2, 2030, 2031, 7, 84, 2, 2, 2031, 2032, 7, 71, 2, 2, 2032, 2033, 7, 82, 2, 2, 2033, 2034, 7, 67, 2, 2, 2034, 2035, 7, 75, 2, 2, 2035, 2036, 7, 84, 2, 2, 2036, 394, 3, 2, 2, 2, 2037, 2038, 7, 84, 2, 2, 2038, 2039, 7, 71, 2, 2, 2039, 2040, 7, 69, 2, 2, 2040, 2041, 7, 81, 2, 2, 2041, 2042, 7, 88, 2, 2, 2042, 2043, 7, 71, 2, 2, 2043, 2044, 7, 84, 2, 2, 2044, 396, 3, 2, 2, 2, 2045, 2046, 7, 71, 2, 2, 2046, 2047, 7, 90, 2, 2, 2047, 2048, 7, 82, 2, 2, 2048, 2049, 7, 81, 2, 2, 2049, 2050, 7, 84, 2, 2, 2050, 2051, 7, 86, 2, 2, 2051, 398, 3, 2, 2, 2, 2052, 2053, 7, 75, 2, 2, 2053, 2054, 7, 79, 2, 2, 2054, 2055, 7, 82, 2, 2, 2055, 2056, 7, 81, 2, 2, 2056, 2057, 7, 84, 2, 2, 2057, 2058, 7, 86, 2, 2, 2058, 400, 3, 2, 2, 2, 2059, 2060, 7, 78, 2, 2, 2060, 2061, 7, 81, 2, 2, 2061, 2062, 7, 67, 2, 2, 2062, 2063, 7, 70, 2, 2, 2063, 402, 3, 2, 2, 2, 2064, 2065, 7, 84, 2, 2, 2065, 2066, 7, 81, 2, 2, 2066, 2067, 7, 78, 2, 2, 2067, 2068, 7, 71, 2, 2, 2068, 404, 3, 2, 2, 2, 2069, 2070, 7, 84, 2, 2, 2070, 2071, 7, 81, 2, 2, 2071, 2072, 7, 78, 2, 2, 2072, 2073, 7, 71, 2, 2, 2073, 2074, 7, 85, 2, 2, 2074, 406, 3, 2, 2, 2, 2075, 2076, 7, 69, 2, 2, 2076, 2077, 7, 81, 2, 2, 2077, 2078, 7, 79, 2, 2, 2078, 2079, 7, 82, 2, 2, 2079, 2080, 7, 67, 2, 2, 2080, 2081, 7, 69, 2, 2, 2081, 2082, 7, 86, 2, 2, 2082, 2083, 7, 75, 2, 2, 2083, 2084, 7, 81, 2, 2, 2084, 2085, 7, 80, 2, 2, 2085, 2086, 7, 85, 2, 2, 2086, 408, 3, 2, 2, 2, 2087, 2088, 7, 82, 2, 2, 2088, 2089, 7, 84, 2, 2, 2089, 2090, 7, 75, 2, 2, 2090, 2091, 7, 80, 2, 2, 2091, 2092, 7, 69, 2, 2, 2092, 2093, 7, 75, 2, 2, 2093, 2094, 7, 82, 2, 2, 2094, 2095, 7, 67, 2, 2, 2095, 2096, 7, 78, 2, 2, 2096, 2097, 7, 85, 2, 2, 2097, 410, 3, 2, 2, 2, 2098, 2099, 7, 86, 2, 2, 2099, 2100, 7, 84, 2, 2, 2100, 2101, 7, 67, 2, 2, 2101, 2102, 7, 80, 2, 2, 2102, 2103, 7, 85, 2, 2, 2103, 2104, 7, 67, 2, 2, 2104, 2105, 7, 69, 2, 2, 2105, 2106, 7, 86, 2, 2, 2106, 2107, 7, 75, 2, 2, 2107, 2108, 7, 81, 2, 2, 2108, 2109, 7, 80, 2, 2, 2109, 2110, 7, 85, 2, 2, 2110, 412, 3, 2, 2, 2, 2111, 2112, 7, 75, 2, 2, 2112, 2113, 7, 80, 2, 2, 2113, 2114, 7, 70, 2, 2, 2114, 2115, 7, 71, 2, 2, 2115, 2116, 7, 90, 2, 2, 2116, 414, 3, 2, 2, 2, 2117, 2118, 7, 75, 2, 2, 2118, 2119, 7, 80, 2, 2, 2119, 2120, 7, 70, 2, 2, 2120, 2121, 7, 71, 2, 2, 2121, 2122, 7, 90, 2, 2, 2122, 2123, 7, 71, 2, 2, 2123, 2124, 7, 85, 2, 2, 2124, 416, 3, 2, 2, 2, 2125, 2126, 7, 78, 2, 2, 2126, 2127, 7, 81, 2, 2, 2127, 2128, 7, 69, 2, 2, 2128, 2129, 7, 77, 2, 2, 2129, 2130, 7, 85, 2, 2, 2130, 418, 3, 2, 2, 2, 2131, 2132, 7, 81, 2, 2, 2132, 2133, 7, 82, 2, 2, 2133, 2134, 7, 86, 2, 2, 2134, 2135, 7, 75, 2, 2, 2135, 2136, 7, 81, 2, 2, 2136, 2137, 7, 80, 2, 2, 2137, 420, 3, 2, 2, 2, 2138, 2139, 7, 67, 2, 2, 2139, 2140, 7, 80, 2, 2, 2140, 2141, 7, 86, 2, 2, 2141, 2142, 7, 75, 2, 2, 2142, 422, 3, 2, 2, 2, 2143, 2144, 7, 78, 2, 2, 2144, 2145, 7, 81, 2, 2, 2145, 2146, 7, 69, 2, 2, 2146, 2147, 7, 67, 2, 2, 2147, 2148, 7, 78, 2, 2, 2148, 424, 3, 2, 2, 2, 2149, 2150, 7, 75, 2, 2, 2150, 2151, 7, 80, 2, 2, 2151, 2152, 7, 82, 2, 2, 2152, 2153, 7, 67, 2, 2, 2153, 2154, 7, 86, 2, 2, 2154, 2155, 7, 74, 2, 2, 2155, 426, 3, 2, 2, 2, 2156, 2157, 7, 89, 2, 2, 2157, 2158, 7, 67, 2, 2, 2158, 2159, 7, 86, 2, 2, 2159, 2160, 7, 71, 2, 2, 2160, 2161, 7, 84, 2, 2, 2161, 2162, 7, 79, 2, 2, 2162, 2163, 7, 67, 2, 2, 2163, 2164, 7, 84, 2, 2, 2164, 2165, 7, 77, 2, 2, 2165, 428, 3, 2, 2, 2, 2166, 2167, 7, 87, 2, 2, 2167, 2168, 7, 80, 2, 2, 2168, 2169, 7, 80, 2, 2, 2169, 2170, 7, 71, 2, 2, 2170, 2171, 7, 85, 2, 2, 2171, 2172, 7, 86, 2, 2, 2172, 430, 3, 2, 2, 2, 2173, 2174, 7, 79, 2, 2, 2174, 2175, 7, 67, 2, 2, 2175, 2176, 7, 86, 2, 2, 2176, 2177, 7, 69, 2, 2, 2177, 2178, 7, 74, 2, 2, 2178, 432, 3, 2, 2, 2, 2179, 2180, 7, 80, 2, 2, 2180, 2181, 7, 71, 2, 2, 2181, 2182, 7, 90, 2, 2, 2182, 2183, 7, 86, 2, 2, 2183, 434, 3, 2, 2, 2, 2184, 2185, 7, 89, 2, 2, 2185, 2186, 7, 75, 2, 2, 2186, 2187, 7, 86, 2, 2, 2187, 2188, 7, 74, 2, 2, 2188, 2189, 7, 75, 2, 2, 2189, 2190, 7, 80, 2, 2, 2190, 436, 3, 2, 2, 2, 2191, 2192, 7, 89, 2, 2, 2192, 2193, 7, 85, 2, 2, 2193, 438, 3, 2, 2, 2, 2194, 2195, 7, 85, 2, 2, 2195, 2196, 7, 91, 2, 2, 2196, 2197, 7, 85, 2, 2, 2197, 2198, 7, 86, 2, 2, 2198, 2199, 7, 71, 2, 2, 2199, 2200, 7, 79, 2, 2, 2200, 440, 3, 2, 2, 2, 2201, 2202, 7, 75, 2, 2, 2202, 2203, 7, 80, 2, 2, 2203, 2204, 7, 69, 2, 2, 2204, 2205, 7, 78, 2, 2, 2205, 2206, 7, 87, 2, 2, 2206, 2207, 7, 70, 2, 2, 2207, 2208, 7, 75, 2, 2, 2208, 2209, 7, 80, 2, 2, 2209, 2210, 7, 73, 2, 2, 2210, 442, 3, 2, 2, 2, 2211, 2212, 7, 71, 2, 2, 2212, 2213, 7, 90, 2, 2, 2213, 2214, 7, 69, 2, 2, 2214, 2215, 7, 78, 2, 2, 2215, 2216, 7, 87, 2, 2, 2216, 2217, 7, 70, 2, 2, 2217, 2218, 7, 75, 2, 2, 2218, 2219, 7, 80, 2, 2, 2219, 2220, 7, 73, 2, 2, 2220, 444, 3, 2, 2, 2, 2221, 2222, 7, 69, 2, 2, 2222, 2223, 7, 81, 2, 2, 2223, 2224, 7, 80, 2, 2, 2224, 2225, 7, 85, 2, 2, 2225, 2226, 7, 86, 2, 2, 2226, 2227, 7, 84, 2, 2, 2227, 2228, 7, 67, 2, 2, 2228, 2229, 7, 75, 2, 2, 2229, 2230, 7, 80, 2, 2, 2230, 2231, 7, 86, 2, 2, 2231, 2232, 7, 85, 2, 2, 2232, 446, 3, 2, 2, 2, 2233, 2234, 7, 73, 2, 2, 2234, 2235, 7, 71, 2, 2, 2235, 2236, 7, 80, 2, 2, 2236, 2237, 7, 71, 2, 2, 2237, 2238, 7, 84, 2, 2, 2238, 2239, 7, 67, 2, 2, 2239, 2240, 7, 86, 2, 2, 2240, 2241, 7, 71, 2, 2, 2241, 2242, 7, 70, 2, 2, 2242, 448, 3, 2, 2, 2, 2243, 2244, 7, 69, 2, 2, 2244, 2245, 7, 67, 2, 2, 2245, 2246, 7, 86, 2, 2, 2246, 2247, 7, 67, 2, 2, 2247, 2248, 7, 78, 2, 2, 2248, 2249, 7, 81, 2, 2, 2249, 2250, 7, 73, 2, 2, 2250, 450, 3, 2, 2, 2, 2251, 2252, 7, 78, 2, 2, 2252, 2253, 7, 67, 2, 2, 2253, 2254, 7, 80, 2, 2, 2254, 2255, 7, 73, 2, 2, 2255, 2256, 7, 87, 2, 2, 2256, 2257, 7, 67, 2, 2, 2257, 2258, 7, 73, 2, 2, 2258, 2259, 7, 71, 2, 2, 2259, 452, 3, 2, 2, 2, 2260, 2261, 7, 69, 2, 2, 2261, 2262, 7, 67, 2, 2, 2262, 2263, 7, 86, 2, 2, 2263, 2264, 7, 67, 2, 2, 2264, 2265, 7, 78, 2, 2, 2265, 2266, 7, 81, 2, 2, 2266, 2267, 7, 73, 2, 2, 2267, 2268, 7, 85, 2, 2, 2268, 454, 3, 2, 2, 2, 2269, 2270, 7, 88, 2, 2, 2270, 2271, 7, 75, 2, 2, 2271, 2272, 7, 71, 2, 2, 2272, 2273, 7, 89, 2, 2, 2273, 2274, 7, 85, 2, 2, 2274, 456, 3, 2, 2, 2, 2275, 2276, 7, 82, 2, 2, 2276, 2277, 7, 84, 2, 2, 2277, 2278, 7, 75, 2, 2, 2278, 2279, 7, 79, 2, 2, 2279, 2280, 7, 67, 2, 2, 2280, 2281, 7, 84, 2, 2, 2281, 2282, 7, 91, 2, 2, 2282, 458, 3, 2, 2, 2, 2283, 2284, 7, 77, 2, 2, 2284, 2285, 7, 71, 2, 2, 2285, 2286, 7, 91, 2, 2, 2286, 460, 3, 2, 2, 2, 2287, 2288, 7, 82, 2, 2, 2288, 2289, 7, 71, 2, 2, 2289, 2290, 7, 84, 2, 2, 2290, 2291, 7, 75, 2, 2, 2291, 2292, 7, 81, 2, 2, 2292, 2293, 7, 70, 2, 2, 2293, 462, 3, 2, 2, 2, 2294, 2295, 7, 85, 2, 2, 2295, 2296, 7, 91, 2, 2, 2296, 2297, 7, 85, 2, 2, 2297, 2298, 7, 86, 2, 2, 2298, 2299, 7, 71, 2, 2, 2299, 2300, 7, 79, 2, 2, 2300, 2301, 7, 97, 2, 2, 2301, 2302, 7, 86, 2, 2, 2302, 2303, 7, 75, 2, 2, 2303, 2304, 7, 79, 2, 2, 2304, 2305, 7, 71, 2, 2, 2305, 464, 3, 2, 2, 2, 2306, 2307, 7, 85, 2, 2, 2307, 2308, 7, 86, 2, 2, 2308, 2309, 7, 84, 2, 2, 2309, 2310, 7, 75, 2, 2, 2310, 2311, 7, 80, 2, 2, 2311, 2312, 7, 73, 2, 2, 2312, 466, 3, 2, 2, 2, 2313, 2314, 7, 67, 2, 2, 2314, 2315, 7, 84, 2, 2, 2315, 2316, 7, 84, 2, 2, 2316, 2317, 7, 67, 2, 2, 2317, 2318, 7, 91, 2, 2, 2318, 468, 3, 2, 2, 2, 2319, 2320, 7, 79, 2, 2, 2320, 2321, 7, 67, 2, 2, 2321, 2322, 7, 82, 2, 2, 2322, 470, 3, 2, 2, 2, 2323, 2324, 7, 69, 2, 2, 2324, 2325, 7, 74, 2, 2, 2325, 2326, 7, 67, 2, 2, 2326, 2327, 7, 84, 2, 2, 2327, 472, 3, 2, 2, 2, 2328, 2329, 7, 88, 2, 2, 2329, 2330, 7, 67, 2, 2, 2330, 2331, 7, 84, 2, 2, 2331, 2332, 7, 69, 2, 2, 2332, 2333, 7, 74, 2, 2, 2333, 2334, 7, 67, 2, 2, 2334, 2335, 7, 84, 2, 2, 2335, 474, 3, 2, 2, 2, 2336, 2337, 7, 68, 2, 2, 2337, 2338, 7, 75, 2, 2, 2338, 2339, 7, 80, 2, 2, 2339, 2340, 7, 67, 2, 2, 2340, 2341, 7, 84, 2, 2, 2341, 2342, 7, 91, 2, 2, 2342, 476, 3, 2, 2, 2, 2343, 2344, 7, 88, 2, 2, 2344, 2345, 7, 67, 2, 2, 2345, 2346, 7, 84, 2, 2, 2346, 2347, 7, 68, 2, 2, 2347, 2348, 7, 75, 2, 2, 2348, 2349, 7, 80, 2, 2, 2349, 2350, 7, 67, 2, 2, 2350, 2351, 7, 84, 2, 2, 2351, 2352, 7, 91, 2, 2, 2352, 478, 3, 2, 2, 2, 2353, 2354, 7, 68, 2, 2, 2354, 2355, 7, 91, 2, 2, 2355, 2356, 7, 86, 2, 2, 2356, 2357, 7, 71, 2, 2, 2357, 2358, 7, 85, 2, 2, 2358, 480, 3, 2, 2, 2, 2359, 2360, 7, 70, 2, 2, 2360, 2361, 7, 71, 2, 2, 2361, 2362, 7, 69, 2, 2, 2362, 2363, 7, 75, 2, 2, 2363, 2364, 7, 79, 2, 2, 2364, 2365, 7, 67, 2, 2, 2365, 2366, 7, 78, 2, 2, 2366, 482, 3, 2, 2, 2, 2367, 2368, 7, 86, 2, 2, 2368, 2369, 7, 75, 2, 2, 2369, 2370, 7, 80, 2, 2, 2370, 2371, 7, 91, 2, 2, 2371, 2372, 7, 75, 2, 2, 2372, 2373, 7, 80, 2, 2, 2373, 2374, 7, 86, 2, 2, 2374, 484, 3, 2, 2, 2, 2375, 2376, 7, 85, 2, 2, 2376, 2377, 7, 79, 2, 2, 2377, 2378, 7, 67, 2, 2, 2378, 2379, 7, 78, 2, 2, 2379, 2380, 7, 78, 2, 2, 2380, 2381, 7, 75, 2, 2, 2381, 2382, 7, 80, 2, 2, 2382, 2383, 7, 86, 2, 2, 2383, 486, 3, 2, 2, 2, 2384, 2385, 7, 75, 2, 2, 2385, 2386, 7, 80, 2, 2, 2386, 2387, 7, 86, 2, 2, 2387, 488, 3, 2, 2, 2, 2388, 2389, 7, 68, 2, 2, 2389, 2390, 7, 75, 2, 2, 2390, 2391, 7, 73, 2, 2, 2391, 2392, 7, 75, 2, 2, 2392, 2393, 7, 80, 2, 2, 2393, 2394, 7, 86, 2, 2, 2394, 490, 3, 2, 2, 2, 2395, 2396, 7, 72, 2, 2, 2396, 2397, 7, 78, 2, 2, 2397, 2398, 7, 81, 2, 2, 2398, 2399, 7, 67, 2, 2, 2399, 2400, 7, 86, 2, 2, 2400, 492, 3, 2, 2, 2, 2401, 2402, 7, 70, 2, 2, 2402, 2403, 7, 81, 2, 2, 2403, 2404, 7, 87, 2, 2, 2404, 2405, 7, 68, 2, 2, 2405, 2406, 7, 78, 2, 2, 2406, 2407, 7, 71, 2, 2, 2407, 494, 3, 2, 2, 2, 2408, 2409, 7, 70, 2, 2, 2409, 2410, 7, 67, 2, 2, 2410, 2411, 7, 86, 2, 2, 2411, 2412, 7, 71, 2, 2, 2412, 496, 3, 2, 2, 2, 2413, 2414, 7, 86, 2, 2, 2414, 2415, 7, 75, 2, 2, 2415, 2416, 7, 79, 2, 2, 2416, 2417, 7, 71, 2, 2, 2417, 498, 3, 2, 2, 2, 2418, 2419, 7, 86, 2, 2, 2419, 2420, 7, 75, 2, 2, 2420, 2421, 7, 79, 2, 2, 2421, 2422, 7, 71, 2, 2, 2422, 2423, 7, 85, 2, 2, 2423, 2424, 7, 86, 2, 2, 2424, 2425, 7, 67, 2, 2, 2425, 2426, 7, 79, 2, 2, 2426, 2427, 7, 82, 2, 2, 2427, 500, 3, 2, 2, 2, 2428, 2429, 7, 79, 2, 2, 2429, 2430, 7, 87, 2, 2, 2430, 2431, 7, 78, 2, 2, 2431, 2432, 7, 86, 2, 2, 2432, 2433, 7, 75, 2, 2, 2433, 2434, 7, 85, 2, 2, 2434, 2435, 7, 71, 2, 2, 2435, 2436, 7, 86, 2, 2, 2436, 502, 3, 2, 2, 2, 2437, 2438, 7, 68, 2, 2, 2438, 2439, 7, 81, 2, 2, 2439, 2440, 7, 81, 2, 2, 2440, 2441, 7, 78, 2, 2, 2441, 2442, 7, 71, 2, 2, 2442, 2443, 7, 67, 2, 2, 2443, 2444, 7, 80, 2, 2, 2444, 504, 3, 2, 2, 2, 2445, 2446, 7, 84, 2, 2, 2446, 2447, 7, 67, 2, 2, 2447, 2448, 7, 89, 2, 2, 2448, 506, 3, 2, 2, 2, 2449, 2450, 7, 84, 2, 2, 2450, 2451, 7, 81, 2, 2, 2451, 2452, 7, 89, 2, 2, 2452, 508, 3, 2, 2, 2, 2453, 2454, 7, 80, 2, 2, 2454, 2455, 7, 87, 2, 2, 2455, 2456, 7, 78, 2, 2, 2456, 2457, 7, 78, 2, 2, 2457, 510, 3, 2, 2, 2, 2458, 2459, 7, 70, 2, 2, 2459, 2460, 7, 67, 2, 2, 2460, 2461, 7, 86, 2, 2, 2461, 2462, 7, 71, 2, 2, 2462, 2463, 7, 86, 2, 2, 2463, 2464, 7, 75, 2, 2, 2464, 2465, 7, 79, 2, 2, 2465, 2466, 7, 71, 2, 2, 2466, 512, 3, 2, 2, 2, 2467, 2468, 7, 63, 2, 2, 2468, 514, 3, 2, 2, 2, 2469, 2470, 7, 64, 2, 2, 2470, 516, 3, 2, 2, 2, 2471, 2472, 7, 62, 2, 2, 2472, 518, 3, 2, 2, 2, 2473, 2474, 7, 35, 2, 2, 2474, 520, 3, 2, 2, 2, 2475, 2476, 7, 128, 2, 2, 2476, 522, 3, 2, 2, 2, 2477, 2478, 7, 126, 2, 2, 2478, 524, 3, 2, 2, 2, 2479, 2480, 7, 40, 2, 2, 2480, 526, 3, 2, 2, 2, 2481, 2482, 7, 96, 2, 2, 2482, 528, 3, 2, 2, 2, 2483, 2484, 7, 48, 2, 2, 2484, 530, 3, 2, 2, 2, 2485, 2486, 7, 93, 2, 2, 2486, 532, 3, 2, 2, 2, 2487, 2488, 7, 95, 2, 2, 2488, 534, 3, 2, 2, 2, 2489, 2490, 7, 42, 2, 2, 2490, 536, 3, 2, 2, 2, 2491, 2492, 7, 43, 2, 2, 2492, 538, 3, 2, 2, 2, 2493, 2494, 7, 46, 2, 2, 2494, 540, 3, 2, 2, 2, 2495, 2496, 7, 61, 2, 2, 2496, 542, 3, 2, 2, 2, 2497, 2498, 7, 66, 2, 2, 2498, 544, 3, 2, 2, 2, 2499, 2500, 7, 41, 2, 2, 2500, 546, 3, 2, 2, 2, 2501, 2502, 7, 36, 2, 2, 2502, 548, 3, 2, 2, 2, 2503, 2504, 7, 98, 2, 2, 2504, 550, 3, 2, 2, 2, 2505, 2506, 7, 60, 2, 2, 2506, 552, 3, 2, 2, 2, 2507, 2508, 7, 44, 2, 2, 2508, 554, 3, 2, 2, 2, 2509, 2510, 7, 97, 2, 2, 2510, 556, 3, 2, 2, 2, 2511, 2512, 7, 47, 2, 2, 2512, 558, 3, 2, 2, 2, 2513, 2514, 7, 45, 2, 2, 2514, 560, 3, 2, 2, 2, 2515, 2516, 7, 39, 2, 2, 2516, 562, 3, 2, 2, 2, 2517, 2518, 7, 126, 2, 2, 2518, 2519, 7, 126, 2, 2, 2519, 564, 3, 2, 2, 2, 2520, 2521, 7, 47, 2, 2, 2521, 2522, 7, 47, 2, 2, 2522, 566, 3, 2, 2, 2, 2523, 2524, 7, 49, 2, 2, 2524, 568, 3, 2, 2, 2, 2525, 2526, 7, 48, 2, 2, 2526, 2527, 5, 587, 294, 2, 2527, 570, 3, 2, 2, 2, 2528, 2529, 9, 4, 2, 2, 2529, 2530, 5, 583, 292, 2, 2530, 572, 3, 2, 2, 2, 2531, 2535, 5, 595, 298, 2, 2532, 2535, 5, 597, 299, 2, 2533, 2535, 5, 601, 301, 2, 2534, 2531, 3, 2, 2, 2, 2534, 2532, 3, 2, 2, 2, 2534, 2533, 3, 2, 2, 2, 2535, 574, 3, 2, 2, 2, 2536, 2538, 5, 591, 296, 2, 2537, 2536, 3, 2, 2, 2, 2538, 2539, 3, 2, 2, 2, 2539, 2537, 3, 2, 2, 2, 2539, 2540, 3, 2, 2, 2, 2540, 576, 3, 2, 2, 2, 2541, 2543, 5, 591, 296, 2, 2542, 2541, 3, 2, 2, 2, 2543, 2544, 3, 2, 2, 2, 2544, 2542, 3, 2, 2, 2, 2544, 2545, 3, 2, 2, 2, 2545, 2547, 3, 2, 2, 2, 2546, 2542, 3, 2, 2, 2, 2546, 2547, 3, 2, 2, 2, 2547, 2548, 3, 2, 2, 2, 2548, 2550, 7, 48, 2, 2, 2549, 2551, 5, 591, 296, 2, 2550, 2549, 3, 2, 2, 2, 2551, 2552, 3, 2, 2, 2, 2552, 2550, 3, 2, 2, 2, 2552, 2553, 3, 2, 2, 2, 2553, 2585, 3, 2, 2, 2, 2554, 2556, 5, 591, 296, 2, 2555, 2554, 3, 2, 2, 2, 2556, 2557, 3, 2, 2, 2, 2557, 2555, 3, 2, 2, 2, 2557, 2558, 3, 2, 2, 2, 2558, 2559, 3, 2, 2, 2, 2559, 2560, 7, 48, 2, 2, 2560, 2561, 5, 585, 293, 2, 2561, 2585, 3, 2, 2, 2, 2562, 2564, 5, 591, 296, 2, 2563, 2562, 3, 2, 2, 2, 2564, 2565, 3, 2, 2, 2, 2565, 2563, 3, 2, 2, 2, 2565, 2566, 3, 2, 2, 2, 2566, 2568, 3, 2, 2, 2, 2567, 2563, 3, 2, 2, 2, 2567, 2568, 3, 2, 2, 2, 2568, 2569, 3, 2, 2, 2, 2569, 2571, 7, 48, 2, 2, 2570, 2572, 5, 591, 296, 2, 2571, 2570, 3, 2, 2, 2, 2572, 2573, 3, 2, 2, 2, 2573, 2571, 3, 2, 2, 2, 2573, 2574, 3, 2, 2, 2, 2574, 2575, 3, 2, 2, 2, 2575, 2576, 5, 585, 293, 2, 2576, 2585, 3, 2, 2, 2, 2577, 2579, 5, 591, 296, 2, 2578, 2577, 3, 2, 2, 2, 2579, 2580, 3, 2, 2, 2, 2580, 2578, 3, 2, 2, 2, 2580, 2581, 3, 2, 2, 2, 2581, 2582, 3, 2, 2, 2, 2582, 2583, 5, 585, 293, 2, 2583, 2585, 3, 2, 2, 2, 2584, 2546, 3, 2, 2, 2, 2584, 2555, 3, 2, 2, 2, 2584, 2567, 3, 2, 2, 2, 2584, 2578, 3, 2, 2, 2, 2585, 578, 3, 2, 2, 2, 2586, 2587, 5, 599, 300, 2, 2587, 580, 3, 2, 2, 2, 2588, 2589, 5, 587, 294, 2, 2589, 582, 3, 2, 2, 2, 2590, 2591, 5, 589, 295, 2, 2591, 584, 3, 2, 2, 2, 2592, 2594, 7, 71, 2, 2, 2593, 2595, 9, 5, 2, 2, 2594, 2593, 3, 2, 2, 2, 2594, 2595, 3, 2, 2, 2, 2595, 2597, 3, 2, 2, 2, 2596, 2598, 5, 591, 296, 2, 2597, 2596, 3, 2, 2, 2, 2598, 2599, 3, 2, 2, 2, 2599, 2597, 3, 2, 2, 2, 2599, 2600, 3, 2, 2, 2, 2600, 586, 3, 2, 2, 2, 2601, 2603, 9, 6, 2, 2, 2602, 2601, 3, 2, 2, 2, 2603, 2606, 3, 2, 2, 2, 2604, 2605, 3, 2, 2, 2, 2604, 2602, 3, 2, 2, 2, 2605, 2608, 3, 2, 2, 2, 2606, 2604, 3, 2, 2, 2, 2607, 2609, 9, 7, 2, 2, 2608, 2607, 3, 2, 2, 2, 2609, 2610, 3, 2, 2, 2, 2610, 2611, 3, 2, 2, 2, 2610, 2608, 3, 2, 2, 2, 2611, 2615, 3, 2, 2, 2, 2612, 2614, 9, 6, 2, 2, 2613, 2612, 3, 2, 2, 2, 2614, 2617, 3, 2, 2, 2, 2615, 2613, 3, 2, 2, 2, 2615, 2616, 3, 2, 2, 2, 2616, 588, 3, 2, 2, 2, 2617, 2615, 3, 2, 2, 2, 2618, 2620, 9, 8, 2, 2, 2619, 2618, 3, 2, 2, 2, 2620, 2623, 3, 2, 2, 2, 2621, 2622, 3, 2, 2, 2, 2621, 2619, 3, 2, 2, 2, 2622, 2625, 3, 2, 2, 2, 2623, 2621, 3, 2, 2, 2, 2624, 2626, 9, 9, 2, 2, 2625, 2624, 3, 2, 2, 2, 2626, 2627, 3, 2, 2, 2, 2627, 2628, 3, 2, 2, 2, 2627, 2625, 3, 2, 2, 2, 2628, 2632, 3, 2, 2, 2, 2629, 2631, 9, 8, 2, 2, 2630, 2629, 3, 2, 2, 2, 2631, 2634, 3, 2, 2, 2, 2632, 2630, 3, 2, 2, 2, 2632, 2633, 3, 2, 2, 2, 2633, 590, 3, 2, 2, 2, 2634, 2632, 3, 2, 2, 2, 2635, 2636, 9, 10, 2, 2, 2636, 592, 3, 2, 2, 2, 2637, 2638, 9, 11, 2, 2, 2638, 594, 3, 2, 2, 2, 2639, 2647, 7, 36, 2, 2, 2640, 2641, 7, 94, 2, 2, 2641, 2646, 11, 2, 2, 2, 2642, 2643, 7, 36, 2, 2, 2643, 2646, 7, 36, 2, 2, 2644, 2646, 10, 12, 2, 2, 2645, 2640, 3, 2, 2, 2, 2645, 2642, 3, 2, 2, 2, 2645, 2644, 3, 2, 2, 2, 2646, 2649, 3, 2, 2, 2, 2647, 2645, 3, 2, 2, 2, 2647, 2648, 3, 2, 2, 2, 2648, 2650, 3, 2, 2, 2, 2649, 2647, 3, 2, 2, 2, 2650, 2651, 7, 36, 2, 2, 2651, 596, 3, 2, 2, 2, 2652, 2660, 7, 41, 2, 2, 2653, 2654, 7, 94, 2, 2, 2654, 2659, 11, 2, 2, 2, 2655, 2656, 7, 41, 2, 2, 2656, 2659, 7, 41, 2, 2, 2657, 2659, 10, 13, 2, 2, 2658, 2653, 3, 2, 2, 2, 2658, 2655, 3, 2, 2, 2, 2658, 2657, 3, 2, 2, 2, 2659, 2662, 3, 2, 2, 2, 2660, 2658, 3, 2, 2, 2, 2660, 2661, 3, 2, 2, 2, 2661, 2663, 3, 2, 2, 2, 2662, 2660, 3, 2, 2, 2, 2663, 2664, 7, 41, 2, 2, 2664, 598, 3, 2, 2, 2, 2665, 2666, 7, 68, 2, 2, 2666, 2668, 7, 41, 2, 2, 2667, 2669, 9, 14, 2, 2, 2668, 2667, 3, 2, 2, 2, 2669, 2670, 3, 2, 2, 2, 2670, 2668, 3, 2, 2, 2, 2670, 2671, 3, 2, 2, 2, 2671, 2672, 3, 2, 2, 2, 2672, 2673, 7, 41, 2, 2, 2673, 600, 3, 2, 2, 2, 2674, 2682, 7, 98, 2, 2, 2675, 2676, 7, 94, 2, 2, 2676, 2681, 11, 2, 2, 2, 2677, 2678, 7, 98, 2, 2, 2678, 2681, 7, 98, 2, 2, 2679, 2681, 10, 15, 2, 2, 2680, 2675, 3, 2, 2, 2, 2680, 2677, 3, 2, 2, 2, 2680, 2679, 3, 2, 2, 2, 2681, 2684, 3, 2, 2, 2, 2682, 2680, 3, 2, 2, 2, 2682, 2683, 3, 2, 2, 2, 2683, 2685, 3, 2, 2, 2, 2684, 2682, 3, 2, 2, 2, 2685, 2686, 7, 98, 2, 2, 2686, 602, 3, 2, 2, 2, 38, 2, 606, 616, 628, 633, 637, 641, 647, 651, 653, 2534, 2539, 2544, 2546, 2552, 2557, 2565, 2567, 2573, 2580, 2584, 2594, 2599, 2604, 2610, 2615, 2621, 2627, 2632, 2645, 2647, 2658, 2660, 2670, 2680, 2682, 3, 2, 3, 2] \ No newline at end of file diff --git a/src/lib/flinksql/FlinkSqlLexer.js b/src/lib/flinksql/FlinkSqlLexer.js new file mode 100644 index 0000000..63bb2ba --- /dev/null +++ b/src/lib/flinksql/FlinkSqlLexer.js @@ -0,0 +1,2314 @@ +// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlLexer.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0002\u0125\u0a7f\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0003\u0002\u0006\u0002\u025d\n\u0002\r\u0002\u000e\u0002\u025e", + "\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003", + "\u0007\u0003\u0267\n\u0003\f\u0003\u000e\u0003\u026a\u000b\u0003\u0003", + "\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003", + "\u0004\u0003\u0004\u0003\u0004\u0005\u0004\u0275\n\u0004\u0003\u0004", + "\u0007\u0004\u0278\n\u0004\f\u0004\u000e\u0004\u027b\u000b\u0004\u0003", + "\u0004\u0005\u0004\u027e\n\u0004\u0003\u0004\u0003\u0004\u0005\u0004", + "\u0282\n\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0005", + "\u0004\u0288\n\u0004\u0003\u0004\u0003\u0004\u0005\u0004\u028c\n\u0004", + "\u0005\u0004\u028e\n\u0004\u0003\u0004\u0003\u0004\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003", + "\u0007\u0003\u0007\u0003\u0007\u0003\b\u0003\b\u0003\b\u0003\t\u0003", + "\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003\n\u0003\u000b\u0003", + "\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003", + "\u000b\u0003\u000b\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", + "\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003", + "\u000f\u0003\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003", + "\u0018\u0003\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u001a\u0003", + "\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003", + "\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001e\u0003\u001e\u0003\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003!\u0003!\u0003!\u0003!", + "\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003\"\u0003#\u0003", + "#\u0003#\u0003#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003%\u0003", + "%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003\'\u0003\'\u0003", + "\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003(\u0003(\u0003", + "(\u0003(\u0003(\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003", + ",\u0003,\u0003-\u0003-\u0003-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003", + ".\u0003.\u0003.\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u00030\u0003", + "0\u00030\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u0003", + "2\u00032\u00032\u00032\u00032\u00033\u00033\u00033\u00033\u00033\u0003", + "3\u00034\u00034\u00034\u00034\u00034\u00035\u00035\u00035\u00035\u0003", + "5\u00035\u00035\u00035\u00036\u00036\u00036\u00037\u00037\u00037\u0003", + "7\u00037\u00037\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u0003:\u0003:\u0003", + ":\u0003:\u0003:\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003", + ";\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003", + "=\u0003=\u0003=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003", + ">\u0003>\u0003>\u0003>\u0003?\u0003?\u0003?\u0003?\u0003?\u0003?\u0003", + "?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003@\u0003@\u0003", + "@\u0003@\u0003@\u0003@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", + "A\u0003A\u0003B\u0003B\u0003B\u0003B\u0003B\u0003B\u0003C\u0003C\u0003", + "C\u0003C\u0003C\u0003C\u0003D\u0003D\u0003D\u0003D\u0003D\u0003E\u0003", + "E\u0003E\u0003E\u0003E\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003", + "F\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003K\u0003", + "K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003", + "L\u0003L\u0003L\u0003L\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0003N\u0003N\u0003N\u0003N\u0003N\u0003O\u0003O\u0003O\u0003O\u0003", + "O\u0003O\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", + "P\u0003P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003R\u0003S\u0003S\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003T\u0003T\u0003T\u0003T\u0003", + "T\u0003U\u0003U\u0003U\u0003U\u0003U\u0003V\u0003V\u0003V\u0003V\u0003", + "V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003X\u0003X\u0003", + "X\u0003X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003[\u0003", + "[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003", + "\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003\\\u0003]\u0003", + "]\u0003]\u0003]\u0003]\u0003^\u0003^\u0003^\u0003^\u0003^\u0003^\u0003", + "_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003`\u0003`\u0003`\u0003", + "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003a\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003c\u0003", + "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003", + "c\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003", + "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003f\u0003f\u0003f\u0003", + "f\u0003f\u0003f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003i\u0003", + "i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003j\u0003j\u0003k\u0003k\u0003", + "k\u0003k\u0003k\u0003l\u0003l\u0003l\u0003l\u0003l\u0003l\u0003m\u0003", + "m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003", + "m\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003", + "o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0003p\u0003p\u0003p\u0003", + "p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003q\u0003", + "r\u0003r\u0003r\u0003r\u0003r\u0003s\u0003s\u0003s\u0003s\u0003s\u0003", + "s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "t\u0003t\u0003u\u0003u\u0003u\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", + "v\u0003v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", + "w\u0003w\u0003x\u0003x\u0003x\u0003x\u0003x\u0003x\u0003y\u0003y\u0003", + "y\u0003y\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003", + "z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003", + "~\u0003~\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f", + "\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003\u0080\u0003\u0080", + "\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0080", + "\u0003\u0080\u0003\u0080\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081", + "\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081", + "\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082", + "\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083\u0003\u0083", + "\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084", + "\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085", + "\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003\u0086", + "\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086", + "\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086", + "\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u008a\u0003\u008a\u0003\u008a", + "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003\u008b", + "\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b", + "\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c\u0003\u008c\u0003\u008c", + "\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c", + "\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d", + "\u0003\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0003\u008e\u0003\u008e", + "\u0003\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f", + "\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u0090\u0003\u0090\u0003\u0090", + "\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091", + "\u0003\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092", + "\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0093\u0003\u0093", + "\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093\u0003\u0093", + "\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094", + "\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003\u0095\u0003\u0095", + "\u0003\u0095\u0003\u0095\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0096", + "\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0097\u0003\u0097\u0003\u0097", + "\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0097\u0003\u0098", + "\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0098\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099", + "\u0003\u0099\u0003\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009b", + "\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c", + "\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009d\u0003\u009d\u0003\u009d", + "\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009e\u0003\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e", + "\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f", + "\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0", + "\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1", + "\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003\u00a2\u0003\u00a2", + "\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0003\u00a4\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5", + "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a6\u0003\u00a6", + "\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6", + "\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7", + "\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8", + "\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8", + "\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9", + "\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa", + "\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00ab", + "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab", + "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ac", + "\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac", + "\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", + "\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", + "\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae", + "\u0003\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af", + "\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0", + "\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0", + "\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1", + "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", + "\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003\u00b3", + "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3", + "\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4", + "\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003\u00b5", + "\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5", + "\u0003\u00b5\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6", + "\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b7", + "\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b8", + "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00bb\u0003\u00bb", + "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be", + "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00bf", + "\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf", + "\u0003\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0", + "\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", + "\u0003\u00c1\u0003\u00c1\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2", + "\u0003\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c3", + "\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003\u00c4", + "\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5", + "\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7", + "\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c7\u0003\u00c8", + "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", + "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca", + "\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc", + "\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0", + "\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0", + "\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1", + "\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2", + "\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3", + "\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4", + "\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5", + "\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6", + "\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d7", + "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003\u00d7", + "\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8", + "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00da", + "\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da", + "\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00dc\u0003\u00dc\u0003\u00dc", + "\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd", + "\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd", + "\u0003\u00dd\u0003\u00dd\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de", + "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df", + "\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df", + "\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0", + "\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1", + "\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1", + "\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2", + "\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3", + "\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3", + "\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4", + "\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5", + "\u0003\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6", + "\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7", + "\u0003\u00e7\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8", + "\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8", + "\u0003\u00e8\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9", + "\u0003\u00e9\u0003\u00e9\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea", + "\u0003\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb", + "\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed", + "\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed\u0003\u00ed", + "\u0003\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee", + "\u0003\u00ee\u0003\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef", + "\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef", + "\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0", + "\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f1", + "\u0003\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2", + "\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f2\u0003\u00f3\u0003\u00f3", + "\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3", + "\u0003\u00f3\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5", + "\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5", + "\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6", + "\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7", + "\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8", + "\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00fa", + "\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa", + "\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003\u00fb\u0003\u00fb", + "\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb", + "\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc", + "\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd", + "\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003\u00ff", + "\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003\u0100\u0003\u0100\u0003\u0100", + "\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100", + "\u0003\u0101\u0003\u0101\u0003\u0102\u0003\u0102\u0003\u0103\u0003\u0103", + "\u0003\u0104\u0003\u0104\u0003\u0105\u0003\u0105\u0003\u0106\u0003\u0106", + "\u0003\u0107\u0003\u0107\u0003\u0108\u0003\u0108\u0003\u0109\u0003\u0109", + "\u0003\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010c\u0003\u010c", + "\u0003\u010d\u0003\u010d\u0003\u010e\u0003\u010e\u0003\u010f\u0003\u010f", + "\u0003\u0110\u0003\u0110\u0003\u0111\u0003\u0111\u0003\u0112\u0003\u0112", + "\u0003\u0113\u0003\u0113\u0003\u0114\u0003\u0114\u0003\u0115\u0003\u0115", + "\u0003\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118", + "\u0003\u0119\u0003\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011b", + "\u0003\u011b\u0003\u011b\u0003\u011c\u0003\u011c\u0003\u011d\u0003\u011d", + "\u0003\u011d\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011f\u0003\u011f", + "\u0003\u011f\u0005\u011f\u09e7\n\u011f\u0003\u0120\u0006\u0120\u09ea", + "\n\u0120\r\u0120\u000e\u0120\u09eb\u0003\u0121\u0006\u0121\u09ef\n\u0121", + "\r\u0121\u000e\u0121\u09f0\u0005\u0121\u09f3\n\u0121\u0003\u0121\u0003", + "\u0121\u0006\u0121\u09f7\n\u0121\r\u0121\u000e\u0121\u09f8\u0003\u0121", + "\u0006\u0121\u09fc\n\u0121\r\u0121\u000e\u0121\u09fd\u0003\u0121\u0003", + "\u0121\u0003\u0121\u0003\u0121\u0006\u0121\u0a04\n\u0121\r\u0121\u000e", + "\u0121\u0a05\u0005\u0121\u0a08\n\u0121\u0003\u0121\u0003\u0121\u0006", + "\u0121\u0a0c\n\u0121\r\u0121\u000e\u0121\u0a0d\u0003\u0121\u0003\u0121", + "\u0003\u0121\u0006\u0121\u0a13\n\u0121\r\u0121\u000e\u0121\u0a14\u0003", + "\u0121\u0003\u0121\u0005\u0121\u0a19\n\u0121\u0003\u0122\u0003\u0122", + "\u0003\u0123\u0003\u0123\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125", + "\u0005\u0125\u0a23\n\u0125\u0003\u0125\u0006\u0125\u0a26\n\u0125\r\u0125", + "\u000e\u0125\u0a27\u0003\u0126\u0007\u0126\u0a2b\n\u0126\f\u0126\u000e", + "\u0126\u0a2e\u000b\u0126\u0003\u0126\u0006\u0126\u0a31\n\u0126\r\u0126", + "\u000e\u0126\u0a32\u0003\u0126\u0007\u0126\u0a36\n\u0126\f\u0126\u000e", + "\u0126\u0a39\u000b\u0126\u0003\u0127\u0007\u0127\u0a3c\n\u0127\f\u0127", + "\u000e\u0127\u0a3f\u000b\u0127\u0003\u0127\u0006\u0127\u0a42\n\u0127", + "\r\u0127\u000e\u0127\u0a43\u0003\u0127\u0007\u0127\u0a47\n\u0127\f\u0127", + "\u000e\u0127\u0a4a\u000b\u0127\u0003\u0128\u0003\u0128\u0003\u0129\u0003", + "\u0129\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003", + "\u012a\u0007\u012a\u0a56\n\u012a\f\u012a\u000e\u012a\u0a59\u000b\u012a", + "\u0003\u012a\u0003\u012a\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b", + "\u0003\u012b\u0003\u012b\u0007\u012b\u0a63\n\u012b\f\u012b\u000e\u012b", + "\u0a66\u000b\u012b\u0003\u012b\u0003\u012b\u0003\u012c\u0003\u012c\u0003", + "\u012c\u0006\u012c\u0a6d\n\u012c\r\u012c\u000e\u012c\u0a6e\u0003\u012c", + "\u0003\u012c\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d", + "\u0003\u012d\u0007\u012d\u0a79\n\u012d\f\u012d\u000e\u012d\u0a7c\u000b", + "\u012d\u0003\u012d\u0003\u012d\u0007\u0268\u0a2c\u0a32\u0a3d\u0a43\u0002", + "\u012e\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b\u000f", + "\t\u0011\n\u0013\u000b\u0015\f\u0017\r\u0019\u000e\u001b\u000f\u001d", + "\u0010\u001f\u0011!\u0012#\u0013%\u0014\'\u0015)\u0016+\u0017-\u0018", + "/\u00191\u001a3\u001b5\u001c7\u001d9\u001e;\u001f= ?!A\"C#E$G%I&K\'", + "M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u{?}@\u007fA\u0081B\u0083", + "C\u0085D\u0087E\u0089F\u008bG\u008dH\u008fI\u0091J\u0093K\u0095L\u0097", + "M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3S\u00a5T\u00a7U\u00a9V\u00ab", + "W\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7]\u00b9^\u00bb_\u00bd`\u00bf", + "a\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cbg\u00cdh\u00cfi\u00d1j\u00d3", + "k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00dfq\u00e1r\u00e3s\u00e5t\u00e7", + "u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3{\u00f5|\u00f7}\u00f9~\u00fb", + "\u007f\u00fd\u0080\u00ff\u0081\u0101\u0082\u0103\u0083\u0105\u0084\u0107", + "\u0085\u0109\u0086\u010b\u0087\u010d\u0088\u010f\u0089\u0111\u008a\u0113", + "\u008b\u0115\u008c\u0117\u008d\u0119\u008e\u011b\u008f\u011d\u0090\u011f", + "\u0091\u0121\u0092\u0123\u0093\u0125\u0094\u0127\u0095\u0129\u0096\u012b", + "\u0097\u012d\u0098\u012f\u0099\u0131\u009a\u0133\u009b\u0135\u009c\u0137", + "\u009d\u0139\u009e\u013b\u009f\u013d\u00a0\u013f\u00a1\u0141\u00a2\u0143", + "\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6\u014b\u00a7\u014d\u00a8\u014f", + "\u00a9\u0151\u00aa\u0153\u00ab\u0155\u00ac\u0157\u00ad\u0159\u00ae\u015b", + "\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2\u0163\u00b3\u0165\u00b4\u0167", + "\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8\u016f\u00b9\u0171\u00ba\u0173", + "\u00bb\u0175\u00bc\u0177\u00bd\u0179\u00be\u017b\u00bf\u017d\u00c0\u017f", + "\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4\u0187\u00c5\u0189\u00c6\u018b", + "\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca\u0193\u00cb\u0195\u00cc\u0197", + "\u00cd\u0199\u00ce\u019b\u00cf\u019d\u00d0\u019f\u00d1\u01a1\u00d2\u01a3", + "\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6\u01ab\u00d7\u01ad\u00d8\u01af", + "\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc\u01b7\u00dd\u01b9\u00de\u01bb", + "\u00df\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2\u01c3\u00e3\u01c5\u00e4\u01c7", + "\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8\u01cf\u00e9\u01d1\u00ea\u01d3", + "\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee\u01db\u00ef\u01dd\u00f0\u01df", + "\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4\u01e7\u00f5\u01e9\u00f6\u01eb", + "\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa\u01f3\u00fb\u01f5\u00fc\u01f7", + "\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd\u0100\u01ff\u0101\u0201\u0102\u0203", + "\u0103\u0205\u0104\u0207\u0105\u0209\u0106\u020b\u0107\u020d\u0108\u020f", + "\u0109\u0211\u010a\u0213\u010b\u0215\u010c\u0217\u010d\u0219\u010e\u021b", + "\u010f\u021d\u0110\u021f\u0111\u0221\u0112\u0223\u0113\u0225\u0114\u0227", + "\u0115\u0229\u0116\u022b\u0117\u022d\u0118\u022f\u0119\u0231\u011a\u0233", + "\u011b\u0235\u011c\u0237\u011d\u0239\u011e\u023b\u011f\u023d\u0120\u023f", + "\u0121\u0241\u0122\u0243\u0123\u0245\u0124\u0247\u0125\u0249\u0002\u024b", + "\u0002\u024d\u0002\u024f\u0002\u0251\u0002\u0253\u0002\u0255\u0002\u0257", + "\u0002\u0259\u0002\u0003\u0002\u0010\u0005\u0002\u000b\f\u000f\u000f", + "\"\"\u0004\u0002\f\f\u000f\u000f\u0004\u000200<<\u0004\u0002--//\u0006", + "\u00022;C\\aac|\u0005\u0002C\\aac|\t\u0002%(,,2;B\\`ac}\u007f\u007f", + "\b\u0002%(,,B\\`ac}\u007f\u007f\u0003\u00022;\u0004\u0002C\\c|\u0004", + "\u0002$$^^\u0004\u0002))^^\u0003\u000223\u0004\u0002^^bb\u0002\u0a9e", + "\u0002\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002", + "\u0002\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002", + "\u0002\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002", + "\u0002\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002", + "\u0002\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002", + "\u0002\u0017\u0003\u0002\u0002\u0002\u0002\u0019\u0003\u0002\u0002\u0002", + "\u0002\u001b\u0003\u0002\u0002\u0002\u0002\u001d\u0003\u0002\u0002\u0002", + "\u0002\u001f\u0003\u0002\u0002\u0002\u0002!\u0003\u0002\u0002\u0002", + "\u0002#\u0003\u0002\u0002\u0002\u0002%\u0003\u0002\u0002\u0002\u0002", + "\'\u0003\u0002\u0002\u0002\u0002)\u0003\u0002\u0002\u0002\u0002+\u0003", + "\u0002\u0002\u0002\u0002-\u0003\u0002\u0002\u0002\u0002/\u0003\u0002", + "\u0002\u0002\u00021\u0003\u0002\u0002\u0002\u00023\u0003\u0002\u0002", + "\u0002\u00025\u0003\u0002\u0002\u0002\u00027\u0003\u0002\u0002\u0002", + "\u00029\u0003\u0002\u0002\u0002\u0002;\u0003\u0002\u0002\u0002\u0002", + "=\u0003\u0002\u0002\u0002\u0002?\u0003\u0002\u0002\u0002\u0002A\u0003", + "\u0002\u0002\u0002\u0002C\u0003\u0002\u0002\u0002\u0002E\u0003\u0002", + "\u0002\u0002\u0002G\u0003\u0002\u0002\u0002\u0002I\u0003\u0002\u0002", + "\u0002\u0002K\u0003\u0002\u0002\u0002\u0002M\u0003\u0002\u0002\u0002", + "\u0002O\u0003\u0002\u0002\u0002\u0002Q\u0003\u0002\u0002\u0002\u0002", + "S\u0003\u0002\u0002\u0002\u0002U\u0003\u0002\u0002\u0002\u0002W\u0003", + "\u0002\u0002\u0002\u0002Y\u0003\u0002\u0002\u0002\u0002[\u0003\u0002", + "\u0002\u0002\u0002]\u0003\u0002\u0002\u0002\u0002_\u0003\u0002\u0002", + "\u0002\u0002a\u0003\u0002\u0002\u0002\u0002c\u0003\u0002\u0002\u0002", + "\u0002e\u0003\u0002\u0002\u0002\u0002g\u0003\u0002\u0002\u0002\u0002", + "i\u0003\u0002\u0002\u0002\u0002k\u0003\u0002\u0002\u0002\u0002m\u0003", + "\u0002\u0002\u0002\u0002o\u0003\u0002\u0002\u0002\u0002q\u0003\u0002", + "\u0002\u0002\u0002s\u0003\u0002\u0002\u0002\u0002u\u0003\u0002\u0002", + "\u0002\u0002w\u0003\u0002\u0002\u0002\u0002y\u0003\u0002\u0002\u0002", + "\u0002{\u0003\u0002\u0002\u0002\u0002}\u0003\u0002\u0002\u0002\u0002", + "\u007f\u0003\u0002\u0002\u0002\u0002\u0081\u0003\u0002\u0002\u0002\u0002", + "\u0083\u0003\u0002\u0002\u0002\u0002\u0085\u0003\u0002\u0002\u0002\u0002", + "\u0087\u0003\u0002\u0002\u0002\u0002\u0089\u0003\u0002\u0002\u0002\u0002", + "\u008b\u0003\u0002\u0002\u0002\u0002\u008d\u0003\u0002\u0002\u0002\u0002", + "\u008f\u0003\u0002\u0002\u0002\u0002\u0091\u0003\u0002\u0002\u0002\u0002", + "\u0093\u0003\u0002\u0002\u0002\u0002\u0095\u0003\u0002\u0002\u0002\u0002", + "\u0097\u0003\u0002\u0002\u0002\u0002\u0099\u0003\u0002\u0002\u0002\u0002", + "\u009b\u0003\u0002\u0002\u0002\u0002\u009d\u0003\u0002\u0002\u0002\u0002", + "\u009f\u0003\u0002\u0002\u0002\u0002\u00a1\u0003\u0002\u0002\u0002\u0002", + "\u00a3\u0003\u0002\u0002\u0002\u0002\u00a5\u0003\u0002\u0002\u0002\u0002", + "\u00a7\u0003\u0002\u0002\u0002\u0002\u00a9\u0003\u0002\u0002\u0002\u0002", + "\u00ab\u0003\u0002\u0002\u0002\u0002\u00ad\u0003\u0002\u0002\u0002\u0002", + "\u00af\u0003\u0002\u0002\u0002\u0002\u00b1\u0003\u0002\u0002\u0002\u0002", + "\u00b3\u0003\u0002\u0002\u0002\u0002\u00b5\u0003\u0002\u0002\u0002\u0002", + "\u00b7\u0003\u0002\u0002\u0002\u0002\u00b9\u0003\u0002\u0002\u0002\u0002", + "\u00bb\u0003\u0002\u0002\u0002\u0002\u00bd\u0003\u0002\u0002\u0002\u0002", + "\u00bf\u0003\u0002\u0002\u0002\u0002\u00c1\u0003\u0002\u0002\u0002\u0002", + "\u00c3\u0003\u0002\u0002\u0002\u0002\u00c5\u0003\u0002\u0002\u0002\u0002", + "\u00c7\u0003\u0002\u0002\u0002\u0002\u00c9\u0003\u0002\u0002\u0002\u0002", + "\u00cb\u0003\u0002\u0002\u0002\u0002\u00cd\u0003\u0002\u0002\u0002\u0002", + "\u00cf\u0003\u0002\u0002\u0002\u0002\u00d1\u0003\u0002\u0002\u0002\u0002", + "\u00d3\u0003\u0002\u0002\u0002\u0002\u00d5\u0003\u0002\u0002\u0002\u0002", + "\u00d7\u0003\u0002\u0002\u0002\u0002\u00d9\u0003\u0002\u0002\u0002\u0002", + "\u00db\u0003\u0002\u0002\u0002\u0002\u00dd\u0003\u0002\u0002\u0002\u0002", + "\u00df\u0003\u0002\u0002\u0002\u0002\u00e1\u0003\u0002\u0002\u0002\u0002", + "\u00e3\u0003\u0002\u0002\u0002\u0002\u00e5\u0003\u0002\u0002\u0002\u0002", + "\u00e7\u0003\u0002\u0002\u0002\u0002\u00e9\u0003\u0002\u0002\u0002\u0002", + "\u00eb\u0003\u0002\u0002\u0002\u0002\u00ed\u0003\u0002\u0002\u0002\u0002", + "\u00ef\u0003\u0002\u0002\u0002\u0002\u00f1\u0003\u0002\u0002\u0002\u0002", + "\u00f3\u0003\u0002\u0002\u0002\u0002\u00f5\u0003\u0002\u0002\u0002\u0002", + "\u00f7\u0003\u0002\u0002\u0002\u0002\u00f9\u0003\u0002\u0002\u0002\u0002", + "\u00fb\u0003\u0002\u0002\u0002\u0002\u00fd\u0003\u0002\u0002\u0002\u0002", + "\u00ff\u0003\u0002\u0002\u0002\u0002\u0101\u0003\u0002\u0002\u0002\u0002", + "\u0103\u0003\u0002\u0002\u0002\u0002\u0105\u0003\u0002\u0002\u0002\u0002", + "\u0107\u0003\u0002\u0002\u0002\u0002\u0109\u0003\u0002\u0002\u0002\u0002", + "\u010b\u0003\u0002\u0002\u0002\u0002\u010d\u0003\u0002\u0002\u0002\u0002", + "\u010f\u0003\u0002\u0002\u0002\u0002\u0111\u0003\u0002\u0002\u0002\u0002", + "\u0113\u0003\u0002\u0002\u0002\u0002\u0115\u0003\u0002\u0002\u0002\u0002", + "\u0117\u0003\u0002\u0002\u0002\u0002\u0119\u0003\u0002\u0002\u0002\u0002", + "\u011b\u0003\u0002\u0002\u0002\u0002\u011d\u0003\u0002\u0002\u0002\u0002", + "\u011f\u0003\u0002\u0002\u0002\u0002\u0121\u0003\u0002\u0002\u0002\u0002", + "\u0123\u0003\u0002\u0002\u0002\u0002\u0125\u0003\u0002\u0002\u0002\u0002", + "\u0127\u0003\u0002\u0002\u0002\u0002\u0129\u0003\u0002\u0002\u0002\u0002", + "\u012b\u0003\u0002\u0002\u0002\u0002\u012d\u0003\u0002\u0002\u0002\u0002", + "\u012f\u0003\u0002\u0002\u0002\u0002\u0131\u0003\u0002\u0002\u0002\u0002", + "\u0133\u0003\u0002\u0002\u0002\u0002\u0135\u0003\u0002\u0002\u0002\u0002", + "\u0137\u0003\u0002\u0002\u0002\u0002\u0139\u0003\u0002\u0002\u0002\u0002", + "\u013b\u0003\u0002\u0002\u0002\u0002\u013d\u0003\u0002\u0002\u0002\u0002", + "\u013f\u0003\u0002\u0002\u0002\u0002\u0141\u0003\u0002\u0002\u0002\u0002", + "\u0143\u0003\u0002\u0002\u0002\u0002\u0145\u0003\u0002\u0002\u0002\u0002", + "\u0147\u0003\u0002\u0002\u0002\u0002\u0149\u0003\u0002\u0002\u0002\u0002", + "\u014b\u0003\u0002\u0002\u0002\u0002\u014d\u0003\u0002\u0002\u0002\u0002", + "\u014f\u0003\u0002\u0002\u0002\u0002\u0151\u0003\u0002\u0002\u0002\u0002", + "\u0153\u0003\u0002\u0002\u0002\u0002\u0155\u0003\u0002\u0002\u0002\u0002", + "\u0157\u0003\u0002\u0002\u0002\u0002\u0159\u0003\u0002\u0002\u0002\u0002", + "\u015b\u0003\u0002\u0002\u0002\u0002\u015d\u0003\u0002\u0002\u0002\u0002", + "\u015f\u0003\u0002\u0002\u0002\u0002\u0161\u0003\u0002\u0002\u0002\u0002", + "\u0163\u0003\u0002\u0002\u0002\u0002\u0165\u0003\u0002\u0002\u0002\u0002", + "\u0167\u0003\u0002\u0002\u0002\u0002\u0169\u0003\u0002\u0002\u0002\u0002", + "\u016b\u0003\u0002\u0002\u0002\u0002\u016d\u0003\u0002\u0002\u0002\u0002", + "\u016f\u0003\u0002\u0002\u0002\u0002\u0171\u0003\u0002\u0002\u0002\u0002", + "\u0173\u0003\u0002\u0002\u0002\u0002\u0175\u0003\u0002\u0002\u0002\u0002", + "\u0177\u0003\u0002\u0002\u0002\u0002\u0179\u0003\u0002\u0002\u0002\u0002", + "\u017b\u0003\u0002\u0002\u0002\u0002\u017d\u0003\u0002\u0002\u0002\u0002", + "\u017f\u0003\u0002\u0002\u0002\u0002\u0181\u0003\u0002\u0002\u0002\u0002", + "\u0183\u0003\u0002\u0002\u0002\u0002\u0185\u0003\u0002\u0002\u0002\u0002", + "\u0187\u0003\u0002\u0002\u0002\u0002\u0189\u0003\u0002\u0002\u0002\u0002", + "\u018b\u0003\u0002\u0002\u0002\u0002\u018d\u0003\u0002\u0002\u0002\u0002", + "\u018f\u0003\u0002\u0002\u0002\u0002\u0191\u0003\u0002\u0002\u0002\u0002", + "\u0193\u0003\u0002\u0002\u0002\u0002\u0195\u0003\u0002\u0002\u0002\u0002", + "\u0197\u0003\u0002\u0002\u0002\u0002\u0199\u0003\u0002\u0002\u0002\u0002", + "\u019b\u0003\u0002\u0002\u0002\u0002\u019d\u0003\u0002\u0002\u0002\u0002", + "\u019f\u0003\u0002\u0002\u0002\u0002\u01a1\u0003\u0002\u0002\u0002\u0002", + "\u01a3\u0003\u0002\u0002\u0002\u0002\u01a5\u0003\u0002\u0002\u0002\u0002", + "\u01a7\u0003\u0002\u0002\u0002\u0002\u01a9\u0003\u0002\u0002\u0002\u0002", + "\u01ab\u0003\u0002\u0002\u0002\u0002\u01ad\u0003\u0002\u0002\u0002\u0002", + "\u01af\u0003\u0002\u0002\u0002\u0002\u01b1\u0003\u0002\u0002\u0002\u0002", + "\u01b3\u0003\u0002\u0002\u0002\u0002\u01b5\u0003\u0002\u0002\u0002\u0002", + "\u01b7\u0003\u0002\u0002\u0002\u0002\u01b9\u0003\u0002\u0002\u0002\u0002", + "\u01bb\u0003\u0002\u0002\u0002\u0002\u01bd\u0003\u0002\u0002\u0002\u0002", + "\u01bf\u0003\u0002\u0002\u0002\u0002\u01c1\u0003\u0002\u0002\u0002\u0002", + "\u01c3\u0003\u0002\u0002\u0002\u0002\u01c5\u0003\u0002\u0002\u0002\u0002", + "\u01c7\u0003\u0002\u0002\u0002\u0002\u01c9\u0003\u0002\u0002\u0002\u0002", + "\u01cb\u0003\u0002\u0002\u0002\u0002\u01cd\u0003\u0002\u0002\u0002\u0002", + "\u01cf\u0003\u0002\u0002\u0002\u0002\u01d1\u0003\u0002\u0002\u0002\u0002", + "\u01d3\u0003\u0002\u0002\u0002\u0002\u01d5\u0003\u0002\u0002\u0002\u0002", + "\u01d7\u0003\u0002\u0002\u0002\u0002\u01d9\u0003\u0002\u0002\u0002\u0002", + "\u01db\u0003\u0002\u0002\u0002\u0002\u01dd\u0003\u0002\u0002\u0002\u0002", + "\u01df\u0003\u0002\u0002\u0002\u0002\u01e1\u0003\u0002\u0002\u0002\u0002", + "\u01e3\u0003\u0002\u0002\u0002\u0002\u01e5\u0003\u0002\u0002\u0002\u0002", + "\u01e7\u0003\u0002\u0002\u0002\u0002\u01e9\u0003\u0002\u0002\u0002\u0002", + "\u01eb\u0003\u0002\u0002\u0002\u0002\u01ed\u0003\u0002\u0002\u0002\u0002", + "\u01ef\u0003\u0002\u0002\u0002\u0002\u01f1\u0003\u0002\u0002\u0002\u0002", + "\u01f3\u0003\u0002\u0002\u0002\u0002\u01f5\u0003\u0002\u0002\u0002\u0002", + "\u01f7\u0003\u0002\u0002\u0002\u0002\u01f9\u0003\u0002\u0002\u0002\u0002", + "\u01fb\u0003\u0002\u0002\u0002\u0002\u01fd\u0003\u0002\u0002\u0002\u0002", + "\u01ff\u0003\u0002\u0002\u0002\u0002\u0201\u0003\u0002\u0002\u0002\u0002", + "\u0203\u0003\u0002\u0002\u0002\u0002\u0205\u0003\u0002\u0002\u0002\u0002", + "\u0207\u0003\u0002\u0002\u0002\u0002\u0209\u0003\u0002\u0002\u0002\u0002", + "\u020b\u0003\u0002\u0002\u0002\u0002\u020d\u0003\u0002\u0002\u0002\u0002", + "\u020f\u0003\u0002\u0002\u0002\u0002\u0211\u0003\u0002\u0002\u0002\u0002", + "\u0213\u0003\u0002\u0002\u0002\u0002\u0215\u0003\u0002\u0002\u0002\u0002", + "\u0217\u0003\u0002\u0002\u0002\u0002\u0219\u0003\u0002\u0002\u0002\u0002", + "\u021b\u0003\u0002\u0002\u0002\u0002\u021d\u0003\u0002\u0002\u0002\u0002", + "\u021f\u0003\u0002\u0002\u0002\u0002\u0221\u0003\u0002\u0002\u0002\u0002", + "\u0223\u0003\u0002\u0002\u0002\u0002\u0225\u0003\u0002\u0002\u0002\u0002", + "\u0227\u0003\u0002\u0002\u0002\u0002\u0229\u0003\u0002\u0002\u0002\u0002", + "\u022b\u0003\u0002\u0002\u0002\u0002\u022d\u0003\u0002\u0002\u0002\u0002", + "\u022f\u0003\u0002\u0002\u0002\u0002\u0231\u0003\u0002\u0002\u0002\u0002", + "\u0233\u0003\u0002\u0002\u0002\u0002\u0235\u0003\u0002\u0002\u0002\u0002", + "\u0237\u0003\u0002\u0002\u0002\u0002\u0239\u0003\u0002\u0002\u0002\u0002", + "\u023b\u0003\u0002\u0002\u0002\u0002\u023d\u0003\u0002\u0002\u0002\u0002", + "\u023f\u0003\u0002\u0002\u0002\u0002\u0241\u0003\u0002\u0002\u0002\u0002", + "\u0243\u0003\u0002\u0002\u0002\u0002\u0245\u0003\u0002\u0002\u0002\u0002", + "\u0247\u0003\u0002\u0002\u0002\u0003\u025c\u0003\u0002\u0002\u0002\u0005", + "\u0262\u0003\u0002\u0002\u0002\u0007\u028d\u0003\u0002\u0002\u0002\t", + "\u0291\u0003\u0002\u0002\u0002\u000b\u0298\u0003\u0002\u0002\u0002\r", + "\u029d\u0003\u0002\u0002\u0002\u000f\u02a1\u0003\u0002\u0002\u0002\u0011", + "\u02a4\u0003\u0002\u0002\u0002\u0013\u02a8\u0003\u0002\u0002\u0002\u0015", + "\u02ac\u0003\u0002\u0002\u0002\u0017\u02b5\u0003\u0002\u0002\u0002\u0019", + "\u02bb\u0003\u0002\u0002\u0002\u001b\u02c1\u0003\u0002\u0002\u0002\u001d", + "\u02c4\u0003\u0002\u0002\u0002\u001f\u02cd\u0003\u0002\u0002\u0002!", + "\u02d2\u0003\u0002\u0002\u0002#\u02d7\u0003\u0002\u0002\u0002%\u02de", + "\u0003\u0002\u0002\u0002\'\u02e4\u0003\u0002\u0002\u0002)\u02eb\u0003", + "\u0002\u0002\u0002+\u02f1\u0003\u0002\u0002\u0002-\u02f4\u0003\u0002", + "\u0002\u0002/\u02f7\u0003\u0002\u0002\u00021\u02fb\u0003\u0002\u0002", + "\u00023\u02fe\u0003\u0002\u0002\u00025\u0302\u0003\u0002\u0002\u0002", + "7\u0305\u0003\u0002\u0002\u00029\u030c\u0003\u0002\u0002\u0002;\u0314", + "\u0003\u0002\u0002\u0002=\u0319\u0003\u0002\u0002\u0002?\u031f\u0003", + "\u0002\u0002\u0002A\u0322\u0003\u0002\u0002\u0002C\u0327\u0003\u0002", + "\u0002\u0002E\u032d\u0003\u0002\u0002\u0002G\u0333\u0003\u0002\u0002", + "\u0002I\u0337\u0003\u0002\u0002\u0002K\u033c\u0003\u0002\u0002\u0002", + "M\u0340\u0003\u0002\u0002\u0002O\u0349\u0003\u0002\u0002\u0002Q\u034e", + "\u0003\u0002\u0002\u0002S\u0353\u0003\u0002\u0002\u0002U\u0358\u0003", + "\u0002\u0002\u0002W\u035d\u0003\u0002\u0002\u0002Y\u0361\u0003\u0002", + "\u0002\u0002[\u0366\u0003\u0002\u0002\u0002]\u036c\u0003\u0002\u0002", + "\u0002_\u0372\u0003\u0002\u0002\u0002a\u0378\u0003\u0002\u0002\u0002", + "c\u037d\u0003\u0002\u0002\u0002e\u0382\u0003\u0002\u0002\u0002g\u0388", + "\u0003\u0002\u0002\u0002i\u038d\u0003\u0002\u0002\u0002k\u0395\u0003", + "\u0002\u0002\u0002m\u0398\u0003\u0002\u0002\u0002o\u039e\u0003\u0002", + "\u0002\u0002q\u03a6\u0003\u0002\u0002\u0002s\u03ad\u0003\u0002\u0002", + "\u0002u\u03b2\u0003\u0002\u0002\u0002w\u03bc\u0003\u0002\u0002\u0002", + "y\u03c2\u0003\u0002\u0002\u0002{\u03c7\u0003\u0002\u0002\u0002}\u03d1", + "\u0003\u0002\u0002\u0002\u007f\u03db\u0003\u0002\u0002\u0002\u0081\u03e5", + "\u0003\u0002\u0002\u0002\u0083\u03ed\u0003\u0002\u0002\u0002\u0085\u03f3", + "\u0003\u0002\u0002\u0002\u0087\u03f9\u0003\u0002\u0002\u0002\u0089\u03fe", + "\u0003\u0002\u0002\u0002\u008b\u0403\u0003\u0002\u0002\u0002\u008d\u040a", + "\u0003\u0002\u0002\u0002\u008f\u0411\u0003\u0002\u0002\u0002\u0091\u0417", + "\u0003\u0002\u0002\u0002\u0093\u0421\u0003\u0002\u0002\u0002\u0095\u0426", + "\u0003\u0002\u0002\u0002\u0097\u042e\u0003\u0002\u0002\u0002\u0099\u0435", + "\u0003\u0002\u0002\u0002\u009b\u043c\u0003\u0002\u0002\u0002\u009d\u0441", + "\u0003\u0002\u0002\u0002\u009f\u044a\u0003\u0002\u0002\u0002\u00a1\u0452", + "\u0003\u0002\u0002\u0002\u00a3\u0459\u0003\u0002\u0002\u0002\u00a5\u0461", + "\u0003\u0002\u0002\u0002\u00a7\u0469\u0003\u0002\u0002\u0002\u00a9\u046e", + "\u0003\u0002\u0002\u0002\u00ab\u0473\u0003\u0002\u0002\u0002\u00ad\u0478", + "\u0003\u0002\u0002\u0002\u00af\u047f\u0003\u0002\u0002\u0002\u00b1\u0487", + "\u0003\u0002\u0002\u0002\u00b3\u048e\u0003\u0002\u0002\u0002\u00b5\u0492", + "\u0003\u0002\u0002\u0002\u00b7\u049d\u0003\u0002\u0002\u0002\u00b9\u04a7", + "\u0003\u0002\u0002\u0002\u00bb\u04ac\u0003\u0002\u0002\u0002\u00bd\u04b2", + "\u0003\u0002\u0002\u0002\u00bf\u04b9\u0003\u0002\u0002\u0002\u00c1\u04c2", + "\u0003\u0002\u0002\u0002\u00c3\u04cc\u0003\u0002\u0002\u0002\u00c5\u04cf", + "\u0003\u0002\u0002\u0002\u00c7\u04db\u0003\u0002\u0002\u0002\u00c9\u04e4", + "\u0003\u0002\u0002\u0002\u00cb\u04ea\u0003\u0002\u0002\u0002\u00cd\u04f1", + "\u0003\u0002\u0002\u0002\u00cf\u04f8\u0003\u0002\u0002\u0002\u00d1\u0500", + "\u0003\u0002\u0002\u0002\u00d3\u0504\u0003\u0002\u0002\u0002\u00d5\u050a", + "\u0003\u0002\u0002\u0002\u00d7\u050f\u0003\u0002\u0002\u0002\u00d9\u0515", + "\u0003\u0002\u0002\u0002\u00db\u0521\u0003\u0002\u0002\u0002\u00dd\u0528", + "\u0003\u0002\u0002\u0002\u00df\u0531\u0003\u0002\u0002\u0002\u00e1\u0537", + "\u0003\u0002\u0002\u0002\u00e3\u053e\u0003\u0002\u0002\u0002\u00e5\u0543", + "\u0003\u0002\u0002\u0002\u00e7\u054b\u0003\u0002\u0002\u0002\u00e9\u0554", + "\u0003\u0002\u0002\u0002\u00eb\u0557\u0003\u0002\u0002\u0002\u00ed\u0560", + "\u0003\u0002\u0002\u0002\u00ef\u0568\u0003\u0002\u0002\u0002\u00f1\u056e", + "\u0003\u0002\u0002\u0002\u00f3\u0572\u0003\u0002\u0002\u0002\u00f5\u057d", + "\u0003\u0002\u0002\u0002\u00f7\u0584\u0003\u0002\u0002\u0002\u00f9\u0588", + "\u0003\u0002\u0002\u0002\u00fb\u058b\u0003\u0002\u0002\u0002\u00fd\u0590", + "\u0003\u0002\u0002\u0002\u00ff\u0598\u0003\u0002\u0002\u0002\u0101\u05a3", + "\u0003\u0002\u0002\u0002\u0103\u05ad\u0003\u0002\u0002\u0002\u0105\u05b7", + "\u0003\u0002\u0002\u0002\u0107\u05be\u0003\u0002\u0002\u0002\u0109\u05c4", + "\u0003\u0002\u0002\u0002\u010b\u05ca\u0003\u0002\u0002\u0002\u010d\u05da", + "\u0003\u0002\u0002\u0002\u010f\u05e7\u0003\u0002\u0002\u0002\u0111\u05f4", + "\u0003\u0002\u0002\u0002\u0113\u05fe\u0003\u0002\u0002\u0002\u0115\u0605", + "\u0003\u0002\u0002\u0002\u0117\u0610\u0003\u0002\u0002\u0002\u0119\u061b", + "\u0003\u0002\u0002\u0002\u011b\u0621\u0003\u0002\u0002\u0002\u011d\u0626", + "\u0003\u0002\u0002\u0002\u011f\u062e\u0003\u0002\u0002\u0002\u0121\u0634", + "\u0003\u0002\u0002\u0002\u0123\u063e\u0003\u0002\u0002\u0002\u0125\u0647", + "\u0003\u0002\u0002\u0002\u0127\u0650\u0003\u0002\u0002\u0002\u0129\u0658", + "\u0003\u0002\u0002\u0002\u012b\u065e\u0003\u0002\u0002\u0002\u012d\u0664", + "\u0003\u0002\u0002\u0002\u012f\u066c\u0003\u0002\u0002\u0002\u0131\u0671", + "\u0003\u0002\u0002\u0002\u0133\u067b\u0003\u0002\u0002\u0002\u0135\u0682", + "\u0003\u0002\u0002\u0002\u0137\u068c\u0003\u0002\u0002\u0002\u0139\u0694", + "\u0003\u0002\u0002\u0002\u013b\u069a\u0003\u0002\u0002\u0002\u013d\u06a8", + "\u0003\u0002\u0002\u0002\u013f\u06b5\u0003\u0002\u0002\u0002\u0141\u06bd", + "\u0003\u0002\u0002\u0002\u0143\u06c4\u0003\u0002\u0002\u0002\u0145\u06cb", + "\u0003\u0002\u0002\u0002\u0147\u06d7\u0003\u0002\u0002\u0002\u0149\u06e0", + "\u0003\u0002\u0002\u0002\u014b\u06e9\u0003\u0002\u0002\u0002\u014d\u06f1", + "\u0003\u0002\u0002\u0002\u014f\u06fb\u0003\u0002\u0002\u0002\u0151\u0706", + "\u0003\u0002\u0002\u0002\u0153\u070c\u0003\u0002\u0002\u0002\u0155\u0714", + "\u0003\u0002\u0002\u0002\u0157\u0720\u0003\u0002\u0002\u0002\u0159\u0727", + "\u0003\u0002\u0002\u0002\u015b\u072f\u0003\u0002\u0002\u0002\u015d\u073a", + "\u0003\u0002\u0002\u0002\u015f\u0743\u0003\u0002\u0002\u0002\u0161\u074d", + "\u0003\u0002\u0002\u0002\u0163\u0754\u0003\u0002\u0002\u0002\u0165\u075a", + "\u0003\u0002\u0002\u0002\u0167\u0766\u0003\u0002\u0002\u0002\u0169\u0773", + "\u0003\u0002\u0002\u0002\u016b\u077c\u0003\u0002\u0002\u0002\u016d\u0786", + "\u0003\u0002\u0002\u0002\u016f\u078a\u0003\u0002\u0002\u0002\u0171\u0793", + "\u0003\u0002\u0002\u0002\u0173\u079b\u0003\u0002\u0002\u0002\u0175\u07a3", + "\u0003\u0002\u0002\u0002\u0177\u07a8\u0003\u0002\u0002\u0002\u0179\u07b3", + "\u0003\u0002\u0002\u0002\u017b\u07bf\u0003\u0002\u0002\u0002\u017d\u07c8", + "\u0003\u0002\u0002\u0002\u017f\u07d0\u0003\u0002\u0002\u0002\u0181\u07d7", + "\u0003\u0002\u0002\u0002\u0183\u07dd\u0003\u0002\u0002\u0002\u0185\u07e2", + "\u0003\u0002\u0002\u0002\u0187\u07e9\u0003\u0002\u0002\u0002\u0189\u07ee", + "\u0003\u0002\u0002\u0002\u018b\u07f5\u0003\u0002\u0002\u0002\u018d\u07fd", + "\u0003\u0002\u0002\u0002\u018f\u0804\u0003\u0002\u0002\u0002\u0191\u080b", + "\u0003\u0002\u0002\u0002\u0193\u0810\u0003\u0002\u0002\u0002\u0195\u0815", + "\u0003\u0002\u0002\u0002\u0197\u081b\u0003\u0002\u0002\u0002\u0199\u0827", + "\u0003\u0002\u0002\u0002\u019b\u0832\u0003\u0002\u0002\u0002\u019d\u083f", + "\u0003\u0002\u0002\u0002\u019f\u0845\u0003\u0002\u0002\u0002\u01a1\u084d", + "\u0003\u0002\u0002\u0002\u01a3\u0853\u0003\u0002\u0002\u0002\u01a5\u085a", + "\u0003\u0002\u0002\u0002\u01a7\u085f\u0003\u0002\u0002\u0002\u01a9\u0865", + "\u0003\u0002\u0002\u0002\u01ab\u086c\u0003\u0002\u0002\u0002\u01ad\u0876", + "\u0003\u0002\u0002\u0002\u01af\u087d\u0003\u0002\u0002\u0002\u01b1\u0883", + "\u0003\u0002\u0002\u0002\u01b3\u0888\u0003\u0002\u0002\u0002\u01b5\u088f", + "\u0003\u0002\u0002\u0002\u01b7\u0892\u0003\u0002\u0002\u0002\u01b9\u0899", + "\u0003\u0002\u0002\u0002\u01bb\u08a3\u0003\u0002\u0002\u0002\u01bd\u08ad", + "\u0003\u0002\u0002\u0002\u01bf\u08b9\u0003\u0002\u0002\u0002\u01c1\u08c3", + "\u0003\u0002\u0002\u0002\u01c3\u08cb\u0003\u0002\u0002\u0002\u01c5\u08d4", + "\u0003\u0002\u0002\u0002\u01c7\u08dd\u0003\u0002\u0002\u0002\u01c9\u08e3", + "\u0003\u0002\u0002\u0002\u01cb\u08eb\u0003\u0002\u0002\u0002\u01cd\u08ef", + "\u0003\u0002\u0002\u0002\u01cf\u08f6\u0003\u0002\u0002\u0002\u01d1\u0902", + "\u0003\u0002\u0002\u0002\u01d3\u0909\u0003\u0002\u0002\u0002\u01d5\u090f", + "\u0003\u0002\u0002\u0002\u01d7\u0913\u0003\u0002\u0002\u0002\u01d9\u0918", + "\u0003\u0002\u0002\u0002\u01db\u0920\u0003\u0002\u0002\u0002\u01dd\u0927", + "\u0003\u0002\u0002\u0002\u01df\u0931\u0003\u0002\u0002\u0002\u01e1\u0937", + "\u0003\u0002\u0002\u0002\u01e3\u093f\u0003\u0002\u0002\u0002\u01e5\u0947", + "\u0003\u0002\u0002\u0002\u01e7\u0950\u0003\u0002\u0002\u0002\u01e9\u0954", + "\u0003\u0002\u0002\u0002\u01eb\u095b\u0003\u0002\u0002\u0002\u01ed\u0961", + "\u0003\u0002\u0002\u0002\u01ef\u0968\u0003\u0002\u0002\u0002\u01f1\u096d", + "\u0003\u0002\u0002\u0002\u01f3\u0972\u0003\u0002\u0002\u0002\u01f5\u097c", + "\u0003\u0002\u0002\u0002\u01f7\u0985\u0003\u0002\u0002\u0002\u01f9\u098d", + "\u0003\u0002\u0002\u0002\u01fb\u0991\u0003\u0002\u0002\u0002\u01fd\u0995", + "\u0003\u0002\u0002\u0002\u01ff\u099a\u0003\u0002\u0002\u0002\u0201\u09a3", + "\u0003\u0002\u0002\u0002\u0203\u09a5\u0003\u0002\u0002\u0002\u0205\u09a7", + "\u0003\u0002\u0002\u0002\u0207\u09a9\u0003\u0002\u0002\u0002\u0209\u09ab", + "\u0003\u0002\u0002\u0002\u020b\u09ad\u0003\u0002\u0002\u0002\u020d\u09af", + "\u0003\u0002\u0002\u0002\u020f\u09b1\u0003\u0002\u0002\u0002\u0211\u09b3", + "\u0003\u0002\u0002\u0002\u0213\u09b5\u0003\u0002\u0002\u0002\u0215\u09b7", + "\u0003\u0002\u0002\u0002\u0217\u09b9\u0003\u0002\u0002\u0002\u0219\u09bb", + "\u0003\u0002\u0002\u0002\u021b\u09bd\u0003\u0002\u0002\u0002\u021d\u09bf", + "\u0003\u0002\u0002\u0002\u021f\u09c1\u0003\u0002\u0002\u0002\u0221\u09c3", + "\u0003\u0002\u0002\u0002\u0223\u09c5\u0003\u0002\u0002\u0002\u0225\u09c7", + "\u0003\u0002\u0002\u0002\u0227\u09c9\u0003\u0002\u0002\u0002\u0229\u09cb", + "\u0003\u0002\u0002\u0002\u022b\u09cd\u0003\u0002\u0002\u0002\u022d\u09cf", + "\u0003\u0002\u0002\u0002\u022f\u09d1\u0003\u0002\u0002\u0002\u0231\u09d3", + "\u0003\u0002\u0002\u0002\u0233\u09d5\u0003\u0002\u0002\u0002\u0235\u09d8", + "\u0003\u0002\u0002\u0002\u0237\u09db\u0003\u0002\u0002\u0002\u0239\u09dd", + "\u0003\u0002\u0002\u0002\u023b\u09e0\u0003\u0002\u0002\u0002\u023d\u09e6", + "\u0003\u0002\u0002\u0002\u023f\u09e9\u0003\u0002\u0002\u0002\u0241\u0a18", + "\u0003\u0002\u0002\u0002\u0243\u0a1a\u0003\u0002\u0002\u0002\u0245\u0a1c", + "\u0003\u0002\u0002\u0002\u0247\u0a1e\u0003\u0002\u0002\u0002\u0249\u0a20", + "\u0003\u0002\u0002\u0002\u024b\u0a2c\u0003\u0002\u0002\u0002\u024d\u0a3d", + "\u0003\u0002\u0002\u0002\u024f\u0a4b\u0003\u0002\u0002\u0002\u0251\u0a4d", + "\u0003\u0002\u0002\u0002\u0253\u0a4f\u0003\u0002\u0002\u0002\u0255\u0a5c", + "\u0003\u0002\u0002\u0002\u0257\u0a69\u0003\u0002\u0002\u0002\u0259\u0a72", + "\u0003\u0002\u0002\u0002\u025b\u025d\t\u0002\u0002\u0002\u025c\u025b", + "\u0003\u0002\u0002\u0002\u025d\u025e\u0003\u0002\u0002\u0002\u025e\u025c", + "\u0003\u0002\u0002\u0002\u025e\u025f\u0003\u0002\u0002\u0002\u025f\u0260", + "\u0003\u0002\u0002\u0002\u0260\u0261\b\u0002\u0002\u0002\u0261\u0004", + "\u0003\u0002\u0002\u0002\u0262\u0263\u00071\u0002\u0002\u0263\u0264", + "\u0007,\u0002\u0002\u0264\u0268\u0003\u0002\u0002\u0002\u0265\u0267", + "\u000b\u0002\u0002\u0002\u0266\u0265\u0003\u0002\u0002\u0002\u0267\u026a", + "\u0003\u0002\u0002\u0002\u0268\u0269\u0003\u0002\u0002\u0002\u0268\u0266", + "\u0003\u0002\u0002\u0002\u0269\u026b\u0003\u0002\u0002\u0002\u026a\u0268", + "\u0003\u0002\u0002\u0002\u026b\u026c\u0007,\u0002\u0002\u026c\u026d", + "\u00071\u0002\u0002\u026d\u026e\u0003\u0002\u0002\u0002\u026e\u026f", + "\b\u0003\u0002\u0002\u026f\u0006\u0003\u0002\u0002\u0002\u0270\u0271", + "\u0007/\u0002\u0002\u0271\u0272\u0007/\u0002\u0002\u0272\u0275\u0007", + "\"\u0002\u0002\u0273\u0275\u0007%\u0002\u0002\u0274\u0270\u0003\u0002", + "\u0002\u0002\u0274\u0273\u0003\u0002\u0002\u0002\u0275\u0279\u0003\u0002", + "\u0002\u0002\u0276\u0278\n\u0003\u0002\u0002\u0277\u0276\u0003\u0002", + "\u0002\u0002\u0278\u027b\u0003\u0002\u0002\u0002\u0279\u0277\u0003\u0002", + "\u0002\u0002\u0279\u027a\u0003\u0002\u0002\u0002\u027a\u0281\u0003\u0002", + "\u0002\u0002\u027b\u0279\u0003\u0002\u0002\u0002\u027c\u027e\u0007\u000f", + "\u0002\u0002\u027d\u027c\u0003\u0002\u0002\u0002\u027d\u027e\u0003\u0002", + "\u0002\u0002\u027e\u027f\u0003\u0002\u0002\u0002\u027f\u0282\u0007\f", + "\u0002\u0002\u0280\u0282\u0007\u0002\u0002\u0003\u0281\u027d\u0003\u0002", + "\u0002\u0002\u0281\u0280\u0003\u0002\u0002\u0002\u0282\u028e\u0003\u0002", + "\u0002\u0002\u0283\u0284\u0007/\u0002\u0002\u0284\u0285\u0007/\u0002", + "\u0002\u0285\u028b\u0003\u0002\u0002\u0002\u0286\u0288\u0007\u000f\u0002", + "\u0002\u0287\u0286\u0003\u0002\u0002\u0002\u0287\u0288\u0003\u0002\u0002", + "\u0002\u0288\u0289\u0003\u0002\u0002\u0002\u0289\u028c\u0007\f\u0002", + "\u0002\u028a\u028c\u0007\u0002\u0002\u0003\u028b\u0287\u0003\u0002\u0002", + "\u0002\u028b\u028a\u0003\u0002\u0002\u0002\u028c\u028e\u0003\u0002\u0002", + "\u0002\u028d\u0274\u0003\u0002\u0002\u0002\u028d\u0283\u0003\u0002\u0002", + "\u0002\u028e\u028f\u0003\u0002\u0002\u0002\u028f\u0290\b\u0004\u0002", + "\u0002\u0290\b\u0003\u0002\u0002\u0002\u0291\u0292\u0007U\u0002\u0002", + "\u0292\u0293\u0007G\u0002\u0002\u0293\u0294\u0007N\u0002\u0002\u0294", + "\u0295\u0007G\u0002\u0002\u0295\u0296\u0007E\u0002\u0002\u0296\u0297", + "\u0007V\u0002\u0002\u0297\n\u0003\u0002\u0002\u0002\u0298\u0299\u0007", + "H\u0002\u0002\u0299\u029a\u0007T\u0002\u0002\u029a\u029b\u0007Q\u0002", + "\u0002\u029b\u029c\u0007O\u0002\u0002\u029c\f\u0003\u0002\u0002\u0002", + "\u029d\u029e\u0007C\u0002\u0002\u029e\u029f\u0007F\u0002\u0002\u029f", + "\u02a0\u0007F\u0002\u0002\u02a0\u000e\u0003\u0002\u0002\u0002\u02a1", + "\u02a2\u0007C\u0002\u0002\u02a2\u02a3\u0007U\u0002\u0002\u02a3\u0010", + "\u0003\u0002\u0002\u0002\u02a4\u02a5\u0007C\u0002\u0002\u02a5\u02a6", + "\u0007N\u0002\u0002\u02a6\u02a7\u0007N\u0002\u0002\u02a7\u0012\u0003", + "\u0002\u0002\u0002\u02a8\u02a9\u0007C\u0002\u0002\u02a9\u02aa\u0007", + "P\u0002\u0002\u02aa\u02ab\u0007[\u0002\u0002\u02ab\u0014\u0003\u0002", + "\u0002\u0002\u02ac\u02ad\u0007F\u0002\u0002\u02ad\u02ae\u0007K\u0002", + "\u0002\u02ae\u02af\u0007U\u0002\u0002\u02af\u02b0\u0007V\u0002\u0002", + "\u02b0\u02b1\u0007K\u0002\u0002\u02b1\u02b2\u0007P\u0002\u0002\u02b2", + "\u02b3\u0007E\u0002\u0002\u02b3\u02b4\u0007V\u0002\u0002\u02b4\u0016", + "\u0003\u0002\u0002\u0002\u02b5\u02b6\u0007Y\u0002\u0002\u02b6\u02b7", + "\u0007J\u0002\u0002\u02b7\u02b8\u0007G\u0002\u0002\u02b8\u02b9\u0007", + "T\u0002\u0002\u02b9\u02ba\u0007G\u0002\u0002\u02ba\u0018\u0003\u0002", + "\u0002\u0002\u02bb\u02bc\u0007I\u0002\u0002\u02bc\u02bd\u0007T\u0002", + "\u0002\u02bd\u02be\u0007Q\u0002\u0002\u02be\u02bf\u0007W\u0002\u0002", + "\u02bf\u02c0\u0007R\u0002\u0002\u02c0\u001a\u0003\u0002\u0002\u0002", + "\u02c1\u02c2\u0007D\u0002\u0002\u02c2\u02c3\u0007[\u0002\u0002\u02c3", + "\u001c\u0003\u0002\u0002\u0002\u02c4\u02c5\u0007I\u0002\u0002\u02c5", + "\u02c6\u0007T\u0002\u0002\u02c6\u02c7\u0007Q\u0002\u0002\u02c7\u02c8", + "\u0007W\u0002\u0002\u02c8\u02c9\u0007R\u0002\u0002\u02c9\u02ca\u0007", + "K\u0002\u0002\u02ca\u02cb\u0007P\u0002\u0002\u02cb\u02cc\u0007I\u0002", + "\u0002\u02cc\u001e\u0003\u0002\u0002\u0002\u02cd\u02ce\u0007U\u0002", + "\u0002\u02ce\u02cf\u0007G\u0002\u0002\u02cf\u02d0\u0007V\u0002\u0002", + "\u02d0\u02d1\u0007U\u0002\u0002\u02d1 \u0003\u0002\u0002\u0002\u02d2", + "\u02d3\u0007E\u0002\u0002\u02d3\u02d4\u0007W\u0002\u0002\u02d4\u02d5", + "\u0007D\u0002\u0002\u02d5\u02d6\u0007G\u0002\u0002\u02d6\"\u0003\u0002", + "\u0002\u0002\u02d7\u02d8\u0007T\u0002\u0002\u02d8\u02d9\u0007Q\u0002", + "\u0002\u02d9\u02da\u0007N\u0002\u0002\u02da\u02db\u0007N\u0002\u0002", + "\u02db\u02dc\u0007W\u0002\u0002\u02dc\u02dd\u0007R\u0002\u0002\u02dd", + "$\u0003\u0002\u0002\u0002\u02de\u02df\u0007Q\u0002\u0002\u02df\u02e0", + "\u0007T\u0002\u0002\u02e0\u02e1\u0007F\u0002\u0002\u02e1\u02e2\u0007", + "G\u0002\u0002\u02e2\u02e3\u0007T\u0002\u0002\u02e3&\u0003\u0002\u0002", + "\u0002\u02e4\u02e5\u0007J\u0002\u0002\u02e5\u02e6\u0007C\u0002\u0002", + "\u02e6\u02e7\u0007X\u0002\u0002\u02e7\u02e8\u0007K\u0002\u0002\u02e8", + "\u02e9\u0007P\u0002\u0002\u02e9\u02ea\u0007I\u0002\u0002\u02ea(\u0003", + "\u0002\u0002\u0002\u02eb\u02ec\u0007N\u0002\u0002\u02ec\u02ed\u0007", + "K\u0002\u0002\u02ed\u02ee\u0007O\u0002\u0002\u02ee\u02ef\u0007K\u0002", + "\u0002\u02ef\u02f0\u0007V\u0002\u0002\u02f0*\u0003\u0002\u0002\u0002", + "\u02f1\u02f2\u0007C\u0002\u0002\u02f2\u02f3\u0007V\u0002\u0002\u02f3", + ",\u0003\u0002\u0002\u0002\u02f4\u02f5\u0007Q\u0002\u0002\u02f5\u02f6", + "\u0007T\u0002\u0002\u02f6.\u0003\u0002\u0002\u0002\u02f7\u02f8\u0007", + "C\u0002\u0002\u02f8\u02f9\u0007P\u0002\u0002\u02f9\u02fa\u0007F\u0002", + "\u0002\u02fa0\u0003\u0002\u0002\u0002\u02fb\u02fc\u0007K\u0002\u0002", + "\u02fc\u02fd\u0007P\u0002\u0002\u02fd2\u0003\u0002\u0002\u0002\u02fe", + "\u02ff\u0007P\u0002\u0002\u02ff\u0300\u0007Q\u0002\u0002\u0300\u0301", + "\u0007V\u0002\u0002\u03014\u0003\u0002\u0002\u0002\u0302\u0303\u0007", + "P\u0002\u0002\u0303\u0304\u0007Q\u0002\u0002\u03046\u0003\u0002\u0002", + "\u0002\u0305\u0306\u0007G\u0002\u0002\u0306\u0307\u0007Z\u0002\u0002", + "\u0307\u0308\u0007K\u0002\u0002\u0308\u0309\u0007U\u0002\u0002\u0309", + "\u030a\u0007V\u0002\u0002\u030a\u030b\u0007U\u0002\u0002\u030b8\u0003", + "\u0002\u0002\u0002\u030c\u030d\u0007D\u0002\u0002\u030d\u030e\u0007", + "G\u0002\u0002\u030e\u030f\u0007V\u0002\u0002\u030f\u0310\u0007Y\u0002", + "\u0002\u0310\u0311\u0007G\u0002\u0002\u0311\u0312\u0007G\u0002\u0002", + "\u0312\u0313\u0007P\u0002\u0002\u0313:\u0003\u0002\u0002\u0002\u0314", + "\u0315\u0007N\u0002\u0002\u0315\u0316\u0007K\u0002\u0002\u0316\u0317", + "\u0007M\u0002\u0002\u0317\u0318\u0007G\u0002\u0002\u0318<\u0003\u0002", + "\u0002\u0002\u0319\u031a\u0007T\u0002\u0002\u031a\u031b\u0007N\u0002", + "\u0002\u031b\u031c\u0007K\u0002\u0002\u031c\u031d\u0007M\u0002\u0002", + "\u031d\u031e\u0007G\u0002\u0002\u031e>\u0003\u0002\u0002\u0002\u031f", + "\u0320\u0007K\u0002\u0002\u0320\u0321\u0007U\u0002\u0002\u0321@\u0003", + "\u0002\u0002\u0002\u0322\u0323\u0007V\u0002\u0002\u0323\u0324\u0007", + "T\u0002\u0002\u0324\u0325\u0007W\u0002\u0002\u0325\u0326\u0007G\u0002", + "\u0002\u0326B\u0003\u0002\u0002\u0002\u0327\u0328\u0007H\u0002\u0002", + "\u0328\u0329\u0007C\u0002\u0002\u0329\u032a\u0007N\u0002\u0002\u032a", + "\u032b\u0007U\u0002\u0002\u032b\u032c\u0007G\u0002\u0002\u032cD\u0003", + "\u0002\u0002\u0002\u032d\u032e\u0007P\u0002\u0002\u032e\u032f\u0007", + "W\u0002\u0002\u032f\u0330\u0007N\u0002\u0002\u0330\u0331\u0007N\u0002", + "\u0002\u0331\u0332\u0007U\u0002\u0002\u0332F\u0003\u0002\u0002\u0002", + "\u0333\u0334\u0007C\u0002\u0002\u0334\u0335\u0007U\u0002\u0002\u0335", + "\u0336\u0007E\u0002\u0002\u0336H\u0003\u0002\u0002\u0002\u0337\u0338", + "\u0007F\u0002\u0002\u0338\u0339\u0007G\u0002\u0002\u0339\u033a\u0007", + "U\u0002\u0002\u033a\u033b\u0007E\u0002\u0002\u033bJ\u0003\u0002\u0002", + "\u0002\u033c\u033d\u0007H\u0002\u0002\u033d\u033e\u0007Q\u0002\u0002", + "\u033e\u033f\u0007T\u0002\u0002\u033fL\u0003\u0002\u0002\u0002\u0340", + "\u0341\u0007K\u0002\u0002\u0341\u0342\u0007P\u0002\u0002\u0342\u0343", + "\u0007V\u0002\u0002\u0343\u0344\u0007G\u0002\u0002\u0344\u0345\u0007", + "T\u0002\u0002\u0345\u0346\u0007X\u0002\u0002\u0346\u0347\u0007C\u0002", + "\u0002\u0347\u0348\u0007N\u0002\u0002\u0348N\u0003\u0002\u0002\u0002", + "\u0349\u034a\u0007E\u0002\u0002\u034a\u034b\u0007C\u0002\u0002\u034b", + "\u034c\u0007U\u0002\u0002\u034c\u034d\u0007G\u0002\u0002\u034dP\u0003", + "\u0002\u0002\u0002\u034e\u034f\u0007Y\u0002\u0002\u034f\u0350\u0007", + "J\u0002\u0002\u0350\u0351\u0007G\u0002\u0002\u0351\u0352\u0007P\u0002", + "\u0002\u0352R\u0003\u0002\u0002\u0002\u0353\u0354\u0007V\u0002\u0002", + "\u0354\u0355\u0007J\u0002\u0002\u0355\u0356\u0007G\u0002\u0002\u0356", + "\u0357\u0007P\u0002\u0002\u0357T\u0003\u0002\u0002\u0002\u0358\u0359", + "\u0007G\u0002\u0002\u0359\u035a\u0007N\u0002\u0002\u035a\u035b\u0007", + "U\u0002\u0002\u035b\u035c\u0007G\u0002\u0002\u035cV\u0003\u0002\u0002", + "\u0002\u035d\u035e\u0007G\u0002\u0002\u035e\u035f\u0007P\u0002\u0002", + "\u035f\u0360\u0007F\u0002\u0002\u0360X\u0003\u0002\u0002\u0002\u0361", + "\u0362\u0007L\u0002\u0002\u0362\u0363\u0007Q\u0002\u0002\u0363\u0364", + "\u0007K\u0002\u0002\u0364\u0365\u0007P\u0002\u0002\u0365Z\u0003\u0002", + "\u0002\u0002\u0366\u0367\u0007E\u0002\u0002\u0367\u0368\u0007T\u0002", + "\u0002\u0368\u0369\u0007Q\u0002\u0002\u0369\u036a\u0007U\u0002\u0002", + "\u036a\u036b\u0007U\u0002\u0002\u036b\\\u0003\u0002\u0002\u0002\u036c", + "\u036d\u0007Q\u0002\u0002\u036d\u036e\u0007W\u0002\u0002\u036e\u036f", + "\u0007V\u0002\u0002\u036f\u0370\u0007G\u0002\u0002\u0370\u0371\u0007", + "T\u0002\u0002\u0371^\u0003\u0002\u0002\u0002\u0372\u0373\u0007K\u0002", + "\u0002\u0373\u0374\u0007P\u0002\u0002\u0374\u0375\u0007P\u0002\u0002", + "\u0375\u0376\u0007G\u0002\u0002\u0376\u0377\u0007T\u0002\u0002\u0377", + "`\u0003\u0002\u0002\u0002\u0378\u0379\u0007N\u0002\u0002\u0379\u037a", + "\u0007G\u0002\u0002\u037a\u037b\u0007H\u0002\u0002\u037b\u037c\u0007", + "V\u0002\u0002\u037cb\u0003\u0002\u0002\u0002\u037d\u037e\u0007U\u0002", + "\u0002\u037e\u037f\u0007G\u0002\u0002\u037f\u0380\u0007O\u0002\u0002", + "\u0380\u0381\u0007K\u0002\u0002\u0381d\u0003\u0002\u0002\u0002\u0382", + "\u0383\u0007T\u0002\u0002\u0383\u0384\u0007K\u0002\u0002\u0384\u0385", + "\u0007I\u0002\u0002\u0385\u0386\u0007J\u0002\u0002\u0386\u0387\u0007", + "V\u0002\u0002\u0387f\u0003\u0002\u0002\u0002\u0388\u0389\u0007H\u0002", + "\u0002\u0389\u038a\u0007W\u0002\u0002\u038a\u038b\u0007N\u0002\u0002", + "\u038b\u038c\u0007N\u0002\u0002\u038ch\u0003\u0002\u0002\u0002\u038d", + "\u038e\u0007P\u0002\u0002\u038e\u038f\u0007C\u0002\u0002\u038f\u0390", + "\u0007V\u0002\u0002\u0390\u0391\u0007W\u0002\u0002\u0391\u0392\u0007", + "T\u0002\u0002\u0392\u0393\u0007C\u0002\u0002\u0393\u0394\u0007N\u0002", + "\u0002\u0394j\u0003\u0002\u0002\u0002\u0395\u0396\u0007Q\u0002\u0002", + "\u0396\u0397\u0007P\u0002\u0002\u0397l\u0003\u0002\u0002\u0002\u0398", + "\u0399\u0007R\u0002\u0002\u0399\u039a\u0007K\u0002\u0002\u039a\u039b", + "\u0007X\u0002\u0002\u039b\u039c\u0007Q\u0002\u0002\u039c\u039d\u0007", + "V\u0002\u0002\u039dn\u0003\u0002\u0002\u0002\u039e\u039f\u0007N\u0002", + "\u0002\u039f\u03a0\u0007C\u0002\u0002\u03a0\u03a1\u0007V\u0002\u0002", + "\u03a1\u03a2\u0007G\u0002\u0002\u03a2\u03a3\u0007T\u0002\u0002\u03a3", + "\u03a4\u0007C\u0002\u0002\u03a4\u03a5\u0007N\u0002\u0002\u03a5p\u0003", + "\u0002\u0002\u0002\u03a6\u03a7\u0007Y\u0002\u0002\u03a7\u03a8\u0007", + "K\u0002\u0002\u03a8\u03a9\u0007P\u0002\u0002\u03a9\u03aa\u0007F\u0002", + "\u0002\u03aa\u03ab\u0007Q\u0002\u0002\u03ab\u03ac\u0007Y\u0002\u0002", + "\u03acr\u0003\u0002\u0002\u0002\u03ad\u03ae\u0007Q\u0002\u0002\u03ae", + "\u03af\u0007X\u0002\u0002\u03af\u03b0\u0007G\u0002\u0002\u03b0\u03b1", + "\u0007T\u0002\u0002\u03b1t\u0003\u0002\u0002\u0002\u03b2\u03b3\u0007", + "R\u0002\u0002\u03b3\u03b4\u0007C\u0002\u0002\u03b4\u03b5\u0007T\u0002", + "\u0002\u03b5\u03b6\u0007V\u0002\u0002\u03b6\u03b7\u0007K\u0002\u0002", + "\u03b7\u03b8\u0007V\u0002\u0002\u03b8\u03b9\u0007K\u0002\u0002\u03b9", + "\u03ba\u0007Q\u0002\u0002\u03ba\u03bb\u0007P\u0002\u0002\u03bbv\u0003", + "\u0002\u0002\u0002\u03bc\u03bd\u0007T\u0002\u0002\u03bd\u03be\u0007", + "C\u0002\u0002\u03be\u03bf\u0007P\u0002\u0002\u03bf\u03c0\u0007I\u0002", + "\u0002\u03c0\u03c1\u0007G\u0002\u0002\u03c1x\u0003\u0002\u0002\u0002", + "\u03c2\u03c3\u0007T\u0002\u0002\u03c3\u03c4\u0007Q\u0002\u0002\u03c4", + "\u03c5\u0007Y\u0002\u0002\u03c5\u03c6\u0007U\u0002\u0002\u03c6z\u0003", + "\u0002\u0002\u0002\u03c7\u03c8\u0007W\u0002\u0002\u03c8\u03c9\u0007", + "P\u0002\u0002\u03c9\u03ca\u0007D\u0002\u0002\u03ca\u03cb\u0007Q\u0002", + "\u0002\u03cb\u03cc\u0007W\u0002\u0002\u03cc\u03cd\u0007P\u0002\u0002", + "\u03cd\u03ce\u0007F\u0002\u0002\u03ce\u03cf\u0007G\u0002\u0002\u03cf", + "\u03d0\u0007F\u0002\u0002\u03d0|\u0003\u0002\u0002\u0002\u03d1\u03d2", + "\u0007R\u0002\u0002\u03d2\u03d3\u0007T\u0002\u0002\u03d3\u03d4\u0007", + "G\u0002\u0002\u03d4\u03d5\u0007E\u0002\u0002\u03d5\u03d6\u0007G\u0002", + "\u0002\u03d6\u03d7\u0007F\u0002\u0002\u03d7\u03d8\u0007K\u0002\u0002", + "\u03d8\u03d9\u0007P\u0002\u0002\u03d9\u03da\u0007I\u0002\u0002\u03da", + "~\u0003\u0002\u0002\u0002\u03db\u03dc\u0007H\u0002\u0002\u03dc\u03dd", + "\u0007Q\u0002\u0002\u03dd\u03de\u0007N\u0002\u0002\u03de\u03df\u0007", + "N\u0002\u0002\u03df\u03e0\u0007Q\u0002\u0002\u03e0\u03e1\u0007Y\u0002", + "\u0002\u03e1\u03e2\u0007K\u0002\u0002\u03e2\u03e3\u0007P\u0002\u0002", + "\u03e3\u03e4\u0007I\u0002\u0002\u03e4\u0080\u0003\u0002\u0002\u0002", + "\u03e5\u03e6\u0007E\u0002\u0002\u03e6\u03e7\u0007W\u0002\u0002\u03e7", + "\u03e8\u0007T\u0002\u0002\u03e8\u03e9\u0007T\u0002\u0002\u03e9\u03ea", + "\u0007G\u0002\u0002\u03ea\u03eb\u0007P\u0002\u0002\u03eb\u03ec\u0007", + "V\u0002\u0002\u03ec\u0082\u0003\u0002\u0002\u0002\u03ed\u03ee\u0007", + "H\u0002\u0002\u03ee\u03ef\u0007K\u0002\u0002\u03ef\u03f0\u0007T\u0002", + "\u0002\u03f0\u03f1\u0007U\u0002\u0002\u03f1\u03f2\u0007V\u0002\u0002", + "\u03f2\u0084\u0003\u0002\u0002\u0002\u03f3\u03f4\u0007C\u0002\u0002", + "\u03f4\u03f5\u0007H\u0002\u0002\u03f5\u03f6\u0007V\u0002\u0002\u03f6", + "\u03f7\u0007G\u0002\u0002\u03f7\u03f8\u0007T\u0002\u0002\u03f8\u0086", + "\u0003\u0002\u0002\u0002\u03f9\u03fa\u0007N\u0002\u0002\u03fa\u03fb", + "\u0007C\u0002\u0002\u03fb\u03fc\u0007U\u0002\u0002\u03fc\u03fd\u0007", + "V\u0002\u0002\u03fd\u0088\u0003\u0002\u0002\u0002\u03fe\u03ff\u0007", + "Y\u0002\u0002\u03ff\u0400\u0007K\u0002\u0002\u0400\u0401\u0007V\u0002", + "\u0002\u0401\u0402\u0007J\u0002\u0002\u0402\u008a\u0003\u0002\u0002", + "\u0002\u0403\u0404\u0007X\u0002\u0002\u0404\u0405\u0007C\u0002\u0002", + "\u0405\u0406\u0007N\u0002\u0002\u0406\u0407\u0007W\u0002\u0002\u0407", + "\u0408\u0007G\u0002\u0002\u0408\u0409\u0007U\u0002\u0002\u0409\u008c", + "\u0003\u0002\u0002\u0002\u040a\u040b\u0007E\u0002\u0002\u040b\u040c", + "\u0007T\u0002\u0002\u040c\u040d\u0007G\u0002\u0002\u040d\u040e\u0007", + "C\u0002\u0002\u040e\u040f\u0007V\u0002\u0002\u040f\u0410\u0007G\u0002", + "\u0002\u0410\u008e\u0003\u0002\u0002\u0002\u0411\u0412\u0007V\u0002", + "\u0002\u0412\u0413\u0007C\u0002\u0002\u0413\u0414\u0007D\u0002\u0002", + "\u0414\u0415\u0007N\u0002\u0002\u0415\u0416\u0007G\u0002\u0002\u0416", + "\u0090\u0003\u0002\u0002\u0002\u0417\u0418\u0007F\u0002\u0002\u0418", + "\u0419\u0007K\u0002\u0002\u0419\u041a\u0007T\u0002\u0002\u041a\u041b", + "\u0007G\u0002\u0002\u041b\u041c\u0007E\u0002\u0002\u041c\u041d\u0007", + "V\u0002\u0002\u041d\u041e\u0007Q\u0002\u0002\u041e\u041f\u0007T\u0002", + "\u0002\u041f\u0420\u0007[\u0002\u0002\u0420\u0092\u0003\u0002\u0002", + "\u0002\u0421\u0422\u0007X\u0002\u0002\u0422\u0423\u0007K\u0002\u0002", + "\u0423\u0424\u0007G\u0002\u0002\u0424\u0425\u0007Y\u0002\u0002\u0425", + "\u0094\u0003\u0002\u0002\u0002\u0426\u0427\u0007T\u0002\u0002\u0427", + "\u0428\u0007G\u0002\u0002\u0428\u0429\u0007R\u0002\u0002\u0429\u042a", + "\u0007N\u0002\u0002\u042a\u042b\u0007C\u0002\u0002\u042b\u042c\u0007", + "E\u0002\u0002\u042c\u042d\u0007G\u0002\u0002\u042d\u0096\u0003\u0002", + "\u0002\u0002\u042e\u042f\u0007K\u0002\u0002\u042f\u0430\u0007P\u0002", + "\u0002\u0430\u0431\u0007U\u0002\u0002\u0431\u0432\u0007G\u0002\u0002", + "\u0432\u0433\u0007T\u0002\u0002\u0433\u0434\u0007V\u0002\u0002\u0434", + "\u0098\u0003\u0002\u0002\u0002\u0435\u0436\u0007F\u0002\u0002\u0436", + "\u0437\u0007G\u0002\u0002\u0437\u0438\u0007N\u0002\u0002\u0438\u0439", + "\u0007G\u0002\u0002\u0439\u043a\u0007V\u0002\u0002\u043a\u043b\u0007", + "G\u0002\u0002\u043b\u009a\u0003\u0002\u0002\u0002\u043c\u043d\u0007", + "K\u0002\u0002\u043d\u043e\u0007P\u0002\u0002\u043e\u043f\u0007V\u0002", + "\u0002\u043f\u0440\u0007Q\u0002\u0002\u0440\u009c\u0003\u0002\u0002", + "\u0002\u0441\u0442\u0007F\u0002\u0002\u0442\u0443\u0007G\u0002\u0002", + "\u0443\u0444\u0007U\u0002\u0002\u0444\u0445\u0007E\u0002\u0002\u0445", + "\u0446\u0007T\u0002\u0002\u0446\u0447\u0007K\u0002\u0002\u0447\u0448", + "\u0007D\u0002\u0002\u0448\u0449\u0007G\u0002\u0002\u0449\u009e\u0003", + "\u0002\u0002\u0002\u044a\u044b\u0007G\u0002\u0002\u044b\u044c\u0007", + "Z\u0002\u0002\u044c\u044d\u0007R\u0002\u0002\u044d\u044e\u0007N\u0002", + "\u0002\u044e\u044f\u0007C\u0002\u0002\u044f\u0450\u0007K\u0002\u0002", + "\u0450\u0451\u0007P\u0002\u0002\u0451\u00a0\u0003\u0002\u0002\u0002", + "\u0452\u0453\u0007H\u0002\u0002\u0453\u0454\u0007Q\u0002\u0002\u0454", + "\u0455\u0007T\u0002\u0002\u0455\u0456\u0007O\u0002\u0002\u0456\u0457", + "\u0007C\u0002\u0002\u0457\u0458\u0007V\u0002\u0002\u0458\u00a2\u0003", + "\u0002\u0002\u0002\u0459\u045a\u0007N\u0002\u0002\u045a\u045b\u0007", + "Q\u0002\u0002\u045b\u045c\u0007I\u0002\u0002\u045c\u045d\u0007K\u0002", + "\u0002\u045d\u045e\u0007E\u0002\u0002\u045e\u045f\u0007C\u0002\u0002", + "\u045f\u0460\u0007N\u0002\u0002\u0460\u00a4\u0003\u0002\u0002\u0002", + "\u0461\u0462\u0007E\u0002\u0002\u0462\u0463\u0007Q\u0002\u0002\u0463", + "\u0464\u0007F\u0002\u0002\u0464\u0465\u0007G\u0002\u0002\u0465\u0466", + "\u0007I\u0002\u0002\u0466\u0467\u0007G\u0002\u0002\u0467\u0468\u0007", + "P\u0002\u0002\u0468\u00a6\u0003\u0002\u0002\u0002\u0469\u046a\u0007", + "E\u0002\u0002\u046a\u046b\u0007Q\u0002\u0002\u046b\u046c\u0007U\u0002", + "\u0002\u046c\u046d\u0007V\u0002\u0002\u046d\u00a8\u0003\u0002\u0002", + "\u0002\u046e\u046f\u0007E\u0002\u0002\u046f\u0470\u0007C\u0002\u0002", + "\u0470\u0471\u0007U\u0002\u0002\u0471\u0472\u0007V\u0002\u0002\u0472", + "\u00aa\u0003\u0002\u0002\u0002\u0473\u0474\u0007U\u0002\u0002\u0474", + "\u0475\u0007J\u0002\u0002\u0475\u0476\u0007Q\u0002\u0002\u0476\u0477", + "\u0007Y\u0002\u0002\u0477\u00ac\u0003\u0002\u0002\u0002\u0478\u0479", + "\u0007V\u0002\u0002\u0479\u047a\u0007C\u0002\u0002\u047a\u047b\u0007", + "D\u0002\u0002\u047b\u047c\u0007N\u0002\u0002\u047c\u047d\u0007G\u0002", + "\u0002\u047d\u047e\u0007U\u0002\u0002\u047e\u00ae\u0003\u0002\u0002", + "\u0002\u047f\u0480\u0007E\u0002\u0002\u0480\u0481\u0007Q\u0002\u0002", + "\u0481\u0482\u0007N\u0002\u0002\u0482\u0483\u0007W\u0002\u0002\u0483", + "\u0484\u0007O\u0002\u0002\u0484\u0485\u0007P\u0002\u0002\u0485\u0486", + "\u0007U\u0002\u0002\u0486\u00b0\u0003\u0002\u0002\u0002\u0487\u0488", + "\u0007E\u0002\u0002\u0488\u0489\u0007Q\u0002\u0002\u0489\u048a\u0007", + "N\u0002\u0002\u048a\u048b\u0007W\u0002\u0002\u048b\u048c\u0007O\u0002", + "\u0002\u048c\u048d\u0007P\u0002\u0002\u048d\u00b2\u0003\u0002\u0002", + "\u0002\u048e\u048f\u0007W\u0002\u0002\u048f\u0490\u0007U\u0002\u0002", + "\u0490\u0491\u0007G\u0002\u0002\u0491\u00b4\u0003\u0002\u0002\u0002", + "\u0492\u0493\u0007R\u0002\u0002\u0493\u0494\u0007C\u0002\u0002\u0494", + "\u0495\u0007T\u0002\u0002\u0495\u0496\u0007V\u0002\u0002\u0496\u0497", + "\u0007K\u0002\u0002\u0497\u0498\u0007V\u0002\u0002\u0498\u0499\u0007", + "K\u0002\u0002\u0499\u049a\u0007Q\u0002\u0002\u049a\u049b\u0007P\u0002", + "\u0002\u049b\u049c\u0007U\u0002\u0002\u049c\u00b6\u0003\u0002\u0002", + "\u0002\u049d\u049e\u0007H\u0002\u0002\u049e\u049f\u0007W\u0002\u0002", + "\u049f\u04a0\u0007P\u0002\u0002\u04a0\u04a1\u0007E\u0002\u0002\u04a1", + "\u04a2\u0007V\u0002\u0002\u04a2\u04a3\u0007K\u0002\u0002\u04a3\u04a4", + "\u0007Q\u0002\u0002\u04a4\u04a5\u0007P\u0002\u0002\u04a5\u04a6\u0007", + "U\u0002\u0002\u04a6\u00b8\u0003\u0002\u0002\u0002\u04a7\u04a8\u0007", + "F\u0002\u0002\u04a8\u04a9\u0007T\u0002\u0002\u04a9\u04aa\u0007Q\u0002", + "\u0002\u04aa\u04ab\u0007R\u0002\u0002\u04ab\u00ba\u0003\u0002\u0002", + "\u0002\u04ac\u04ad\u0007W\u0002\u0002\u04ad\u04ae\u0007P\u0002\u0002", + "\u04ae\u04af\u0007K\u0002\u0002\u04af\u04b0\u0007Q\u0002\u0002\u04b0", + "\u04b1\u0007P\u0002\u0002\u04b1\u00bc\u0003\u0002\u0002\u0002\u04b2", + "\u04b3\u0007G\u0002\u0002\u04b3\u04b4\u0007Z\u0002\u0002\u04b4\u04b5", + "\u0007E\u0002\u0002\u04b5\u04b6\u0007G\u0002\u0002\u04b6\u04b7\u0007", + "R\u0002\u0002\u04b7\u04b8\u0007V\u0002\u0002\u04b8\u00be\u0003\u0002", + "\u0002\u0002\u04b9\u04ba\u0007U\u0002\u0002\u04ba\u04bb\u0007G\u0002", + "\u0002\u04bb\u04bc\u0007V\u0002\u0002\u04bc\u04bd\u0007O\u0002\u0002", + "\u04bd\u04be\u0007K\u0002\u0002\u04be\u04bf\u0007P\u0002\u0002\u04bf", + "\u04c0\u0007W\u0002\u0002\u04c0\u04c1\u0007U\u0002\u0002\u04c1\u00c0", + "\u0003\u0002\u0002\u0002\u04c2\u04c3\u0007K\u0002\u0002\u04c3\u04c4", + "\u0007P\u0002\u0002\u04c4\u04c5\u0007V\u0002\u0002\u04c5\u04c6\u0007", + "G\u0002\u0002\u04c6\u04c7\u0007T\u0002\u0002\u04c7\u04c8\u0007U\u0002", + "\u0002\u04c8\u04c9\u0007G\u0002\u0002\u04c9\u04ca\u0007E\u0002\u0002", + "\u04ca\u04cb\u0007V\u0002\u0002\u04cb\u00c2\u0003\u0002\u0002\u0002", + "\u04cc\u04cd\u0007V\u0002\u0002\u04cd\u04ce\u0007Q\u0002\u0002\u04ce", + "\u00c4\u0003\u0002\u0002\u0002\u04cf\u04d0\u0007V\u0002\u0002\u04d0", + "\u04d1\u0007C\u0002\u0002\u04d1\u04d2\u0007D\u0002\u0002\u04d2\u04d3", + "\u0007N\u0002\u0002\u04d3\u04d4\u0007G\u0002\u0002\u04d4\u04d5\u0007", + "U\u0002\u0002\u04d5\u04d6\u0007C\u0002\u0002\u04d6\u04d7\u0007O\u0002", + "\u0002\u04d7\u04d8\u0007R\u0002\u0002\u04d8\u04d9\u0007N\u0002\u0002", + "\u04d9\u04da\u0007G\u0002\u0002\u04da\u00c6\u0003\u0002\u0002\u0002", + "\u04db\u04dc\u0007U\u0002\u0002\u04dc\u04dd\u0007V\u0002\u0002\u04dd", + "\u04de\u0007T\u0002\u0002\u04de\u04df\u0007C\u0002\u0002\u04df\u04e0", + "\u0007V\u0002\u0002\u04e0\u04e1\u0007K\u0002\u0002\u04e1\u04e2\u0007", + "H\u0002\u0002\u04e2\u04e3\u0007[\u0002\u0002\u04e3\u00c8\u0003\u0002", + "\u0002\u0002\u04e4\u04e5\u0007C\u0002\u0002\u04e5\u04e6\u0007N\u0002", + "\u0002\u04e6\u04e7\u0007V\u0002\u0002\u04e7\u04e8\u0007G\u0002\u0002", + "\u04e8\u04e9\u0007T\u0002\u0002\u04e9\u00ca\u0003\u0002\u0002\u0002", + "\u04ea\u04eb\u0007T\u0002\u0002\u04eb\u04ec\u0007G\u0002\u0002\u04ec", + "\u04ed\u0007P\u0002\u0002\u04ed\u04ee\u0007C\u0002\u0002\u04ee\u04ef", + "\u0007O\u0002\u0002\u04ef\u04f0\u0007G\u0002\u0002\u04f0\u00cc\u0003", + "\u0002\u0002\u0002\u04f1\u04f2\u0007U\u0002\u0002\u04f2\u04f3\u0007", + "V\u0002\u0002\u04f3\u04f4\u0007T\u0002\u0002\u04f4\u04f5\u0007W\u0002", + "\u0002\u04f5\u04f6\u0007E\u0002\u0002\u04f6\u04f7\u0007V\u0002\u0002", + "\u04f7\u00ce\u0003\u0002\u0002\u0002\u04f8\u04f9\u0007E\u0002\u0002", + "\u04f9\u04fa\u0007Q\u0002\u0002\u04fa\u04fb\u0007O\u0002\u0002\u04fb", + "\u04fc\u0007O\u0002\u0002\u04fc\u04fd\u0007G\u0002\u0002\u04fd\u04fe", + "\u0007P\u0002\u0002\u04fe\u04ff\u0007V\u0002\u0002\u04ff\u00d0\u0003", + "\u0002\u0002\u0002\u0500\u0501\u0007U\u0002\u0002\u0501\u0502\u0007", + "G\u0002\u0002\u0502\u0503\u0007V\u0002\u0002\u0503\u00d2\u0003\u0002", + "\u0002\u0002\u0504\u0505\u0007T\u0002\u0002\u0505\u0506\u0007G\u0002", + "\u0002\u0506\u0507\u0007U\u0002\u0002\u0507\u0508\u0007G\u0002\u0002", + "\u0508\u0509\u0007V\u0002\u0002\u0509\u00d4\u0003\u0002\u0002\u0002", + "\u050a\u050b\u0007F\u0002\u0002\u050b\u050c\u0007C\u0002\u0002\u050c", + "\u050d\u0007V\u0002\u0002\u050d\u050e\u0007C\u0002\u0002\u050e\u00d6", + "\u0003\u0002\u0002\u0002\u050f\u0510\u0007U\u0002\u0002\u0510\u0511", + "\u0007V\u0002\u0002\u0511\u0512\u0007C\u0002\u0002\u0512\u0513\u0007", + "T\u0002\u0002\u0513\u0514\u0007V\u0002\u0002\u0514\u00d8\u0003\u0002", + "\u0002\u0002\u0515\u0516\u0007V\u0002\u0002\u0516\u0517\u0007T\u0002", + "\u0002\u0517\u0518\u0007C\u0002\u0002\u0518\u0519\u0007P\u0002\u0002", + "\u0519\u051a\u0007U\u0002\u0002\u051a\u051b\u0007C\u0002\u0002\u051b", + "\u051c\u0007E\u0002\u0002\u051c\u051d\u0007V\u0002\u0002\u051d\u051e", + "\u0007K\u0002\u0002\u051e\u051f\u0007Q\u0002\u0002\u051f\u0520\u0007", + "P\u0002\u0002\u0520\u00da\u0003\u0002\u0002\u0002\u0521\u0522\u0007", + "E\u0002\u0002\u0522\u0523\u0007Q\u0002\u0002\u0523\u0524\u0007O\u0002", + "\u0002\u0524\u0525\u0007O\u0002\u0002\u0525\u0526\u0007K\u0002\u0002", + "\u0526\u0527\u0007V\u0002\u0002\u0527\u00dc\u0003\u0002\u0002\u0002", + "\u0528\u0529\u0007T\u0002\u0002\u0529\u052a\u0007Q\u0002\u0002\u052a", + "\u052b\u0007N\u0002\u0002\u052b\u052c\u0007N\u0002\u0002\u052c\u052d", + "\u0007D\u0002\u0002\u052d\u052e\u0007C\u0002\u0002\u052e\u052f\u0007", + "E\u0002\u0002\u052f\u0530\u0007M\u0002\u0002\u0530\u00de\u0003\u0002", + "\u0002\u0002\u0531\u0532\u0007O\u0002\u0002\u0532\u0533\u0007C\u0002", + "\u0002\u0533\u0534\u0007E\u0002\u0002\u0534\u0535\u0007T\u0002\u0002", + "\u0535\u0536\u0007Q\u0002\u0002\u0536\u00e0\u0003\u0002\u0002\u0002", + "\u0537\u0538\u0007K\u0002\u0002\u0538\u0539\u0007I\u0002\u0002\u0539", + "\u053a\u0007P\u0002\u0002\u053a\u053b\u0007Q\u0002\u0002\u053b\u053c", + "\u0007T\u0002\u0002\u053c\u053d\u0007G\u0002\u0002\u053d\u00e2\u0003", + "\u0002\u0002\u0002\u053e\u053f\u0007D\u0002\u0002\u053f\u0540\u0007", + "Q\u0002\u0002\u0540\u0541\u0007V\u0002\u0002\u0541\u0542\u0007J\u0002", + "\u0002\u0542\u00e4\u0003\u0002\u0002\u0002\u0543\u0544\u0007N\u0002", + "\u0002\u0544\u0545\u0007G\u0002\u0002\u0545\u0546\u0007C\u0002\u0002", + "\u0546\u0547\u0007F\u0002\u0002\u0547\u0548\u0007K\u0002\u0002\u0548", + "\u0549\u0007P\u0002\u0002\u0549\u054a\u0007I\u0002\u0002\u054a\u00e6", + "\u0003\u0002\u0002\u0002\u054b\u054c\u0007V\u0002\u0002\u054c\u054d", + "\u0007T\u0002\u0002\u054d\u054e\u0007C\u0002\u0002\u054e\u054f\u0007", + "K\u0002\u0002\u054f\u0550\u0007N\u0002\u0002\u0550\u0551\u0007K\u0002", + "\u0002\u0551\u0552\u0007P\u0002\u0002\u0552\u0553\u0007I\u0002\u0002", + "\u0553\u00e8\u0003\u0002\u0002\u0002\u0554\u0555\u0007K\u0002\u0002", + "\u0555\u0556\u0007H\u0002\u0002\u0556\u00ea\u0003\u0002\u0002\u0002", + "\u0557\u0558\u0007R\u0002\u0002\u0558\u0559\u0007Q\u0002\u0002\u0559", + "\u055a\u0007U\u0002\u0002\u055a\u055b\u0007K\u0002\u0002\u055b\u055c", + "\u0007V\u0002\u0002\u055c\u055d\u0007K\u0002\u0002\u055d\u055e\u0007", + "Q\u0002\u0002\u055e\u055f\u0007P\u0002\u0002\u055f\u00ec\u0003\u0002", + "\u0002\u0002\u0560\u0561\u0007G\u0002\u0002\u0561\u0562\u0007Z\u0002", + "\u0002\u0562\u0563\u0007V\u0002\u0002\u0563\u0564\u0007T\u0002\u0002", + "\u0564\u0565\u0007C\u0002\u0002\u0565\u0566\u0007E\u0002\u0002\u0566", + "\u0567\u0007V\u0002\u0002\u0567\u00ee\u0003\u0002\u0002\u0002\u0568", + "\u0569\u0007O\u0002\u0002\u0569\u056a\u0007K\u0002\u0002\u056a\u056b", + "\u0007P\u0002\u0002\u056b\u056c\u0007W\u0002\u0002\u056c\u056d\u0007", + "U\u0002\u0002\u056d\u00f0\u0003\u0002\u0002\u0002\u056e\u056f\u0007", + "F\u0002\u0002\u056f\u0570\u0007K\u0002\u0002\u0570\u0571\u0007X\u0002", + "\u0002\u0571\u00f2\u0003\u0002\u0002\u0002\u0572\u0573\u0007R\u0002", + "\u0002\u0573\u0574\u0007G\u0002\u0002\u0574\u0575\u0007T\u0002\u0002", + "\u0575\u0576\u0007E\u0002\u0002\u0576\u0577\u0007G\u0002\u0002\u0577", + "\u0578\u0007P\u0002\u0002\u0578\u0579\u0007V\u0002\u0002\u0579\u057a", + "\u0007N\u0002\u0002\u057a\u057b\u0007K\u0002\u0002\u057b\u057c\u0007", + "V\u0002\u0002\u057c\u00f4\u0003\u0002\u0002\u0002\u057d\u057e\u0007", + "D\u0002\u0002\u057e\u057f\u0007W\u0002\u0002\u057f\u0580\u0007E\u0002", + "\u0002\u0580\u0581\u0007M\u0002\u0002\u0581\u0582\u0007G\u0002\u0002", + "\u0582\u0583\u0007V\u0002\u0002\u0583\u00f6\u0003\u0002\u0002\u0002", + "\u0584\u0585\u0007Q\u0002\u0002\u0585\u0586\u0007W\u0002\u0002\u0586", + "\u0587\u0007V\u0002\u0002\u0587\u00f8\u0003\u0002\u0002\u0002\u0588", + "\u0589\u0007Q\u0002\u0002\u0589\u058a\u0007H\u0002\u0002\u058a\u00fa", + "\u0003\u0002\u0002\u0002\u058b\u058c\u0007U\u0002\u0002\u058c\u058d", + "\u0007Q\u0002\u0002\u058d\u058e\u0007T\u0002\u0002\u058e\u058f\u0007", + "V\u0002\u0002\u058f\u00fc\u0003\u0002\u0002\u0002\u0590\u0591\u0007", + "E\u0002\u0002\u0591\u0592\u0007N\u0002\u0002\u0592\u0593\u0007W\u0002", + "\u0002\u0593\u0594\u0007U\u0002\u0002\u0594\u0595\u0007V\u0002\u0002", + "\u0595\u0596\u0007G\u0002\u0002\u0596\u0597\u0007T\u0002\u0002\u0597", + "\u00fe\u0003\u0002\u0002\u0002\u0598\u0599\u0007F\u0002\u0002\u0599", + "\u059a\u0007K\u0002\u0002\u059a\u059b\u0007U\u0002\u0002\u059b\u059c", + "\u0007V\u0002\u0002\u059c\u059d\u0007T\u0002\u0002\u059d\u059e\u0007", + "K\u0002\u0002\u059e\u059f\u0007D\u0002\u0002\u059f\u05a0\u0007W\u0002", + "\u0002\u05a0\u05a1\u0007V\u0002\u0002\u05a1\u05a2\u0007G\u0002\u0002", + "\u05a2\u0100\u0003\u0002\u0002\u0002\u05a3\u05a4\u0007Q\u0002\u0002", + "\u05a4\u05a5\u0007X\u0002\u0002\u05a5\u05a6\u0007G\u0002\u0002\u05a6", + "\u05a7\u0007T\u0002\u0002\u05a7\u05a8\u0007Y\u0002\u0002\u05a8\u05a9", + "\u0007T\u0002\u0002\u05a9\u05aa\u0007K\u0002\u0002\u05aa\u05ab\u0007", + "V\u0002\u0002\u05ab\u05ac\u0007G\u0002\u0002\u05ac\u0102\u0003\u0002", + "\u0002\u0002\u05ad\u05ae\u0007V\u0002\u0002\u05ae\u05af\u0007T\u0002", + "\u0002\u05af\u05b0\u0007C\u0002\u0002\u05b0\u05b1\u0007P\u0002\u0002", + "\u05b1\u05b2\u0007U\u0002\u0002\u05b2\u05b3\u0007H\u0002\u0002\u05b3", + "\u05b4\u0007Q\u0002\u0002\u05b4\u05b5\u0007T\u0002\u0002\u05b5\u05b6", + "\u0007O\u0002\u0002\u05b6\u0104\u0003\u0002\u0002\u0002\u05b7\u05b8", + "\u0007T\u0002\u0002\u05b8\u05b9\u0007G\u0002\u0002\u05b9\u05ba\u0007", + "F\u0002\u0002\u05ba\u05bb\u0007W\u0002\u0002\u05bb\u05bc\u0007E\u0002", + "\u0002\u05bc\u05bd\u0007G\u0002\u0002\u05bd\u0106\u0003\u0002\u0002", + "\u0002\u05be\u05bf\u0007W\u0002\u0002\u05bf\u05c0\u0007U\u0002\u0002", + "\u05c0\u05c1\u0007K\u0002\u0002\u05c1\u05c2\u0007P\u0002\u0002\u05c2", + "\u05c3\u0007I\u0002\u0002\u05c3\u0108\u0003\u0002\u0002\u0002\u05c4", + "\u05c5\u0007U\u0002\u0002\u05c5\u05c6\u0007G\u0002\u0002\u05c6\u05c7", + "\u0007T\u0002\u0002\u05c7\u05c8\u0007F\u0002\u0002\u05c8\u05c9\u0007", + "G\u0002\u0002\u05c9\u010a\u0003\u0002\u0002\u0002\u05ca\u05cb\u0007", + "U\u0002\u0002\u05cb\u05cc\u0007G\u0002\u0002\u05cc\u05cd\u0007T\u0002", + "\u0002\u05cd\u05ce\u0007F\u0002\u0002\u05ce\u05cf\u0007G\u0002\u0002", + "\u05cf\u05d0\u0007R\u0002\u0002\u05d0\u05d1\u0007T\u0002\u0002\u05d1", + "\u05d2\u0007Q\u0002\u0002\u05d2\u05d3\u0007R\u0002\u0002\u05d3\u05d4", + "\u0007G\u0002\u0002\u05d4\u05d5\u0007T\u0002\u0002\u05d5\u05d6\u0007", + "V\u0002\u0002\u05d6\u05d7\u0007K\u0002\u0002\u05d7\u05d8\u0007G\u0002", + "\u0002\u05d8\u05d9\u0007U\u0002\u0002\u05d9\u010c\u0003\u0002\u0002", + "\u0002\u05da\u05db\u0007T\u0002\u0002\u05db\u05dc\u0007G\u0002\u0002", + "\u05dc\u05dd\u0007E\u0002\u0002\u05dd\u05de\u0007Q\u0002\u0002\u05de", + "\u05df\u0007T\u0002\u0002\u05df\u05e0\u0007F\u0002\u0002\u05e0\u05e1", + "\u0007T\u0002\u0002\u05e1\u05e2\u0007G\u0002\u0002\u05e2\u05e3\u0007", + "C\u0002\u0002\u05e3\u05e4\u0007F\u0002\u0002\u05e4\u05e5\u0007G\u0002", + "\u0002\u05e5\u05e6\u0007T\u0002\u0002\u05e6\u010e\u0003\u0002\u0002", + "\u0002\u05e7\u05e8\u0007T\u0002\u0002\u05e8\u05e9\u0007G\u0002\u0002", + "\u05e9\u05ea\u0007E\u0002\u0002\u05ea\u05eb\u0007Q\u0002\u0002\u05eb", + "\u05ec\u0007T\u0002\u0002\u05ec\u05ed\u0007F\u0002\u0002\u05ed\u05ee", + "\u0007Y\u0002\u0002\u05ee\u05ef\u0007T\u0002\u0002\u05ef\u05f0\u0007", + "K\u0002\u0002\u05f0\u05f1\u0007V\u0002\u0002\u05f1\u05f2\u0007G\u0002", + "\u0002\u05f2\u05f3\u0007T\u0002\u0002\u05f3\u0110\u0003\u0002\u0002", + "\u0002\u05f4\u05f5\u0007F\u0002\u0002\u05f5\u05f6\u0007G\u0002\u0002", + "\u05f6\u05f7\u0007N\u0002\u0002\u05f7\u05f8\u0007K\u0002\u0002\u05f8", + "\u05f9\u0007O\u0002\u0002\u05f9\u05fa\u0007K\u0002\u0002\u05fa\u05fb", + "\u0007V\u0002\u0002\u05fb\u05fc\u0007G\u0002\u0002\u05fc\u05fd\u0007", + "F\u0002\u0002\u05fd\u0112\u0003\u0002\u0002\u0002\u05fe\u05ff\u0007", + "H\u0002\u0002\u05ff\u0600\u0007K\u0002\u0002\u0600\u0601\u0007G\u0002", + "\u0002\u0601\u0602\u0007N\u0002\u0002\u0602\u0603\u0007F\u0002\u0002", + "\u0603\u0604\u0007U\u0002\u0002\u0604\u0114\u0003\u0002\u0002\u0002", + "\u0605\u0606\u0007V\u0002\u0002\u0606\u0607\u0007G\u0002\u0002\u0607", + "\u0608\u0007T\u0002\u0002\u0608\u0609\u0007O\u0002\u0002\u0609\u060a", + "\u0007K\u0002\u0002\u060a\u060b\u0007P\u0002\u0002\u060b\u060c\u0007", + "C\u0002\u0002\u060c\u060d\u0007V\u0002\u0002\u060d\u060e\u0007G\u0002", + "\u0002\u060e\u060f\u0007F\u0002\u0002\u060f\u0116\u0003\u0002\u0002", + "\u0002\u0610\u0611\u0007E\u0002\u0002\u0611\u0612\u0007Q\u0002\u0002", + "\u0612\u0613\u0007N\u0002\u0002\u0613\u0614\u0007N\u0002\u0002\u0614", + "\u0615\u0007G\u0002\u0002\u0615\u0616\u0007E\u0002\u0002\u0616\u0617", + "\u0007V\u0002\u0002\u0617\u0618\u0007K\u0002\u0002\u0618\u0619\u0007", + "Q\u0002\u0002\u0619\u061a\u0007P\u0002\u0002\u061a\u0118\u0003\u0002", + "\u0002\u0002\u061b\u061c\u0007K\u0002\u0002\u061c\u061d\u0007V\u0002", + "\u0002\u061d\u061e\u0007G\u0002\u0002\u061e\u061f\u0007O\u0002\u0002", + "\u061f\u0620\u0007U\u0002\u0002\u0620\u011a\u0003\u0002\u0002\u0002", + "\u0621\u0622\u0007M\u0002\u0002\u0622\u0623\u0007G\u0002\u0002\u0623", + "\u0624\u0007[\u0002\u0002\u0624\u0625\u0007U\u0002\u0002\u0625\u011c", + "\u0003\u0002\u0002\u0002\u0626\u0627\u0007G\u0002\u0002\u0627\u0628", + "\u0007U\u0002\u0002\u0628\u0629\u0007E\u0002\u0002\u0629\u062a\u0007", + "C\u0002\u0002\u062a\u062b\u0007R\u0002\u0002\u062b\u062c\u0007G\u0002", + "\u0002\u062c\u062d\u0007F\u0002\u0002\u062d\u011e\u0003\u0002\u0002", + "\u0002\u062e\u062f\u0007N\u0002\u0002\u062f\u0630\u0007K\u0002\u0002", + "\u0630\u0631\u0007P\u0002\u0002\u0631\u0632\u0007G\u0002\u0002\u0632", + "\u0633\u0007U\u0002\u0002\u0633\u0120\u0003\u0002\u0002\u0002\u0634", + "\u0635\u0007U\u0002\u0002\u0635\u0636\u0007G\u0002\u0002\u0636\u0637", + "\u0007R\u0002\u0002\u0637\u0638\u0007C\u0002\u0002\u0638\u0639\u0007", + "T\u0002\u0002\u0639\u063a\u0007C\u0002\u0002\u063a\u063b\u0007V\u0002", + "\u0002\u063b\u063c\u0007G\u0002\u0002\u063c\u063d\u0007F\u0002\u0002", + "\u063d\u0122\u0003\u0002\u0002\u0002\u063e\u063f\u0007H\u0002\u0002", + "\u063f\u0640\u0007W\u0002\u0002\u0640\u0641\u0007P\u0002\u0002\u0641", + "\u0642\u0007E\u0002\u0002\u0642\u0643\u0007V\u0002\u0002\u0643\u0644", + "\u0007K\u0002\u0002\u0644\u0645\u0007Q\u0002\u0002\u0645\u0646\u0007", + "P\u0002\u0002\u0646\u0124\u0003\u0002\u0002\u0002\u0647\u0648\u0007", + "G\u0002\u0002\u0648\u0649\u0007Z\u0002\u0002\u0649\u064a\u0007V\u0002", + "\u0002\u064a\u064b\u0007G\u0002\u0002\u064b\u064c\u0007P\u0002\u0002", + "\u064c\u064d\u0007F\u0002\u0002\u064d\u064e\u0007G\u0002\u0002\u064e", + "\u064f\u0007F\u0002\u0002\u064f\u0126\u0003\u0002\u0002\u0002\u0650", + "\u0651\u0007T\u0002\u0002\u0651\u0652\u0007G\u0002\u0002\u0652\u0653", + "\u0007H\u0002\u0002\u0653\u0654\u0007T\u0002\u0002\u0654\u0655\u0007", + "G\u0002\u0002\u0655\u0656\u0007U\u0002\u0002\u0656\u0657\u0007J\u0002", + "\u0002\u0657\u0128\u0003\u0002\u0002\u0002\u0658\u0659\u0007E\u0002", + "\u0002\u0659\u065a\u0007N\u0002\u0002\u065a\u065b\u0007G\u0002\u0002", + "\u065b\u065c\u0007C\u0002\u0002\u065c\u065d\u0007T\u0002\u0002\u065d", + "\u012a\u0003\u0002\u0002\u0002\u065e\u065f\u0007E\u0002\u0002\u065f", + "\u0660\u0007C\u0002\u0002\u0660\u0661\u0007E\u0002\u0002\u0661\u0662", + "\u0007J\u0002\u0002\u0662\u0663\u0007G\u0002\u0002\u0663\u012c\u0003", + "\u0002\u0002\u0002\u0664\u0665\u0007W\u0002\u0002\u0665\u0666\u0007", + "P\u0002\u0002\u0666\u0667\u0007E\u0002\u0002\u0667\u0668\u0007C\u0002", + "\u0002\u0668\u0669\u0007E\u0002\u0002\u0669\u066a\u0007J\u0002\u0002", + "\u066a\u066b\u0007G\u0002\u0002\u066b\u012e\u0003\u0002\u0002\u0002", + "\u066c\u066d\u0007N\u0002\u0002\u066d\u066e\u0007C\u0002\u0002\u066e", + "\u066f\u0007\\\u0002\u0002\u066f\u0670\u0007[\u0002\u0002\u0670\u0130", + "\u0003\u0002\u0002\u0002\u0671\u0672\u0007H\u0002\u0002\u0672\u0673", + "\u0007Q\u0002\u0002\u0673\u0674\u0007T\u0002\u0002\u0674\u0675\u0007", + "O\u0002\u0002\u0675\u0676\u0007C\u0002\u0002\u0676\u0677\u0007V\u0002", + "\u0002\u0677\u0678\u0007V\u0002\u0002\u0678\u0679\u0007G\u0002\u0002", + "\u0679\u067a\u0007F\u0002\u0002\u067a\u0132\u0003\u0002\u0002\u0002", + "\u067b\u067c\u0007I\u0002\u0002\u067c\u067d\u0007N\u0002\u0002\u067d", + "\u067e\u0007Q\u0002\u0002\u067e\u067f\u0007D\u0002\u0002\u067f\u0680", + "\u0007C\u0002\u0002\u0680\u0681\u0007N\u0002\u0002\u0681\u0134\u0003", + "\u0002\u0002\u0002\u0682\u0683\u0007V\u0002\u0002\u0683\u0684\u0007", + "G\u0002\u0002\u0684\u0685\u0007O\u0002\u0002\u0685\u0686\u0007R\u0002", + "\u0002\u0686\u0687\u0007Q\u0002\u0002\u0687\u0688\u0007T\u0002\u0002", + "\u0688\u0689\u0007C\u0002\u0002\u0689\u068a\u0007T\u0002\u0002\u068a", + "\u068b\u0007[\u0002\u0002\u068b\u0136\u0003\u0002\u0002\u0002\u068c", + "\u068d\u0007Q\u0002\u0002\u068d\u068e\u0007R\u0002\u0002\u068e\u068f", + "\u0007V\u0002\u0002\u068f\u0690\u0007K\u0002\u0002\u0690\u0691\u0007", + "Q\u0002\u0002\u0691\u0692\u0007P\u0002\u0002\u0692\u0693\u0007U\u0002", + "\u0002\u0693\u0138\u0003\u0002\u0002\u0002\u0694\u0695\u0007W\u0002", + "\u0002\u0695\u0696\u0007P\u0002\u0002\u0696\u0697\u0007U\u0002\u0002", + "\u0697\u0698\u0007G\u0002\u0002\u0698\u0699\u0007V\u0002\u0002\u0699", + "\u013a\u0003\u0002\u0002\u0002\u069a\u069b\u0007V\u0002\u0002\u069b", + "\u069c\u0007D\u0002\u0002\u069c\u069d\u0007N\u0002\u0002\u069d\u069e", + "\u0007R\u0002\u0002\u069e\u069f\u0007T\u0002\u0002\u069f\u06a0\u0007", + "Q\u0002\u0002\u06a0\u06a1\u0007R\u0002\u0002\u06a1\u06a2\u0007G\u0002", + "\u0002\u06a2\u06a3\u0007T\u0002\u0002\u06a3\u06a4\u0007V\u0002\u0002", + "\u06a4\u06a5\u0007K\u0002\u0002\u06a5\u06a6\u0007G\u0002\u0002\u06a6", + "\u06a7\u0007U\u0002\u0002\u06a7\u013c\u0003\u0002\u0002\u0002\u06a8", + "\u06a9\u0007F\u0002\u0002\u06a9\u06aa\u0007D\u0002\u0002\u06aa\u06ab", + "\u0007R\u0002\u0002\u06ab\u06ac\u0007T\u0002\u0002\u06ac\u06ad\u0007", + "Q\u0002\u0002\u06ad\u06ae\u0007R\u0002\u0002\u06ae\u06af\u0007G\u0002", + "\u0002\u06af\u06b0\u0007T\u0002\u0002\u06b0\u06b1\u0007V\u0002\u0002", + "\u06b1\u06b2\u0007K\u0002\u0002\u06b2\u06b3\u0007G\u0002\u0002\u06b3", + "\u06b4\u0007U\u0002\u0002\u06b4\u013e\u0003\u0002\u0002\u0002\u06b5", + "\u06b6\u0007D\u0002\u0002\u06b6\u06b7\u0007W\u0002\u0002\u06b7\u06b8", + "\u0007E\u0002\u0002\u06b8\u06b9\u0007M\u0002\u0002\u06b9\u06ba\u0007", + "G\u0002\u0002\u06ba\u06bb\u0007V\u0002\u0002\u06bb\u06bc\u0007U\u0002", + "\u0002\u06bc\u0140\u0003\u0002\u0002\u0002\u06bd\u06be\u0007U\u0002", + "\u0002\u06be\u06bf\u0007M\u0002\u0002\u06bf\u06c0\u0007G\u0002\u0002", + "\u06c0\u06c1\u0007Y\u0002\u0002\u06c1\u06c2\u0007G\u0002\u0002\u06c2", + "\u06c3\u0007F\u0002\u0002\u06c3\u0142\u0003\u0002\u0002\u0002\u06c4", + "\u06c5\u0007U\u0002\u0002\u06c5\u06c6\u0007V\u0002\u0002\u06c6\u06c7", + "\u0007Q\u0002\u0002\u06c7\u06c8\u0007T\u0002\u0002\u06c8\u06c9\u0007", + "G\u0002\u0002\u06c9\u06ca\u0007F\u0002\u0002\u06ca\u0144\u0003\u0002", + "\u0002\u0002\u06cb\u06cc\u0007F\u0002\u0002\u06cc\u06cd\u0007K\u0002", + "\u0002\u06cd\u06ce\u0007T\u0002\u0002\u06ce\u06cf\u0007G\u0002\u0002", + "\u06cf\u06d0\u0007E\u0002\u0002\u06d0\u06d1\u0007V\u0002\u0002\u06d1", + "\u06d2\u0007Q\u0002\u0002\u06d2\u06d3\u0007T\u0002\u0002\u06d3\u06d4", + "\u0007K\u0002\u0002\u06d4\u06d5\u0007G\u0002\u0002\u06d5\u06d6\u0007", + "U\u0002\u0002\u06d6\u0146\u0003\u0002\u0002\u0002\u06d7\u06d8\u0007", + "N\u0002\u0002\u06d8\u06d9\u0007Q\u0002\u0002\u06d9\u06da\u0007E\u0002", + "\u0002\u06da\u06db\u0007C\u0002\u0002\u06db\u06dc\u0007V\u0002\u0002", + "\u06dc\u06dd\u0007K\u0002\u0002\u06dd\u06de\u0007Q\u0002\u0002\u06de", + "\u06df\u0007P\u0002\u0002\u06df\u0148\u0003\u0002\u0002\u0002\u06e0", + "\u06e1\u0007G\u0002\u0002\u06e1\u06e2\u0007Z\u0002\u0002\u06e2\u06e3", + "\u0007E\u0002\u0002\u06e3\u06e4\u0007J\u0002\u0002\u06e4\u06e5\u0007", + "C\u0002\u0002\u06e5\u06e6\u0007P\u0002\u0002\u06e6\u06e7\u0007I\u0002", + "\u0002\u06e7\u06e8\u0007G\u0002\u0002\u06e8\u014a\u0003\u0002\u0002", + "\u0002\u06e9\u06ea\u0007C\u0002\u0002\u06ea\u06eb\u0007T\u0002\u0002", + "\u06eb\u06ec\u0007E\u0002\u0002\u06ec\u06ed\u0007J\u0002\u0002\u06ed", + "\u06ee\u0007K\u0002\u0002\u06ee\u06ef\u0007X\u0002\u0002\u06ef\u06f0", + "\u0007G\u0002\u0002\u06f0\u014c\u0003\u0002\u0002\u0002\u06f1\u06f2", + "\u0007W\u0002\u0002\u06f2\u06f3\u0007P\u0002\u0002\u06f3\u06f4\u0007", + "C\u0002\u0002\u06f4\u06f5\u0007T\u0002\u0002\u06f5\u06f6\u0007E\u0002", + "\u0002\u06f6\u06f7\u0007J\u0002\u0002\u06f7\u06f8\u0007K\u0002\u0002", + "\u06f8\u06f9\u0007X\u0002\u0002\u06f9\u06fa\u0007G\u0002\u0002\u06fa", + "\u014e\u0003\u0002\u0002\u0002\u06fb\u06fc\u0007H\u0002\u0002\u06fc", + "\u06fd\u0007K\u0002\u0002\u06fd\u06fe\u0007N\u0002\u0002\u06fe\u06ff", + "\u0007G\u0002\u0002\u06ff\u0700\u0007H\u0002\u0002\u0700\u0701\u0007", + "Q\u0002\u0002\u0701\u0702\u0007T\u0002\u0002\u0702\u0703\u0007O\u0002", + "\u0002\u0703\u0704\u0007C\u0002\u0002\u0704\u0705\u0007V\u0002\u0002", + "\u0705\u0150\u0003\u0002\u0002\u0002\u0706\u0707\u0007V\u0002\u0002", + "\u0707\u0708\u0007Q\u0002\u0002\u0708\u0709\u0007W\u0002\u0002\u0709", + "\u070a\u0007E\u0002\u0002\u070a\u070b\u0007J\u0002\u0002\u070b\u0152", + "\u0003\u0002\u0002\u0002\u070c\u070d\u0007E\u0002\u0002\u070d\u070e", + "\u0007Q\u0002\u0002\u070e\u070f\u0007O\u0002\u0002\u070f\u0710\u0007", + "R\u0002\u0002\u0710\u0711\u0007C\u0002\u0002\u0711\u0712\u0007E\u0002", + "\u0002\u0712\u0713\u0007V\u0002\u0002\u0713\u0154\u0003\u0002\u0002", + "\u0002\u0714\u0715\u0007E\u0002\u0002\u0715\u0716\u0007Q\u0002\u0002", + "\u0716\u0717\u0007P\u0002\u0002\u0717\u0718\u0007E\u0002\u0002\u0718", + "\u0719\u0007C\u0002\u0002\u0719\u071a\u0007V\u0002\u0002\u071a\u071b", + "\u0007G\u0002\u0002\u071b\u071c\u0007P\u0002\u0002\u071c\u071d\u0007", + "C\u0002\u0002\u071d\u071e\u0007V\u0002\u0002\u071e\u071f\u0007G\u0002", + "\u0002\u071f\u0156\u0003\u0002\u0002\u0002\u0720\u0721\u0007E\u0002", + "\u0002\u0721\u0722\u0007J\u0002\u0002\u0722\u0723\u0007C\u0002\u0002", + "\u0723\u0724\u0007P\u0002\u0002\u0724\u0725\u0007I\u0002\u0002\u0725", + "\u0726\u0007G\u0002\u0002\u0726\u0158\u0003\u0002\u0002\u0002\u0727", + "\u0728\u0007E\u0002\u0002\u0728\u0729\u0007C\u0002\u0002\u0729\u072a", + "\u0007U\u0002\u0002\u072a\u072b\u0007E\u0002\u0002\u072b\u072c\u0007", + "C\u0002\u0002\u072c\u072d\u0007F\u0002\u0002\u072d\u072e\u0007G\u0002", + "\u0002\u072e\u015a\u0003\u0002\u0002\u0002\u072f\u0730\u0007E\u0002", + "\u0002\u0730\u0731\u0007Q\u0002\u0002\u0731\u0732\u0007P\u0002\u0002", + "\u0732\u0733\u0007U\u0002\u0002\u0733\u0734\u0007V\u0002\u0002\u0734", + "\u0735\u0007T\u0002\u0002\u0735\u0736\u0007C\u0002\u0002\u0736\u0737", + "\u0007K\u0002\u0002\u0737\u0738\u0007P\u0002\u0002\u0738\u0739\u0007", + "V\u0002\u0002\u0739\u015c\u0003\u0002\u0002\u0002\u073a\u073b\u0007", + "T\u0002\u0002\u073b\u073c\u0007G\u0002\u0002\u073c\u073d\u0007U\u0002", + "\u0002\u073d\u073e\u0007V\u0002\u0002\u073e\u073f\u0007T\u0002\u0002", + "\u073f\u0740\u0007K\u0002\u0002\u0740\u0741\u0007E\u0002\u0002\u0741", + "\u0742\u0007V\u0002\u0002\u0742\u015e\u0003\u0002\u0002\u0002\u0743", + "\u0744\u0007E\u0002\u0002\u0744\u0745\u0007N\u0002\u0002\u0745\u0746", + "\u0007W\u0002\u0002\u0746\u0747\u0007U\u0002\u0002\u0747\u0748\u0007", + "V\u0002\u0002\u0748\u0749\u0007G\u0002\u0002\u0749\u074a\u0007T\u0002", + "\u0002\u074a\u074b\u0007G\u0002\u0002\u074b\u074c\u0007F\u0002\u0002", + "\u074c\u0160\u0003\u0002\u0002\u0002\u074d\u074e\u0007U\u0002\u0002", + "\u074e\u074f\u0007Q\u0002\u0002\u074f\u0750\u0007T\u0002\u0002\u0750", + "\u0751\u0007V\u0002\u0002\u0751\u0752\u0007G\u0002\u0002\u0752\u0753", + "\u0007F\u0002\u0002\u0753\u0162\u0003\u0002\u0002\u0002\u0754\u0755", + "\u0007R\u0002\u0002\u0755\u0756\u0007W\u0002\u0002\u0756\u0757\u0007", + "T\u0002\u0002\u0757\u0758\u0007I\u0002\u0002\u0758\u0759\u0007G\u0002", + "\u0002\u0759\u0164\u0003\u0002\u0002\u0002\u075a\u075b\u0007K\u0002", + "\u0002\u075b\u075c\u0007P\u0002\u0002\u075c\u075d\u0007R\u0002\u0002", + "\u075d\u075e\u0007W\u0002\u0002\u075e\u075f\u0007V\u0002\u0002\u075f", + "\u0760\u0007H\u0002\u0002\u0760\u0761\u0007Q\u0002\u0002\u0761\u0762", + "\u0007T\u0002\u0002\u0762\u0763\u0007O\u0002\u0002\u0763\u0764\u0007", + "C\u0002\u0002\u0764\u0765\u0007V\u0002\u0002\u0765\u0166\u0003\u0002", + "\u0002\u0002\u0766\u0767\u0007Q\u0002\u0002\u0767\u0768\u0007W\u0002", + "\u0002\u0768\u0769\u0007V\u0002\u0002\u0769\u076a\u0007R\u0002\u0002", + "\u076a\u076b\u0007W\u0002\u0002\u076b\u076c\u0007V\u0002\u0002\u076c", + "\u076d\u0007H\u0002\u0002\u076d\u076e\u0007Q\u0002\u0002\u076e\u076f", + "\u0007T\u0002\u0002\u076f\u0770\u0007O\u0002\u0002\u0770\u0771\u0007", + "C\u0002\u0002\u0771\u0772\u0007V\u0002\u0002\u0772\u0168\u0003\u0002", + "\u0002\u0002\u0773\u0774\u0007F\u0002\u0002\u0774\u0775\u0007C\u0002", + "\u0002\u0775\u0776\u0007V\u0002\u0002\u0776\u0777\u0007C\u0002\u0002", + "\u0777\u0778\u0007D\u0002\u0002\u0778\u0779\u0007C\u0002\u0002\u0779", + "\u077a\u0007U\u0002\u0002\u077a\u077b\u0007G\u0002\u0002\u077b\u016a", + "\u0003\u0002\u0002\u0002\u077c\u077d\u0007F\u0002\u0002\u077d\u077e", + "\u0007C\u0002\u0002\u077e\u077f\u0007V\u0002\u0002\u077f\u0780\u0007", + "C\u0002\u0002\u0780\u0781\u0007D\u0002\u0002\u0781\u0782\u0007C\u0002", + "\u0002\u0782\u0783\u0007U\u0002\u0002\u0783\u0784\u0007G\u0002\u0002", + "\u0784\u0785\u0007U\u0002\u0002\u0785\u016c\u0003\u0002\u0002\u0002", + "\u0786\u0787\u0007F\u0002\u0002\u0787\u0788\u0007H\u0002\u0002\u0788", + "\u0789\u0007U\u0002\u0002\u0789\u016e\u0003\u0002\u0002\u0002\u078a", + "\u078b\u0007V\u0002\u0002\u078b\u078c\u0007T\u0002\u0002\u078c\u078d", + "\u0007W\u0002\u0002\u078d\u078e\u0007P\u0002\u0002\u078e\u078f\u0007", + "E\u0002\u0002\u078f\u0790\u0007C\u0002\u0002\u0790\u0791\u0007V\u0002", + "\u0002\u0791\u0792\u0007G\u0002\u0002\u0792\u0170\u0003\u0002\u0002", + "\u0002\u0793\u0794\u0007C\u0002\u0002\u0794\u0795\u0007P\u0002\u0002", + "\u0795\u0796\u0007C\u0002\u0002\u0796\u0797\u0007N\u0002\u0002\u0797", + "\u0798\u0007[\u0002\u0002\u0798\u0799\u0007\\\u0002\u0002\u0799\u079a", + "\u0007G\u0002\u0002\u079a\u0172\u0003\u0002\u0002\u0002\u079b\u079c", + "\u0007E\u0002\u0002\u079c\u079d\u0007Q\u0002\u0002\u079d\u079e\u0007", + "O\u0002\u0002\u079e\u079f\u0007R\u0002\u0002\u079f\u07a0\u0007W\u0002", + "\u0002\u07a0\u07a1\u0007V\u0002\u0002\u07a1\u07a2\u0007G\u0002\u0002", + "\u07a2\u0174\u0003\u0002\u0002\u0002\u07a3\u07a4\u0007N\u0002\u0002", + "\u07a4\u07a5\u0007K\u0002\u0002\u07a5\u07a6\u0007U\u0002\u0002\u07a6", + "\u07a7\u0007V\u0002\u0002\u07a7\u0176\u0003\u0002\u0002\u0002\u07a8", + "\u07a9\u0007U\u0002\u0002\u07a9\u07aa\u0007V\u0002\u0002\u07aa\u07ab", + "\u0007C\u0002\u0002\u07ab\u07ac\u0007V\u0002\u0002\u07ac\u07ad\u0007", + "K\u0002\u0002\u07ad\u07ae\u0007U\u0002\u0002\u07ae\u07af\u0007V\u0002", + "\u0002\u07af\u07b0\u0007K\u0002\u0002\u07b0\u07b1\u0007E\u0002\u0002", + "\u07b1\u07b2\u0007U\u0002\u0002\u07b2\u0178\u0003\u0002\u0002\u0002", + "\u07b3\u07b4\u0007R\u0002\u0002\u07b4\u07b5\u0007C\u0002\u0002\u07b5", + "\u07b6\u0007T\u0002\u0002\u07b6\u07b7\u0007V\u0002\u0002\u07b7\u07b8", + "\u0007K\u0002\u0002\u07b8\u07b9\u0007V\u0002\u0002\u07b9\u07ba\u0007", + "K\u0002\u0002\u07ba\u07bb\u0007Q\u0002\u0002\u07bb\u07bc\u0007P\u0002", + "\u0002\u07bc\u07bd\u0007G\u0002\u0002\u07bd\u07be\u0007F\u0002\u0002", + "\u07be\u017a\u0003\u0002\u0002\u0002\u07bf\u07c0\u0007G\u0002\u0002", + "\u07c0\u07c1\u0007Z\u0002\u0002\u07c1\u07c2\u0007V\u0002\u0002\u07c2", + "\u07c3\u0007G\u0002\u0002\u07c3\u07c4\u0007T\u0002\u0002\u07c4\u07c5", + "\u0007P\u0002\u0002\u07c5\u07c6\u0007C\u0002\u0002\u07c6\u07c7\u0007", + "N\u0002\u0002\u07c7\u017c\u0003\u0002\u0002\u0002\u07c8\u07c9\u0007", + "F\u0002\u0002\u07c9\u07ca\u0007G\u0002\u0002\u07ca\u07cb\u0007H\u0002", + "\u0002\u07cb\u07cc\u0007K\u0002\u0002\u07cc\u07cd\u0007P\u0002\u0002", + "\u07cd\u07ce\u0007G\u0002\u0002\u07ce\u07cf\u0007F\u0002\u0002\u07cf", + "\u017e\u0003\u0002\u0002\u0002\u07d0\u07d1\u0007T\u0002\u0002\u07d1", + "\u07d2\u0007G\u0002\u0002\u07d2\u07d3\u0007X\u0002\u0002\u07d3\u07d4", + "\u0007Q\u0002\u0002\u07d4\u07d5\u0007M\u0002\u0002\u07d5\u07d6\u0007", + "G\u0002\u0002\u07d6\u0180\u0003\u0002\u0002\u0002\u07d7\u07d8\u0007", + "I\u0002\u0002\u07d8\u07d9\u0007T\u0002\u0002\u07d9\u07da\u0007C\u0002", + "\u0002\u07da\u07db\u0007P\u0002\u0002\u07db\u07dc\u0007V\u0002\u0002", + "\u07dc\u0182\u0003\u0002\u0002\u0002\u07dd\u07de\u0007N\u0002\u0002", + "\u07de\u07df\u0007Q\u0002\u0002\u07df\u07e0\u0007E\u0002\u0002\u07e0", + "\u07e1\u0007M\u0002\u0002\u07e1\u0184\u0003\u0002\u0002\u0002\u07e2", + "\u07e3\u0007W\u0002\u0002\u07e3\u07e4\u0007P\u0002\u0002\u07e4\u07e5", + "\u0007N\u0002\u0002\u07e5\u07e6\u0007Q\u0002\u0002\u07e6\u07e7\u0007", + "E\u0002\u0002\u07e7\u07e8\u0007M\u0002\u0002\u07e8\u0186\u0003\u0002", + "\u0002\u0002\u07e9\u07ea\u0007O\u0002\u0002\u07ea\u07eb\u0007U\u0002", + "\u0002\u07eb\u07ec\u0007E\u0002\u0002\u07ec\u07ed\u0007M\u0002\u0002", + "\u07ed\u0188\u0003\u0002\u0002\u0002\u07ee\u07ef\u0007T\u0002\u0002", + "\u07ef\u07f0\u0007G\u0002\u0002\u07f0\u07f1\u0007R\u0002\u0002\u07f1", + "\u07f2\u0007C\u0002\u0002\u07f2\u07f3\u0007K\u0002\u0002\u07f3\u07f4", + "\u0007T\u0002\u0002\u07f4\u018a\u0003\u0002\u0002\u0002\u07f5\u07f6", + "\u0007T\u0002\u0002\u07f6\u07f7\u0007G\u0002\u0002\u07f7\u07f8\u0007", + "E\u0002\u0002\u07f8\u07f9\u0007Q\u0002\u0002\u07f9\u07fa\u0007X\u0002", + "\u0002\u07fa\u07fb\u0007G\u0002\u0002\u07fb\u07fc\u0007T\u0002\u0002", + "\u07fc\u018c\u0003\u0002\u0002\u0002\u07fd\u07fe\u0007G\u0002\u0002", + "\u07fe\u07ff\u0007Z\u0002\u0002\u07ff\u0800\u0007R\u0002\u0002\u0800", + "\u0801\u0007Q\u0002\u0002\u0801\u0802\u0007T\u0002\u0002\u0802\u0803", + "\u0007V\u0002\u0002\u0803\u018e\u0003\u0002\u0002\u0002\u0804\u0805", + "\u0007K\u0002\u0002\u0805\u0806\u0007O\u0002\u0002\u0806\u0807\u0007", + "R\u0002\u0002\u0807\u0808\u0007Q\u0002\u0002\u0808\u0809\u0007T\u0002", + "\u0002\u0809\u080a\u0007V\u0002\u0002\u080a\u0190\u0003\u0002\u0002", + "\u0002\u080b\u080c\u0007N\u0002\u0002\u080c\u080d\u0007Q\u0002\u0002", + "\u080d\u080e\u0007C\u0002\u0002\u080e\u080f\u0007F\u0002\u0002\u080f", + "\u0192\u0003\u0002\u0002\u0002\u0810\u0811\u0007T\u0002\u0002\u0811", + "\u0812\u0007Q\u0002\u0002\u0812\u0813\u0007N\u0002\u0002\u0813\u0814", + "\u0007G\u0002\u0002\u0814\u0194\u0003\u0002\u0002\u0002\u0815\u0816", + "\u0007T\u0002\u0002\u0816\u0817\u0007Q\u0002\u0002\u0817\u0818\u0007", + "N\u0002\u0002\u0818\u0819\u0007G\u0002\u0002\u0819\u081a\u0007U\u0002", + "\u0002\u081a\u0196\u0003\u0002\u0002\u0002\u081b\u081c\u0007E\u0002", + "\u0002\u081c\u081d\u0007Q\u0002\u0002\u081d\u081e\u0007O\u0002\u0002", + "\u081e\u081f\u0007R\u0002\u0002\u081f\u0820\u0007C\u0002\u0002\u0820", + "\u0821\u0007E\u0002\u0002\u0821\u0822\u0007V\u0002\u0002\u0822\u0823", + "\u0007K\u0002\u0002\u0823\u0824\u0007Q\u0002\u0002\u0824\u0825\u0007", + "P\u0002\u0002\u0825\u0826\u0007U\u0002\u0002\u0826\u0198\u0003\u0002", + "\u0002\u0002\u0827\u0828\u0007R\u0002\u0002\u0828\u0829\u0007T\u0002", + "\u0002\u0829\u082a\u0007K\u0002\u0002\u082a\u082b\u0007P\u0002\u0002", + "\u082b\u082c\u0007E\u0002\u0002\u082c\u082d\u0007K\u0002\u0002\u082d", + "\u082e\u0007R\u0002\u0002\u082e\u082f\u0007C\u0002\u0002\u082f\u0830", + "\u0007N\u0002\u0002\u0830\u0831\u0007U\u0002\u0002\u0831\u019a\u0003", + "\u0002\u0002\u0002\u0832\u0833\u0007V\u0002\u0002\u0833\u0834\u0007", + "T\u0002\u0002\u0834\u0835\u0007C\u0002\u0002\u0835\u0836\u0007P\u0002", + "\u0002\u0836\u0837\u0007U\u0002\u0002\u0837\u0838\u0007C\u0002\u0002", + "\u0838\u0839\u0007E\u0002\u0002\u0839\u083a\u0007V\u0002\u0002\u083a", + "\u083b\u0007K\u0002\u0002\u083b\u083c\u0007Q\u0002\u0002\u083c\u083d", + "\u0007P\u0002\u0002\u083d\u083e\u0007U\u0002\u0002\u083e\u019c\u0003", + "\u0002\u0002\u0002\u083f\u0840\u0007K\u0002\u0002\u0840\u0841\u0007", + "P\u0002\u0002\u0841\u0842\u0007F\u0002\u0002\u0842\u0843\u0007G\u0002", + "\u0002\u0843\u0844\u0007Z\u0002\u0002\u0844\u019e\u0003\u0002\u0002", + "\u0002\u0845\u0846\u0007K\u0002\u0002\u0846\u0847\u0007P\u0002\u0002", + "\u0847\u0848\u0007F\u0002\u0002\u0848\u0849\u0007G\u0002\u0002\u0849", + "\u084a\u0007Z\u0002\u0002\u084a\u084b\u0007G\u0002\u0002\u084b\u084c", + "\u0007U\u0002\u0002\u084c\u01a0\u0003\u0002\u0002\u0002\u084d\u084e", + "\u0007N\u0002\u0002\u084e\u084f\u0007Q\u0002\u0002\u084f\u0850\u0007", + "E\u0002\u0002\u0850\u0851\u0007M\u0002\u0002\u0851\u0852\u0007U\u0002", + "\u0002\u0852\u01a2\u0003\u0002\u0002\u0002\u0853\u0854\u0007Q\u0002", + "\u0002\u0854\u0855\u0007R\u0002\u0002\u0855\u0856\u0007V\u0002\u0002", + "\u0856\u0857\u0007K\u0002\u0002\u0857\u0858\u0007Q\u0002\u0002\u0858", + "\u0859\u0007P\u0002\u0002\u0859\u01a4\u0003\u0002\u0002\u0002\u085a", + "\u085b\u0007C\u0002\u0002\u085b\u085c\u0007P\u0002\u0002\u085c\u085d", + "\u0007V\u0002\u0002\u085d\u085e\u0007K\u0002\u0002\u085e\u01a6\u0003", + "\u0002\u0002\u0002\u085f\u0860\u0007N\u0002\u0002\u0860\u0861\u0007", + "Q\u0002\u0002\u0861\u0862\u0007E\u0002\u0002\u0862\u0863\u0007C\u0002", + "\u0002\u0863\u0864\u0007N\u0002\u0002\u0864\u01a8\u0003\u0002\u0002", + "\u0002\u0865\u0866\u0007K\u0002\u0002\u0866\u0867\u0007P\u0002\u0002", + "\u0867\u0868\u0007R\u0002\u0002\u0868\u0869\u0007C\u0002\u0002\u0869", + "\u086a\u0007V\u0002\u0002\u086a\u086b\u0007J\u0002\u0002\u086b\u01aa", + "\u0003\u0002\u0002\u0002\u086c\u086d\u0007Y\u0002\u0002\u086d\u086e", + "\u0007C\u0002\u0002\u086e\u086f\u0007V\u0002\u0002\u086f\u0870\u0007", + "G\u0002\u0002\u0870\u0871\u0007T\u0002\u0002\u0871\u0872\u0007O\u0002", + "\u0002\u0872\u0873\u0007C\u0002\u0002\u0873\u0874\u0007T\u0002\u0002", + "\u0874\u0875\u0007M\u0002\u0002\u0875\u01ac\u0003\u0002\u0002\u0002", + "\u0876\u0877\u0007W\u0002\u0002\u0877\u0878\u0007P\u0002\u0002\u0878", + "\u0879\u0007P\u0002\u0002\u0879\u087a\u0007G\u0002\u0002\u087a\u087b", + "\u0007U\u0002\u0002\u087b\u087c\u0007V\u0002\u0002\u087c\u01ae\u0003", + "\u0002\u0002\u0002\u087d\u087e\u0007O\u0002\u0002\u087e\u087f\u0007", + "C\u0002\u0002\u087f\u0880\u0007V\u0002\u0002\u0880\u0881\u0007E\u0002", + "\u0002\u0881\u0882\u0007J\u0002\u0002\u0882\u01b0\u0003\u0002\u0002", + "\u0002\u0883\u0884\u0007P\u0002\u0002\u0884\u0885\u0007G\u0002\u0002", + "\u0885\u0886\u0007Z\u0002\u0002\u0886\u0887\u0007V\u0002\u0002\u0887", + "\u01b2\u0003\u0002\u0002\u0002\u0888\u0889\u0007Y\u0002\u0002\u0889", + "\u088a\u0007K\u0002\u0002\u088a\u088b\u0007V\u0002\u0002\u088b\u088c", + "\u0007J\u0002\u0002\u088c\u088d\u0007K\u0002\u0002\u088d\u088e\u0007", + "P\u0002\u0002\u088e\u01b4\u0003\u0002\u0002\u0002\u088f\u0890\u0007", + "Y\u0002\u0002\u0890\u0891\u0007U\u0002\u0002\u0891\u01b6\u0003\u0002", + "\u0002\u0002\u0892\u0893\u0007U\u0002\u0002\u0893\u0894\u0007[\u0002", + "\u0002\u0894\u0895\u0007U\u0002\u0002\u0895\u0896\u0007V\u0002\u0002", + "\u0896\u0897\u0007G\u0002\u0002\u0897\u0898\u0007O\u0002\u0002\u0898", + "\u01b8\u0003\u0002\u0002\u0002\u0899\u089a\u0007K\u0002\u0002\u089a", + "\u089b\u0007P\u0002\u0002\u089b\u089c\u0007E\u0002\u0002\u089c\u089d", + "\u0007N\u0002\u0002\u089d\u089e\u0007W\u0002\u0002\u089e\u089f\u0007", + "F\u0002\u0002\u089f\u08a0\u0007K\u0002\u0002\u08a0\u08a1\u0007P\u0002", + "\u0002\u08a1\u08a2\u0007I\u0002\u0002\u08a2\u01ba\u0003\u0002\u0002", + "\u0002\u08a3\u08a4\u0007G\u0002\u0002\u08a4\u08a5\u0007Z\u0002\u0002", + "\u08a5\u08a6\u0007E\u0002\u0002\u08a6\u08a7\u0007N\u0002\u0002\u08a7", + "\u08a8\u0007W\u0002\u0002\u08a8\u08a9\u0007F\u0002\u0002\u08a9\u08aa", + "\u0007K\u0002\u0002\u08aa\u08ab\u0007P\u0002\u0002\u08ab\u08ac\u0007", + "I\u0002\u0002\u08ac\u01bc\u0003\u0002\u0002\u0002\u08ad\u08ae\u0007", + "E\u0002\u0002\u08ae\u08af\u0007Q\u0002\u0002\u08af\u08b0\u0007P\u0002", + "\u0002\u08b0\u08b1\u0007U\u0002\u0002\u08b1\u08b2\u0007V\u0002\u0002", + "\u08b2\u08b3\u0007T\u0002\u0002\u08b3\u08b4\u0007C\u0002\u0002\u08b4", + "\u08b5\u0007K\u0002\u0002\u08b5\u08b6\u0007P\u0002\u0002\u08b6\u08b7", + "\u0007V\u0002\u0002\u08b7\u08b8\u0007U\u0002\u0002\u08b8\u01be\u0003", + "\u0002\u0002\u0002\u08b9\u08ba\u0007I\u0002\u0002\u08ba\u08bb\u0007", + "G\u0002\u0002\u08bb\u08bc\u0007P\u0002\u0002\u08bc\u08bd\u0007G\u0002", + "\u0002\u08bd\u08be\u0007T\u0002\u0002\u08be\u08bf\u0007C\u0002\u0002", + "\u08bf\u08c0\u0007V\u0002\u0002\u08c0\u08c1\u0007G\u0002\u0002\u08c1", + "\u08c2\u0007F\u0002\u0002\u08c2\u01c0\u0003\u0002\u0002\u0002\u08c3", + "\u08c4\u0007E\u0002\u0002\u08c4\u08c5\u0007C\u0002\u0002\u08c5\u08c6", + "\u0007V\u0002\u0002\u08c6\u08c7\u0007C\u0002\u0002\u08c7\u08c8\u0007", + "N\u0002\u0002\u08c8\u08c9\u0007Q\u0002\u0002\u08c9\u08ca\u0007I\u0002", + "\u0002\u08ca\u01c2\u0003\u0002\u0002\u0002\u08cb\u08cc\u0007N\u0002", + "\u0002\u08cc\u08cd\u0007C\u0002\u0002\u08cd\u08ce\u0007P\u0002\u0002", + "\u08ce\u08cf\u0007I\u0002\u0002\u08cf\u08d0\u0007W\u0002\u0002\u08d0", + "\u08d1\u0007C\u0002\u0002\u08d1\u08d2\u0007I\u0002\u0002\u08d2\u08d3", + "\u0007G\u0002\u0002\u08d3\u01c4\u0003\u0002\u0002\u0002\u08d4\u08d5", + "\u0007E\u0002\u0002\u08d5\u08d6\u0007C\u0002\u0002\u08d6\u08d7\u0007", + "V\u0002\u0002\u08d7\u08d8\u0007C\u0002\u0002\u08d8\u08d9\u0007N\u0002", + "\u0002\u08d9\u08da\u0007Q\u0002\u0002\u08da\u08db\u0007I\u0002\u0002", + "\u08db\u08dc\u0007U\u0002\u0002\u08dc\u01c6\u0003\u0002\u0002\u0002", + "\u08dd\u08de\u0007X\u0002\u0002\u08de\u08df\u0007K\u0002\u0002\u08df", + "\u08e0\u0007G\u0002\u0002\u08e0\u08e1\u0007Y\u0002\u0002\u08e1\u08e2", + "\u0007U\u0002\u0002\u08e2\u01c8\u0003\u0002\u0002\u0002\u08e3\u08e4", + "\u0007R\u0002\u0002\u08e4\u08e5\u0007T\u0002\u0002\u08e5\u08e6\u0007", + "K\u0002\u0002\u08e6\u08e7\u0007O\u0002\u0002\u08e7\u08e8\u0007C\u0002", + "\u0002\u08e8\u08e9\u0007T\u0002\u0002\u08e9\u08ea\u0007[\u0002\u0002", + "\u08ea\u01ca\u0003\u0002\u0002\u0002\u08eb\u08ec\u0007M\u0002\u0002", + "\u08ec\u08ed\u0007G\u0002\u0002\u08ed\u08ee\u0007[\u0002\u0002\u08ee", + "\u01cc\u0003\u0002\u0002\u0002\u08ef\u08f0\u0007R\u0002\u0002\u08f0", + "\u08f1\u0007G\u0002\u0002\u08f1\u08f2\u0007T\u0002\u0002\u08f2\u08f3", + "\u0007K\u0002\u0002\u08f3\u08f4\u0007Q\u0002\u0002\u08f4\u08f5\u0007", + "F\u0002\u0002\u08f5\u01ce\u0003\u0002\u0002\u0002\u08f6\u08f7\u0007", + "U\u0002\u0002\u08f7\u08f8\u0007[\u0002\u0002\u08f8\u08f9\u0007U\u0002", + "\u0002\u08f9\u08fa\u0007V\u0002\u0002\u08fa\u08fb\u0007G\u0002\u0002", + "\u08fb\u08fc\u0007O\u0002\u0002\u08fc\u08fd\u0007a\u0002\u0002\u08fd", + "\u08fe\u0007V\u0002\u0002\u08fe\u08ff\u0007K\u0002\u0002\u08ff\u0900", + "\u0007O\u0002\u0002\u0900\u0901\u0007G\u0002\u0002\u0901\u01d0\u0003", + "\u0002\u0002\u0002\u0902\u0903\u0007U\u0002\u0002\u0903\u0904\u0007", + "V\u0002\u0002\u0904\u0905\u0007T\u0002\u0002\u0905\u0906\u0007K\u0002", + "\u0002\u0906\u0907\u0007P\u0002\u0002\u0907\u0908\u0007I\u0002\u0002", + "\u0908\u01d2\u0003\u0002\u0002\u0002\u0909\u090a\u0007C\u0002\u0002", + "\u090a\u090b\u0007T\u0002\u0002\u090b\u090c\u0007T\u0002\u0002\u090c", + "\u090d\u0007C\u0002\u0002\u090d\u090e\u0007[\u0002\u0002\u090e\u01d4", + "\u0003\u0002\u0002\u0002\u090f\u0910\u0007O\u0002\u0002\u0910\u0911", + "\u0007C\u0002\u0002\u0911\u0912\u0007R\u0002\u0002\u0912\u01d6\u0003", + "\u0002\u0002\u0002\u0913\u0914\u0007E\u0002\u0002\u0914\u0915\u0007", + "J\u0002\u0002\u0915\u0916\u0007C\u0002\u0002\u0916\u0917\u0007T\u0002", + "\u0002\u0917\u01d8\u0003\u0002\u0002\u0002\u0918\u0919\u0007X\u0002", + "\u0002\u0919\u091a\u0007C\u0002\u0002\u091a\u091b\u0007T\u0002\u0002", + "\u091b\u091c\u0007E\u0002\u0002\u091c\u091d\u0007J\u0002\u0002\u091d", + "\u091e\u0007C\u0002\u0002\u091e\u091f\u0007T\u0002\u0002\u091f\u01da", + "\u0003\u0002\u0002\u0002\u0920\u0921\u0007D\u0002\u0002\u0921\u0922", + "\u0007K\u0002\u0002\u0922\u0923\u0007P\u0002\u0002\u0923\u0924\u0007", + "C\u0002\u0002\u0924\u0925\u0007T\u0002\u0002\u0925\u0926\u0007[\u0002", + "\u0002\u0926\u01dc\u0003\u0002\u0002\u0002\u0927\u0928\u0007X\u0002", + "\u0002\u0928\u0929\u0007C\u0002\u0002\u0929\u092a\u0007T\u0002\u0002", + "\u092a\u092b\u0007D\u0002\u0002\u092b\u092c\u0007K\u0002\u0002\u092c", + "\u092d\u0007P\u0002\u0002\u092d\u092e\u0007C\u0002\u0002\u092e\u092f", + "\u0007T\u0002\u0002\u092f\u0930\u0007[\u0002\u0002\u0930\u01de\u0003", + "\u0002\u0002\u0002\u0931\u0932\u0007D\u0002\u0002\u0932\u0933\u0007", + "[\u0002\u0002\u0933\u0934\u0007V\u0002\u0002\u0934\u0935\u0007G\u0002", + "\u0002\u0935\u0936\u0007U\u0002\u0002\u0936\u01e0\u0003\u0002\u0002", + "\u0002\u0937\u0938\u0007F\u0002\u0002\u0938\u0939\u0007G\u0002\u0002", + "\u0939\u093a\u0007E\u0002\u0002\u093a\u093b\u0007K\u0002\u0002\u093b", + "\u093c\u0007O\u0002\u0002\u093c\u093d\u0007C\u0002\u0002\u093d\u093e", + "\u0007N\u0002\u0002\u093e\u01e2\u0003\u0002\u0002\u0002\u093f\u0940", + "\u0007V\u0002\u0002\u0940\u0941\u0007K\u0002\u0002\u0941\u0942\u0007", + "P\u0002\u0002\u0942\u0943\u0007[\u0002\u0002\u0943\u0944\u0007K\u0002", + "\u0002\u0944\u0945\u0007P\u0002\u0002\u0945\u0946\u0007V\u0002\u0002", + "\u0946\u01e4\u0003\u0002\u0002\u0002\u0947\u0948\u0007U\u0002\u0002", + "\u0948\u0949\u0007O\u0002\u0002\u0949\u094a\u0007C\u0002\u0002\u094a", + "\u094b\u0007N\u0002\u0002\u094b\u094c\u0007N\u0002\u0002\u094c\u094d", + "\u0007K\u0002\u0002\u094d\u094e\u0007P\u0002\u0002\u094e\u094f\u0007", + "V\u0002\u0002\u094f\u01e6\u0003\u0002\u0002\u0002\u0950\u0951\u0007", + "K\u0002\u0002\u0951\u0952\u0007P\u0002\u0002\u0952\u0953\u0007V\u0002", + "\u0002\u0953\u01e8\u0003\u0002\u0002\u0002\u0954\u0955\u0007D\u0002", + "\u0002\u0955\u0956\u0007K\u0002\u0002\u0956\u0957\u0007I\u0002\u0002", + "\u0957\u0958\u0007K\u0002\u0002\u0958\u0959\u0007P\u0002\u0002\u0959", + "\u095a\u0007V\u0002\u0002\u095a\u01ea\u0003\u0002\u0002\u0002\u095b", + "\u095c\u0007H\u0002\u0002\u095c\u095d\u0007N\u0002\u0002\u095d\u095e", + "\u0007Q\u0002\u0002\u095e\u095f\u0007C\u0002\u0002\u095f\u0960\u0007", + "V\u0002\u0002\u0960\u01ec\u0003\u0002\u0002\u0002\u0961\u0962\u0007", + "F\u0002\u0002\u0962\u0963\u0007Q\u0002\u0002\u0963\u0964\u0007W\u0002", + "\u0002\u0964\u0965\u0007D\u0002\u0002\u0965\u0966\u0007N\u0002\u0002", + "\u0966\u0967\u0007G\u0002\u0002\u0967\u01ee\u0003\u0002\u0002\u0002", + "\u0968\u0969\u0007F\u0002\u0002\u0969\u096a\u0007C\u0002\u0002\u096a", + "\u096b\u0007V\u0002\u0002\u096b\u096c\u0007G\u0002\u0002\u096c\u01f0", + "\u0003\u0002\u0002\u0002\u096d\u096e\u0007V\u0002\u0002\u096e\u096f", + "\u0007K\u0002\u0002\u096f\u0970\u0007O\u0002\u0002\u0970\u0971\u0007", + "G\u0002\u0002\u0971\u01f2\u0003\u0002\u0002\u0002\u0972\u0973\u0007", + "V\u0002\u0002\u0973\u0974\u0007K\u0002\u0002\u0974\u0975\u0007O\u0002", + "\u0002\u0975\u0976\u0007G\u0002\u0002\u0976\u0977\u0007U\u0002\u0002", + "\u0977\u0978\u0007V\u0002\u0002\u0978\u0979\u0007C\u0002\u0002\u0979", + "\u097a\u0007O\u0002\u0002\u097a\u097b\u0007R\u0002\u0002\u097b\u01f4", + "\u0003\u0002\u0002\u0002\u097c\u097d\u0007O\u0002\u0002\u097d\u097e", + "\u0007W\u0002\u0002\u097e\u097f\u0007N\u0002\u0002\u097f\u0980\u0007", + "V\u0002\u0002\u0980\u0981\u0007K\u0002\u0002\u0981\u0982\u0007U\u0002", + "\u0002\u0982\u0983\u0007G\u0002\u0002\u0983\u0984\u0007V\u0002\u0002", + "\u0984\u01f6\u0003\u0002\u0002\u0002\u0985\u0986\u0007D\u0002\u0002", + "\u0986\u0987\u0007Q\u0002\u0002\u0987\u0988\u0007Q\u0002\u0002\u0988", + "\u0989\u0007N\u0002\u0002\u0989\u098a\u0007G\u0002\u0002\u098a\u098b", + "\u0007C\u0002\u0002\u098b\u098c\u0007P\u0002\u0002\u098c\u01f8\u0003", + "\u0002\u0002\u0002\u098d\u098e\u0007T\u0002\u0002\u098e\u098f\u0007", + "C\u0002\u0002\u098f\u0990\u0007Y\u0002\u0002\u0990\u01fa\u0003\u0002", + "\u0002\u0002\u0991\u0992\u0007T\u0002\u0002\u0992\u0993\u0007Q\u0002", + "\u0002\u0993\u0994\u0007Y\u0002\u0002\u0994\u01fc\u0003\u0002\u0002", + "\u0002\u0995\u0996\u0007P\u0002\u0002\u0996\u0997\u0007W\u0002\u0002", + "\u0997\u0998\u0007N\u0002\u0002\u0998\u0999\u0007N\u0002\u0002\u0999", + "\u01fe\u0003\u0002\u0002\u0002\u099a\u099b\u0007F\u0002\u0002\u099b", + "\u099c\u0007C\u0002\u0002\u099c\u099d\u0007V\u0002\u0002\u099d\u099e", + "\u0007G\u0002\u0002\u099e\u099f\u0007V\u0002\u0002\u099f\u09a0\u0007", + "K\u0002\u0002\u09a0\u09a1\u0007O\u0002\u0002\u09a1\u09a2\u0007G\u0002", + "\u0002\u09a2\u0200\u0003\u0002\u0002\u0002\u09a3\u09a4\u0007?\u0002", + "\u0002\u09a4\u0202\u0003\u0002\u0002\u0002\u09a5\u09a6\u0007@\u0002", + "\u0002\u09a6\u0204\u0003\u0002\u0002\u0002\u09a7\u09a8\u0007>\u0002", + "\u0002\u09a8\u0206\u0003\u0002\u0002\u0002\u09a9\u09aa\u0007#\u0002", + "\u0002\u09aa\u0208\u0003\u0002\u0002\u0002\u09ab\u09ac\u0007\u0080\u0002", + "\u0002\u09ac\u020a\u0003\u0002\u0002\u0002\u09ad\u09ae\u0007~\u0002", + "\u0002\u09ae\u020c\u0003\u0002\u0002\u0002\u09af\u09b0\u0007(\u0002", + "\u0002\u09b0\u020e\u0003\u0002\u0002\u0002\u09b1\u09b2\u0007`\u0002", + "\u0002\u09b2\u0210\u0003\u0002\u0002\u0002\u09b3\u09b4\u00070\u0002", + "\u0002\u09b4\u0212\u0003\u0002\u0002\u0002\u09b5\u09b6\u0007]\u0002", + "\u0002\u09b6\u0214\u0003\u0002\u0002\u0002\u09b7\u09b8\u0007_\u0002", + "\u0002\u09b8\u0216\u0003\u0002\u0002\u0002\u09b9\u09ba\u0007*\u0002", + "\u0002\u09ba\u0218\u0003\u0002\u0002\u0002\u09bb\u09bc\u0007+\u0002", + "\u0002\u09bc\u021a\u0003\u0002\u0002\u0002\u09bd\u09be\u0007.\u0002", + "\u0002\u09be\u021c\u0003\u0002\u0002\u0002\u09bf\u09c0\u0007=\u0002", + "\u0002\u09c0\u021e\u0003\u0002\u0002\u0002\u09c1\u09c2\u0007B\u0002", + "\u0002\u09c2\u0220\u0003\u0002\u0002\u0002\u09c3\u09c4\u0007)\u0002", + "\u0002\u09c4\u0222\u0003\u0002\u0002\u0002\u09c5\u09c6\u0007$\u0002", + "\u0002\u09c6\u0224\u0003\u0002\u0002\u0002\u09c7\u09c8\u0007b\u0002", + "\u0002\u09c8\u0226\u0003\u0002\u0002\u0002\u09c9\u09ca\u0007<\u0002", + "\u0002\u09ca\u0228\u0003\u0002\u0002\u0002\u09cb\u09cc\u0007,\u0002", + "\u0002\u09cc\u022a\u0003\u0002\u0002\u0002\u09cd\u09ce\u0007a\u0002", + "\u0002\u09ce\u022c\u0003\u0002\u0002\u0002\u09cf\u09d0\u0007/\u0002", + "\u0002\u09d0\u022e\u0003\u0002\u0002\u0002\u09d1\u09d2\u0007-\u0002", + "\u0002\u09d2\u0230\u0003\u0002\u0002\u0002\u09d3\u09d4\u0007\'\u0002", + "\u0002\u09d4\u0232\u0003\u0002\u0002\u0002\u09d5\u09d6\u0007~\u0002", + "\u0002\u09d6\u09d7\u0007~\u0002\u0002\u09d7\u0234\u0003\u0002\u0002", + "\u0002\u09d8\u09d9\u0007/\u0002\u0002\u09d9\u09da\u0007/\u0002\u0002", + "\u09da\u0236\u0003\u0002\u0002\u0002\u09db\u09dc\u00071\u0002\u0002", + "\u09dc\u0238\u0003\u0002\u0002\u0002\u09dd\u09de\u00070\u0002\u0002", + "\u09de\u09df\u0005\u024b\u0126\u0002\u09df\u023a\u0003\u0002\u0002\u0002", + "\u09e0\u09e1\t\u0004\u0002\u0002\u09e1\u09e2\u0005\u0247\u0124\u0002", + "\u09e2\u023c\u0003\u0002\u0002\u0002\u09e3\u09e7\u0005\u0253\u012a\u0002", + "\u09e4\u09e7\u0005\u0255\u012b\u0002\u09e5\u09e7\u0005\u0259\u012d\u0002", + "\u09e6\u09e3\u0003\u0002\u0002\u0002\u09e6\u09e4\u0003\u0002\u0002\u0002", + "\u09e6\u09e5\u0003\u0002\u0002\u0002\u09e7\u023e\u0003\u0002\u0002\u0002", + "\u09e8\u09ea\u0005\u024f\u0128\u0002\u09e9\u09e8\u0003\u0002\u0002\u0002", + "\u09ea\u09eb\u0003\u0002\u0002\u0002\u09eb\u09e9\u0003\u0002\u0002\u0002", + "\u09eb\u09ec\u0003\u0002\u0002\u0002\u09ec\u0240\u0003\u0002\u0002\u0002", + "\u09ed\u09ef\u0005\u024f\u0128\u0002\u09ee\u09ed\u0003\u0002\u0002\u0002", + "\u09ef\u09f0\u0003\u0002\u0002\u0002\u09f0\u09ee\u0003\u0002\u0002\u0002", + "\u09f0\u09f1\u0003\u0002\u0002\u0002\u09f1\u09f3\u0003\u0002\u0002\u0002", + "\u09f2\u09ee\u0003\u0002\u0002\u0002\u09f2\u09f3\u0003\u0002\u0002\u0002", + "\u09f3\u09f4\u0003\u0002\u0002\u0002\u09f4\u09f6\u00070\u0002\u0002", + "\u09f5\u09f7\u0005\u024f\u0128\u0002\u09f6\u09f5\u0003\u0002\u0002\u0002", + "\u09f7\u09f8\u0003\u0002\u0002\u0002\u09f8\u09f6\u0003\u0002\u0002\u0002", + "\u09f8\u09f9\u0003\u0002\u0002\u0002\u09f9\u0a19\u0003\u0002\u0002\u0002", + "\u09fa\u09fc\u0005\u024f\u0128\u0002\u09fb\u09fa\u0003\u0002\u0002\u0002", + "\u09fc\u09fd\u0003\u0002\u0002\u0002\u09fd\u09fb\u0003\u0002\u0002\u0002", + "\u09fd\u09fe\u0003\u0002\u0002\u0002\u09fe\u09ff\u0003\u0002\u0002\u0002", + "\u09ff\u0a00\u00070\u0002\u0002\u0a00\u0a01\u0005\u0249\u0125\u0002", + "\u0a01\u0a19\u0003\u0002\u0002\u0002\u0a02\u0a04\u0005\u024f\u0128\u0002", + "\u0a03\u0a02\u0003\u0002\u0002\u0002\u0a04\u0a05\u0003\u0002\u0002\u0002", + "\u0a05\u0a03\u0003\u0002\u0002\u0002\u0a05\u0a06\u0003\u0002\u0002\u0002", + "\u0a06\u0a08\u0003\u0002\u0002\u0002\u0a07\u0a03\u0003\u0002\u0002\u0002", + "\u0a07\u0a08\u0003\u0002\u0002\u0002\u0a08\u0a09\u0003\u0002\u0002\u0002", + "\u0a09\u0a0b\u00070\u0002\u0002\u0a0a\u0a0c\u0005\u024f\u0128\u0002", + "\u0a0b\u0a0a\u0003\u0002\u0002\u0002\u0a0c\u0a0d\u0003\u0002\u0002\u0002", + "\u0a0d\u0a0b\u0003\u0002\u0002\u0002\u0a0d\u0a0e\u0003\u0002\u0002\u0002", + "\u0a0e\u0a0f\u0003\u0002\u0002\u0002\u0a0f\u0a10\u0005\u0249\u0125\u0002", + "\u0a10\u0a19\u0003\u0002\u0002\u0002\u0a11\u0a13\u0005\u024f\u0128\u0002", + "\u0a12\u0a11\u0003\u0002\u0002\u0002\u0a13\u0a14\u0003\u0002\u0002\u0002", + "\u0a14\u0a12\u0003\u0002\u0002\u0002\u0a14\u0a15\u0003\u0002\u0002\u0002", + "\u0a15\u0a16\u0003\u0002\u0002\u0002\u0a16\u0a17\u0005\u0249\u0125\u0002", + "\u0a17\u0a19\u0003\u0002\u0002\u0002\u0a18\u09f2\u0003\u0002\u0002\u0002", + "\u0a18\u09fb\u0003\u0002\u0002\u0002\u0a18\u0a07\u0003\u0002\u0002\u0002", + "\u0a18\u0a12\u0003\u0002\u0002\u0002\u0a19\u0242\u0003\u0002\u0002\u0002", + "\u0a1a\u0a1b\u0005\u0257\u012c\u0002\u0a1b\u0244\u0003\u0002\u0002\u0002", + "\u0a1c\u0a1d\u0005\u024b\u0126\u0002\u0a1d\u0246\u0003\u0002\u0002\u0002", + "\u0a1e\u0a1f\u0005\u024d\u0127\u0002\u0a1f\u0248\u0003\u0002\u0002\u0002", + "\u0a20\u0a22\u0007G\u0002\u0002\u0a21\u0a23\t\u0005\u0002\u0002\u0a22", + "\u0a21\u0003\u0002\u0002\u0002\u0a22\u0a23\u0003\u0002\u0002\u0002\u0a23", + "\u0a25\u0003\u0002\u0002\u0002\u0a24\u0a26\u0005\u024f\u0128\u0002\u0a25", + "\u0a24\u0003\u0002\u0002\u0002\u0a26\u0a27\u0003\u0002\u0002\u0002\u0a27", + "\u0a25\u0003\u0002\u0002\u0002\u0a27\u0a28\u0003\u0002\u0002\u0002\u0a28", + "\u024a\u0003\u0002\u0002\u0002\u0a29\u0a2b\t\u0006\u0002\u0002\u0a2a", + "\u0a29\u0003\u0002\u0002\u0002\u0a2b\u0a2e\u0003\u0002\u0002\u0002\u0a2c", + "\u0a2d\u0003\u0002\u0002\u0002\u0a2c\u0a2a\u0003\u0002\u0002\u0002\u0a2d", + "\u0a30\u0003\u0002\u0002\u0002\u0a2e\u0a2c\u0003\u0002\u0002\u0002\u0a2f", + "\u0a31\t\u0007\u0002\u0002\u0a30\u0a2f\u0003\u0002\u0002\u0002\u0a31", + "\u0a32\u0003\u0002\u0002\u0002\u0a32\u0a33\u0003\u0002\u0002\u0002\u0a32", + "\u0a30\u0003\u0002\u0002\u0002\u0a33\u0a37\u0003\u0002\u0002\u0002\u0a34", + "\u0a36\t\u0006\u0002\u0002\u0a35\u0a34\u0003\u0002\u0002\u0002\u0a36", + "\u0a39\u0003\u0002\u0002\u0002\u0a37\u0a35\u0003\u0002\u0002\u0002\u0a37", + "\u0a38\u0003\u0002\u0002\u0002\u0a38\u024c\u0003\u0002\u0002\u0002\u0a39", + "\u0a37\u0003\u0002\u0002\u0002\u0a3a\u0a3c\t\b\u0002\u0002\u0a3b\u0a3a", + "\u0003\u0002\u0002\u0002\u0a3c\u0a3f\u0003\u0002\u0002\u0002\u0a3d\u0a3e", + "\u0003\u0002\u0002\u0002\u0a3d\u0a3b\u0003\u0002\u0002\u0002\u0a3e\u0a41", + "\u0003\u0002\u0002\u0002\u0a3f\u0a3d\u0003\u0002\u0002\u0002\u0a40\u0a42", + "\t\t\u0002\u0002\u0a41\u0a40\u0003\u0002\u0002\u0002\u0a42\u0a43\u0003", + "\u0002\u0002\u0002\u0a43\u0a44\u0003\u0002\u0002\u0002\u0a43\u0a41\u0003", + "\u0002\u0002\u0002\u0a44\u0a48\u0003\u0002\u0002\u0002\u0a45\u0a47\t", + "\b\u0002\u0002\u0a46\u0a45\u0003\u0002\u0002\u0002\u0a47\u0a4a\u0003", + "\u0002\u0002\u0002\u0a48\u0a46\u0003\u0002\u0002\u0002\u0a48\u0a49\u0003", + "\u0002\u0002\u0002\u0a49\u024e\u0003\u0002\u0002\u0002\u0a4a\u0a48\u0003", + "\u0002\u0002\u0002\u0a4b\u0a4c\t\n\u0002\u0002\u0a4c\u0250\u0003\u0002", + "\u0002\u0002\u0a4d\u0a4e\t\u000b\u0002\u0002\u0a4e\u0252\u0003\u0002", + "\u0002\u0002\u0a4f\u0a57\u0007$\u0002\u0002\u0a50\u0a51\u0007^\u0002", + "\u0002\u0a51\u0a56\u000b\u0002\u0002\u0002\u0a52\u0a53\u0007$\u0002", + "\u0002\u0a53\u0a56\u0007$\u0002\u0002\u0a54\u0a56\n\f\u0002\u0002\u0a55", + "\u0a50\u0003\u0002\u0002\u0002\u0a55\u0a52\u0003\u0002\u0002\u0002\u0a55", + "\u0a54\u0003\u0002\u0002\u0002\u0a56\u0a59\u0003\u0002\u0002\u0002\u0a57", + "\u0a55\u0003\u0002\u0002\u0002\u0a57\u0a58\u0003\u0002\u0002\u0002\u0a58", + "\u0a5a\u0003\u0002\u0002\u0002\u0a59\u0a57\u0003\u0002\u0002\u0002\u0a5a", + "\u0a5b\u0007$\u0002\u0002\u0a5b\u0254\u0003\u0002\u0002\u0002\u0a5c", + "\u0a64\u0007)\u0002\u0002\u0a5d\u0a5e\u0007^\u0002\u0002\u0a5e\u0a63", + "\u000b\u0002\u0002\u0002\u0a5f\u0a60\u0007)\u0002\u0002\u0a60\u0a63", + "\u0007)\u0002\u0002\u0a61\u0a63\n\r\u0002\u0002\u0a62\u0a5d\u0003\u0002", + "\u0002\u0002\u0a62\u0a5f\u0003\u0002\u0002\u0002\u0a62\u0a61\u0003\u0002", + "\u0002\u0002\u0a63\u0a66\u0003\u0002\u0002\u0002\u0a64\u0a62\u0003\u0002", + "\u0002\u0002\u0a64\u0a65\u0003\u0002\u0002\u0002\u0a65\u0a67\u0003\u0002", + "\u0002\u0002\u0a66\u0a64\u0003\u0002\u0002\u0002\u0a67\u0a68\u0007)", + "\u0002\u0002\u0a68\u0256\u0003\u0002\u0002\u0002\u0a69\u0a6a\u0007D", + "\u0002\u0002\u0a6a\u0a6c\u0007)\u0002\u0002\u0a6b\u0a6d\t\u000e\u0002", + "\u0002\u0a6c\u0a6b\u0003\u0002\u0002\u0002\u0a6d\u0a6e\u0003\u0002\u0002", + "\u0002\u0a6e\u0a6c\u0003\u0002\u0002\u0002\u0a6e\u0a6f\u0003\u0002\u0002", + "\u0002\u0a6f\u0a70\u0003\u0002\u0002\u0002\u0a70\u0a71\u0007)\u0002", + "\u0002\u0a71\u0258\u0003\u0002\u0002\u0002\u0a72\u0a7a\u0007b\u0002", + "\u0002\u0a73\u0a74\u0007^\u0002\u0002\u0a74\u0a79\u000b\u0002\u0002", + "\u0002\u0a75\u0a76\u0007b\u0002\u0002\u0a76\u0a79\u0007b\u0002\u0002", + "\u0a77\u0a79\n\u000f\u0002\u0002\u0a78\u0a73\u0003\u0002\u0002\u0002", + "\u0a78\u0a75\u0003\u0002\u0002\u0002\u0a78\u0a77\u0003\u0002\u0002\u0002", + "\u0a79\u0a7c\u0003\u0002\u0002\u0002\u0a7a\u0a78\u0003\u0002\u0002\u0002", + "\u0a7a\u0a7b\u0003\u0002\u0002\u0002\u0a7b\u0a7d\u0003\u0002\u0002\u0002", + "\u0a7c\u0a7a\u0003\u0002\u0002\u0002\u0a7d\u0a7e\u0007b\u0002\u0002", + "\u0a7e\u025a\u0003\u0002\u0002\u0002&\u0002\u025e\u0268\u0274\u0279", + "\u027d\u0281\u0287\u028b\u028d\u09e6\u09eb\u09f0\u09f2\u09f8\u09fd\u0a05", + "\u0a07\u0a0d\u0a14\u0a18\u0a22\u0a27\u0a2c\u0a32\u0a37\u0a3d\u0a43\u0a48", + "\u0a55\u0a57\u0a62\u0a64\u0a6e\u0a78\u0a7a\u0003\u0002\u0003\u0002"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +function FlinkSqlLexer(input) { + antlr4.Lexer.call(this, input); + this._interp = new antlr4.atn.LexerATNSimulator(this, atn, decisionsToDFA, new antlr4.PredictionContextCache()); + return this; +} + +FlinkSqlLexer.prototype = Object.create(antlr4.Lexer.prototype); +FlinkSqlLexer.prototype.constructor = FlinkSqlLexer; + +Object.defineProperty(FlinkSqlLexer.prototype, "atn", { + get : function() { + return atn; + } +}); + +FlinkSqlLexer.EOF = antlr4.Token.EOF; +FlinkSqlLexer.SPACE = 1; +FlinkSqlLexer.COMMENT_INPUT = 2; +FlinkSqlLexer.LINE_COMMENT = 3; +FlinkSqlLexer.SELECT = 4; +FlinkSqlLexer.FROM = 5; +FlinkSqlLexer.ADD = 6; +FlinkSqlLexer.AS = 7; +FlinkSqlLexer.ALL = 8; +FlinkSqlLexer.ANY = 9; +FlinkSqlLexer.DISTINCT = 10; +FlinkSqlLexer.WHERE = 11; +FlinkSqlLexer.GROUP = 12; +FlinkSqlLexer.BY = 13; +FlinkSqlLexer.GROUPING = 14; +FlinkSqlLexer.SETS = 15; +FlinkSqlLexer.CUBE = 16; +FlinkSqlLexer.ROLLUP = 17; +FlinkSqlLexer.ORDER = 18; +FlinkSqlLexer.HAVING = 19; +FlinkSqlLexer.LIMIT = 20; +FlinkSqlLexer.AT = 21; +FlinkSqlLexer.OR = 22; +FlinkSqlLexer.AND = 23; +FlinkSqlLexer.IN = 24; +FlinkSqlLexer.NOT = 25; +FlinkSqlLexer.NO = 26; +FlinkSqlLexer.EXISTS = 27; +FlinkSqlLexer.BETWEEN = 28; +FlinkSqlLexer.LIKE = 29; +FlinkSqlLexer.RLIKE = 30; +FlinkSqlLexer.IS = 31; +FlinkSqlLexer.TRUE = 32; +FlinkSqlLexer.FALSE = 33; +FlinkSqlLexer.NULLS = 34; +FlinkSqlLexer.ASC = 35; +FlinkSqlLexer.DESC = 36; +FlinkSqlLexer.FOR = 37; +FlinkSqlLexer.INTERVAL = 38; +FlinkSqlLexer.CASE = 39; +FlinkSqlLexer.WHEN = 40; +FlinkSqlLexer.THEN = 41; +FlinkSqlLexer.ELSE = 42; +FlinkSqlLexer.END = 43; +FlinkSqlLexer.JOIN = 44; +FlinkSqlLexer.CROSS = 45; +FlinkSqlLexer.OUTER = 46; +FlinkSqlLexer.INNER = 47; +FlinkSqlLexer.LEFT = 48; +FlinkSqlLexer.SEMI = 49; +FlinkSqlLexer.RIGHT = 50; +FlinkSqlLexer.FULL = 51; +FlinkSqlLexer.NATURAL = 52; +FlinkSqlLexer.ON = 53; +FlinkSqlLexer.PIVOT = 54; +FlinkSqlLexer.LATERAL = 55; +FlinkSqlLexer.WINDOW = 56; +FlinkSqlLexer.OVER = 57; +FlinkSqlLexer.PARTITION = 58; +FlinkSqlLexer.RANGE = 59; +FlinkSqlLexer.ROWS = 60; +FlinkSqlLexer.UNBOUNDED = 61; +FlinkSqlLexer.PRECEDING = 62; +FlinkSqlLexer.FOLLOWING = 63; +FlinkSqlLexer.CURRENT = 64; +FlinkSqlLexer.FIRST = 65; +FlinkSqlLexer.AFTER = 66; +FlinkSqlLexer.LAST = 67; +FlinkSqlLexer.WITH = 68; +FlinkSqlLexer.VALUES = 69; +FlinkSqlLexer.CREATE = 70; +FlinkSqlLexer.TABLE = 71; +FlinkSqlLexer.DIRECTORY = 72; +FlinkSqlLexer.VIEW = 73; +FlinkSqlLexer.REPLACE = 74; +FlinkSqlLexer.INSERT = 75; +FlinkSqlLexer.DELETE = 76; +FlinkSqlLexer.INTO = 77; +FlinkSqlLexer.DESCRIBE = 78; +FlinkSqlLexer.EXPLAIN = 79; +FlinkSqlLexer.FORMAT = 80; +FlinkSqlLexer.LOGICAL = 81; +FlinkSqlLexer.CODEGEN = 82; +FlinkSqlLexer.COST = 83; +FlinkSqlLexer.CAST = 84; +FlinkSqlLexer.SHOW = 85; +FlinkSqlLexer.TABLES = 86; +FlinkSqlLexer.COLUMNS = 87; +FlinkSqlLexer.COLUMN = 88; +FlinkSqlLexer.USE = 89; +FlinkSqlLexer.PARTITIONS = 90; +FlinkSqlLexer.FUNCTIONS = 91; +FlinkSqlLexer.DROP = 92; +FlinkSqlLexer.UNION = 93; +FlinkSqlLexer.EXCEPT = 94; +FlinkSqlLexer.SETMINUS = 95; +FlinkSqlLexer.INTERSECT = 96; +FlinkSqlLexer.TO = 97; +FlinkSqlLexer.TABLESAMPLE = 98; +FlinkSqlLexer.STRATIFY = 99; +FlinkSqlLexer.ALTER = 100; +FlinkSqlLexer.RENAME = 101; +FlinkSqlLexer.STRUCT = 102; +FlinkSqlLexer.COMMENT = 103; +FlinkSqlLexer.SET = 104; +FlinkSqlLexer.RESET = 105; +FlinkSqlLexer.DATA = 106; +FlinkSqlLexer.START = 107; +FlinkSqlLexer.TRANSACTION = 108; +FlinkSqlLexer.COMMIT = 109; +FlinkSqlLexer.ROLLBACK = 110; +FlinkSqlLexer.MACRO = 111; +FlinkSqlLexer.IGNORE = 112; +FlinkSqlLexer.BOTH = 113; +FlinkSqlLexer.LEADING = 114; +FlinkSqlLexer.TRAILING = 115; +FlinkSqlLexer.IF = 116; +FlinkSqlLexer.POSITION = 117; +FlinkSqlLexer.EXTRACT = 118; +FlinkSqlLexer.MINUS = 119; +FlinkSqlLexer.DIV = 120; +FlinkSqlLexer.PERCENTLIT = 121; +FlinkSqlLexer.BUCKET = 122; +FlinkSqlLexer.OUT = 123; +FlinkSqlLexer.OF = 124; +FlinkSqlLexer.SORT = 125; +FlinkSqlLexer.CLUSTER = 126; +FlinkSqlLexer.DISTRIBUTE = 127; +FlinkSqlLexer.OVERWRITE = 128; +FlinkSqlLexer.TRANSFORM = 129; +FlinkSqlLexer.REDUCE = 130; +FlinkSqlLexer.USING = 131; +FlinkSqlLexer.SERDE = 132; +FlinkSqlLexer.SERDEPROPERTIES = 133; +FlinkSqlLexer.RECORDREADER = 134; +FlinkSqlLexer.RECORDWRITER = 135; +FlinkSqlLexer.DELIMITED = 136; +FlinkSqlLexer.FIELDS = 137; +FlinkSqlLexer.TERMINATED = 138; +FlinkSqlLexer.COLLECTION = 139; +FlinkSqlLexer.ITEMS = 140; +FlinkSqlLexer.KEYS = 141; +FlinkSqlLexer.ESCAPED = 142; +FlinkSqlLexer.LINES = 143; +FlinkSqlLexer.SEPARATED = 144; +FlinkSqlLexer.FUNCTION = 145; +FlinkSqlLexer.EXTENDED = 146; +FlinkSqlLexer.REFRESH = 147; +FlinkSqlLexer.CLEAR = 148; +FlinkSqlLexer.CACHE = 149; +FlinkSqlLexer.UNCACHE = 150; +FlinkSqlLexer.LAZY = 151; +FlinkSqlLexer.FORMATTED = 152; +FlinkSqlLexer.GLOBAL = 153; +FlinkSqlLexer.TEMPORARY = 154; +FlinkSqlLexer.OPTIONS = 155; +FlinkSqlLexer.UNSET = 156; +FlinkSqlLexer.TBLPROPERTIES = 157; +FlinkSqlLexer.DBPROPERTIES = 158; +FlinkSqlLexer.BUCKETS = 159; +FlinkSqlLexer.SKEWED = 160; +FlinkSqlLexer.STORED = 161; +FlinkSqlLexer.DIRECTORIES = 162; +FlinkSqlLexer.LOCATION = 163; +FlinkSqlLexer.EXCHANGE = 164; +FlinkSqlLexer.ARCHIVE = 165; +FlinkSqlLexer.UNARCHIVE = 166; +FlinkSqlLexer.FILEFORMAT = 167; +FlinkSqlLexer.TOUCH = 168; +FlinkSqlLexer.COMPACT = 169; +FlinkSqlLexer.CONCATENATE = 170; +FlinkSqlLexer.CHANGE = 171; +FlinkSqlLexer.CASCADE = 172; +FlinkSqlLexer.CONSTRAINT = 173; +FlinkSqlLexer.RESTRICT = 174; +FlinkSqlLexer.CLUSTERED = 175; +FlinkSqlLexer.SORTED = 176; +FlinkSqlLexer.PURGE = 177; +FlinkSqlLexer.INPUTFORMAT = 178; +FlinkSqlLexer.OUTPUTFORMAT = 179; +FlinkSqlLexer.DATABASE = 180; +FlinkSqlLexer.DATABASES = 181; +FlinkSqlLexer.DFS = 182; +FlinkSqlLexer.TRUNCATE = 183; +FlinkSqlLexer.ANALYZE = 184; +FlinkSqlLexer.COMPUTE = 185; +FlinkSqlLexer.LIST = 186; +FlinkSqlLexer.STATISTICS = 187; +FlinkSqlLexer.PARTITIONED = 188; +FlinkSqlLexer.EXTERNAL = 189; +FlinkSqlLexer.DEFINED = 190; +FlinkSqlLexer.REVOKE = 191; +FlinkSqlLexer.GRANT = 192; +FlinkSqlLexer.LOCK = 193; +FlinkSqlLexer.UNLOCK = 194; +FlinkSqlLexer.MSCK = 195; +FlinkSqlLexer.REPAIR = 196; +FlinkSqlLexer.RECOVER = 197; +FlinkSqlLexer.EXPORT = 198; +FlinkSqlLexer.IMPORT = 199; +FlinkSqlLexer.LOAD = 200; +FlinkSqlLexer.ROLE = 201; +FlinkSqlLexer.ROLES = 202; +FlinkSqlLexer.COMPACTIONS = 203; +FlinkSqlLexer.PRINCIPALS = 204; +FlinkSqlLexer.TRANSACTIONS = 205; +FlinkSqlLexer.INDEX = 206; +FlinkSqlLexer.INDEXES = 207; +FlinkSqlLexer.LOCKS = 208; +FlinkSqlLexer.OPTION = 209; +FlinkSqlLexer.ANTI = 210; +FlinkSqlLexer.LOCAL = 211; +FlinkSqlLexer.INPATH = 212; +FlinkSqlLexer.WATERMARK = 213; +FlinkSqlLexer.UNNEST = 214; +FlinkSqlLexer.MATCH = 215; +FlinkSqlLexer.NEXT = 216; +FlinkSqlLexer.WITHIN = 217; +FlinkSqlLexer.WS = 218; +FlinkSqlLexer.SYSTEM = 219; +FlinkSqlLexer.INCLUDING = 220; +FlinkSqlLexer.EXCLUDING = 221; +FlinkSqlLexer.CONSTRAINTS = 222; +FlinkSqlLexer.GENERATED = 223; +FlinkSqlLexer.CATALOG = 224; +FlinkSqlLexer.LANGUAGE = 225; +FlinkSqlLexer.CATALOGS = 226; +FlinkSqlLexer.VIEWS = 227; +FlinkSqlLexer.PRIMARY = 228; +FlinkSqlLexer.KEY = 229; +FlinkSqlLexer.PERIOD = 230; +FlinkSqlLexer.SYSTEM_TIME = 231; +FlinkSqlLexer.STRING = 232; +FlinkSqlLexer.ARRAY = 233; +FlinkSqlLexer.MAP = 234; +FlinkSqlLexer.CHAR = 235; +FlinkSqlLexer.VARCHAR = 236; +FlinkSqlLexer.BINARY = 237; +FlinkSqlLexer.VARBINARY = 238; +FlinkSqlLexer.BYTES = 239; +FlinkSqlLexer.DECIMAL = 240; +FlinkSqlLexer.TINYINT = 241; +FlinkSqlLexer.SMALLINT = 242; +FlinkSqlLexer.INT = 243; +FlinkSqlLexer.BIGINT = 244; +FlinkSqlLexer.FLOAT = 245; +FlinkSqlLexer.DOUBLE = 246; +FlinkSqlLexer.DATE = 247; +FlinkSqlLexer.TIME = 248; +FlinkSqlLexer.TIMESTAMP = 249; +FlinkSqlLexer.MULTISET = 250; +FlinkSqlLexer.BOOLEAN = 251; +FlinkSqlLexer.RAW = 252; +FlinkSqlLexer.ROW = 253; +FlinkSqlLexer.NULL = 254; +FlinkSqlLexer.DATETIME = 255; +FlinkSqlLexer.EQUAL_SYMBOL = 256; +FlinkSqlLexer.GREATER_SYMBOL = 257; +FlinkSqlLexer.LESS_SYMBOL = 258; +FlinkSqlLexer.EXCLAMATION_SYMBOL = 259; +FlinkSqlLexer.BIT_NOT_OP = 260; +FlinkSqlLexer.BIT_OR_OP = 261; +FlinkSqlLexer.BIT_AND_OP = 262; +FlinkSqlLexer.BIT_XOR_OP = 263; +FlinkSqlLexer.DOT = 264; +FlinkSqlLexer.LS_BRACKET = 265; +FlinkSqlLexer.RS_BRACKET = 266; +FlinkSqlLexer.LR_BRACKET = 267; +FlinkSqlLexer.RR_BRACKET = 268; +FlinkSqlLexer.COMMA = 269; +FlinkSqlLexer.SEMICOLON = 270; +FlinkSqlLexer.AT_SIGN = 271; +FlinkSqlLexer.SINGLE_QUOTE_SYMB = 272; +FlinkSqlLexer.DOUBLE_QUOTE_SYMB = 273; +FlinkSqlLexer.REVERSE_QUOTE_SYMB = 274; +FlinkSqlLexer.COLON_SYMB = 275; +FlinkSqlLexer.ASTERISK_SIGN = 276; +FlinkSqlLexer.UNDERLINE_SIGN = 277; +FlinkSqlLexer.HYPNEN_SIGN = 278; +FlinkSqlLexer.ADD_SIGN = 279; +FlinkSqlLexer.PENCENT_SIGN = 280; +FlinkSqlLexer.DOUBLE_VERTICAL_SIGN = 281; +FlinkSqlLexer.DOUBLE_HYPNEN_SIGN = 282; +FlinkSqlLexer.SLASH_SIGN = 283; +FlinkSqlLexer.DOT_ID = 284; +FlinkSqlLexer.PLUS_DOT_ID = 285; +FlinkSqlLexer.STRING_LITERAL = 286; +FlinkSqlLexer.DIG_LITERAL = 287; +FlinkSqlLexer.REAL_LITERAL = 288; +FlinkSqlLexer.BIT_STRING = 289; +FlinkSqlLexer.ID_LITERAL = 290; +FlinkSqlLexer.PLUS_ID_LITERAL = 291; + +FlinkSqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; + +FlinkSqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; + +FlinkSqlLexer.prototype.literalNames = [ null, null, null, null, "'SELECT'", + "'FROM'", "'ADD'", "'AS'", "'ALL'", + "'ANY'", "'DISTINCT'", "'WHERE'", + "'GROUP'", "'BY'", "'GROUPING'", + "'SETS'", "'CUBE'", "'ROLLUP'", + "'ORDER'", "'HAVING'", "'LIMIT'", + "'AT'", "'OR'", "'AND'", "'IN'", + "'NOT'", "'NO'", "'EXISTS'", "'BETWEEN'", + "'LIKE'", "'RLIKE'", "'IS'", "'TRUE'", + "'FALSE'", "'NULLS'", "'ASC'", + "'DESC'", "'FOR'", "'INTERVAL'", + "'CASE'", "'WHEN'", "'THEN'", "'ELSE'", + "'END'", "'JOIN'", "'CROSS'", "'OUTER'", + "'INNER'", "'LEFT'", "'SEMI'", + "'RIGHT'", "'FULL'", "'NATURAL'", + "'ON'", "'PIVOT'", "'LATERAL'", + "'WINDOW'", "'OVER'", "'PARTITION'", + "'RANGE'", "'ROWS'", "'UNBOUNDED'", + "'PRECEDING'", "'FOLLOWING'", "'CURRENT'", + "'FIRST'", "'AFTER'", "'LAST'", + "'WITH'", "'VALUES'", "'CREATE'", + "'TABLE'", "'DIRECTORY'", "'VIEW'", + "'REPLACE'", "'INSERT'", "'DELETE'", + "'INTO'", "'DESCRIBE'", "'EXPLAIN'", + "'FORMAT'", "'LOGICAL'", "'CODEGEN'", + "'COST'", "'CAST'", "'SHOW'", "'TABLES'", + "'COLUMNS'", "'COLUMN'", "'USE'", + "'PARTITIONS'", "'FUNCTIONS'", + "'DROP'", "'UNION'", "'EXCEPT'", + "'SETMINUS'", "'INTERSECT'", "'TO'", + "'TABLESAMPLE'", "'STRATIFY'", + "'ALTER'", "'RENAME'", "'STRUCT'", + "'COMMENT'", "'SET'", "'RESET'", + "'DATA'", "'START'", "'TRANSACTION'", + "'COMMIT'", "'ROLLBACK'", "'MACRO'", + "'IGNORE'", "'BOTH'", "'LEADING'", + "'TRAILING'", "'IF'", "'POSITION'", + "'EXTRACT'", "'MINUS'", "'DIV'", + "'PERCENTLIT'", "'BUCKET'", "'OUT'", + "'OF'", "'SORT'", "'CLUSTER'", + "'DISTRIBUTE'", "'OVERWRITE'", + "'TRANSFORM'", "'REDUCE'", "'USING'", + "'SERDE'", "'SERDEPROPERTIES'", + "'RECORDREADER'", "'RECORDWRITER'", + "'DELIMITED'", "'FIELDS'", "'TERMINATED'", + "'COLLECTION'", "'ITEMS'", "'KEYS'", + "'ESCAPED'", "'LINES'", "'SEPARATED'", + "'FUNCTION'", "'EXTENDED'", "'REFRESH'", + "'CLEAR'", "'CACHE'", "'UNCACHE'", + "'LAZY'", "'FORMATTED'", "'GLOBAL'", + "'TEMPORARY'", "'OPTIONS'", "'UNSET'", + "'TBLPROPERTIES'", "'DBPROPERTIES'", + "'BUCKETS'", "'SKEWED'", "'STORED'", + "'DIRECTORIES'", "'LOCATION'", + "'EXCHANGE'", "'ARCHIVE'", "'UNARCHIVE'", + "'FILEFORMAT'", "'TOUCH'", "'COMPACT'", + "'CONCATENATE'", "'CHANGE'", "'CASCADE'", + "'CONSTRAINT'", "'RESTRICT'", "'CLUSTERED'", + "'SORTED'", "'PURGE'", "'INPUTFORMAT'", + "'OUTPUTFORMAT'", "'DATABASE'", + "'DATABASES'", "'DFS'", "'TRUNCATE'", + "'ANALYZE'", "'COMPUTE'", "'LIST'", + "'STATISTICS'", "'PARTITIONED'", + "'EXTERNAL'", "'DEFINED'", "'REVOKE'", + "'GRANT'", "'LOCK'", "'UNLOCK'", + "'MSCK'", "'REPAIR'", "'RECOVER'", + "'EXPORT'", "'IMPORT'", "'LOAD'", + "'ROLE'", "'ROLES'", "'COMPACTIONS'", + "'PRINCIPALS'", "'TRANSACTIONS'", + "'INDEX'", "'INDEXES'", "'LOCKS'", + "'OPTION'", "'ANTI'", "'LOCAL'", + "'INPATH'", "'WATERMARK'", "'UNNEST'", + "'MATCH'", "'NEXT'", "'WITHIN'", + "'WS'", "'SYSTEM'", "'INCLUDING'", + "'EXCLUDING'", "'CONSTRAINTS'", + "'GENERATED'", "'CATALOG'", "'LANGUAGE'", + "'CATALOGS'", "'VIEWS'", "'PRIMARY'", + "'KEY'", "'PERIOD'", "'SYSTEM_TIME'", + "'STRING'", "'ARRAY'", "'MAP'", + "'CHAR'", "'VARCHAR'", "'BINARY'", + "'VARBINARY'", "'BYTES'", "'DECIMAL'", + "'TINYINT'", "'SMALLINT'", "'INT'", + "'BIGINT'", "'FLOAT'", "'DOUBLE'", + "'DATE'", "'TIME'", "'TIMESTAMP'", + "'MULTISET'", "'BOOLEAN'", "'RAW'", + "'ROW'", "'NULL'", "'DATETIME'", + "'='", "'>'", "'<'", "'!'", "'~'", + "'|'", "'&'", "'^'", "'.'", "'['", + "']'", "'('", "')'", "','", "';'", + "'@'", "'''", "'\"'", "'`'", "':'", + "'*'", "'_'", "'-'", "'+'", "'%'", + "'||'", "'--'", "'/'" ]; + +FlinkSqlLexer.prototype.symbolicNames = [ null, "SPACE", "COMMENT_INPUT", + "LINE_COMMENT", "SELECT", "FROM", + "ADD", "AS", "ALL", "ANY", "DISTINCT", + "WHERE", "GROUP", "BY", "GROUPING", + "SETS", "CUBE", "ROLLUP", "ORDER", + "HAVING", "LIMIT", "AT", "OR", + "AND", "IN", "NOT", "NO", "EXISTS", + "BETWEEN", "LIKE", "RLIKE", "IS", + "TRUE", "FALSE", "NULLS", "ASC", + "DESC", "FOR", "INTERVAL", "CASE", + "WHEN", "THEN", "ELSE", "END", + "JOIN", "CROSS", "OUTER", "INNER", + "LEFT", "SEMI", "RIGHT", "FULL", + "NATURAL", "ON", "PIVOT", "LATERAL", + "WINDOW", "OVER", "PARTITION", + "RANGE", "ROWS", "UNBOUNDED", + "PRECEDING", "FOLLOWING", "CURRENT", + "FIRST", "AFTER", "LAST", "WITH", + "VALUES", "CREATE", "TABLE", "DIRECTORY", + "VIEW", "REPLACE", "INSERT", "DELETE", + "INTO", "DESCRIBE", "EXPLAIN", + "FORMAT", "LOGICAL", "CODEGEN", + "COST", "CAST", "SHOW", "TABLES", + "COLUMNS", "COLUMN", "USE", "PARTITIONS", + "FUNCTIONS", "DROP", "UNION", + "EXCEPT", "SETMINUS", "INTERSECT", + "TO", "TABLESAMPLE", "STRATIFY", + "ALTER", "RENAME", "STRUCT", "COMMENT", + "SET", "RESET", "DATA", "START", + "TRANSACTION", "COMMIT", "ROLLBACK", + "MACRO", "IGNORE", "BOTH", "LEADING", + "TRAILING", "IF", "POSITION", + "EXTRACT", "MINUS", "DIV", "PERCENTLIT", + "BUCKET", "OUT", "OF", "SORT", + "CLUSTER", "DISTRIBUTE", "OVERWRITE", + "TRANSFORM", "REDUCE", "USING", + "SERDE", "SERDEPROPERTIES", "RECORDREADER", + "RECORDWRITER", "DELIMITED", "FIELDS", + "TERMINATED", "COLLECTION", "ITEMS", + "KEYS", "ESCAPED", "LINES", "SEPARATED", + "FUNCTION", "EXTENDED", "REFRESH", + "CLEAR", "CACHE", "UNCACHE", "LAZY", + "FORMATTED", "GLOBAL", "TEMPORARY", + "OPTIONS", "UNSET", "TBLPROPERTIES", + "DBPROPERTIES", "BUCKETS", "SKEWED", + "STORED", "DIRECTORIES", "LOCATION", + "EXCHANGE", "ARCHIVE", "UNARCHIVE", + "FILEFORMAT", "TOUCH", "COMPACT", + "CONCATENATE", "CHANGE", "CASCADE", + "CONSTRAINT", "RESTRICT", "CLUSTERED", + "SORTED", "PURGE", "INPUTFORMAT", + "OUTPUTFORMAT", "DATABASE", "DATABASES", + "DFS", "TRUNCATE", "ANALYZE", + "COMPUTE", "LIST", "STATISTICS", + "PARTITIONED", "EXTERNAL", "DEFINED", + "REVOKE", "GRANT", "LOCK", "UNLOCK", + "MSCK", "REPAIR", "RECOVER", "EXPORT", + "IMPORT", "LOAD", "ROLE", "ROLES", + "COMPACTIONS", "PRINCIPALS", "TRANSACTIONS", + "INDEX", "INDEXES", "LOCKS", "OPTION", + "ANTI", "LOCAL", "INPATH", "WATERMARK", + "UNNEST", "MATCH", "NEXT", "WITHIN", + "WS", "SYSTEM", "INCLUDING", "EXCLUDING", + "CONSTRAINTS", "GENERATED", "CATALOG", + "LANGUAGE", "CATALOGS", "VIEWS", + "PRIMARY", "KEY", "PERIOD", "SYSTEM_TIME", + "STRING", "ARRAY", "MAP", "CHAR", + "VARCHAR", "BINARY", "VARBINARY", + "BYTES", "DECIMAL", "TINYINT", + "SMALLINT", "INT", "BIGINT", "FLOAT", + "DOUBLE", "DATE", "TIME", "TIMESTAMP", + "MULTISET", "BOOLEAN", "RAW", + "ROW", "NULL", "DATETIME", "EQUAL_SYMBOL", + "GREATER_SYMBOL", "LESS_SYMBOL", + "EXCLAMATION_SYMBOL", "BIT_NOT_OP", + "BIT_OR_OP", "BIT_AND_OP", "BIT_XOR_OP", + "DOT", "LS_BRACKET", "RS_BRACKET", + "LR_BRACKET", "RR_BRACKET", "COMMA", + "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", + "COLON_SYMB", "ASTERISK_SIGN", + "UNDERLINE_SIGN", "HYPNEN_SIGN", + "ADD_SIGN", "PENCENT_SIGN", "DOUBLE_VERTICAL_SIGN", + "DOUBLE_HYPNEN_SIGN", "SLASH_SIGN", + "DOT_ID", "PLUS_DOT_ID", "STRING_LITERAL", + "DIG_LITERAL", "REAL_LITERAL", + "BIT_STRING", "ID_LITERAL", "PLUS_ID_LITERAL" ]; + +FlinkSqlLexer.prototype.ruleNames = [ "SPACE", "COMMENT_INPUT", "LINE_COMMENT", + "SELECT", "FROM", "ADD", "AS", "ALL", + "ANY", "DISTINCT", "WHERE", "GROUP", + "BY", "GROUPING", "SETS", "CUBE", + "ROLLUP", "ORDER", "HAVING", "LIMIT", + "AT", "OR", "AND", "IN", "NOT", "NO", + "EXISTS", "BETWEEN", "LIKE", "RLIKE", + "IS", "TRUE", "FALSE", "NULLS", "ASC", + "DESC", "FOR", "INTERVAL", "CASE", + "WHEN", "THEN", "ELSE", "END", "JOIN", + "CROSS", "OUTER", "INNER", "LEFT", + "SEMI", "RIGHT", "FULL", "NATURAL", + "ON", "PIVOT", "LATERAL", "WINDOW", + "OVER", "PARTITION", "RANGE", "ROWS", + "UNBOUNDED", "PRECEDING", "FOLLOWING", + "CURRENT", "FIRST", "AFTER", "LAST", + "WITH", "VALUES", "CREATE", "TABLE", + "DIRECTORY", "VIEW", "REPLACE", "INSERT", + "DELETE", "INTO", "DESCRIBE", "EXPLAIN", + "FORMAT", "LOGICAL", "CODEGEN", "COST", + "CAST", "SHOW", "TABLES", "COLUMNS", + "COLUMN", "USE", "PARTITIONS", "FUNCTIONS", + "DROP", "UNION", "EXCEPT", "SETMINUS", + "INTERSECT", "TO", "TABLESAMPLE", + "STRATIFY", "ALTER", "RENAME", "STRUCT", + "COMMENT", "SET", "RESET", "DATA", + "START", "TRANSACTION", "COMMIT", + "ROLLBACK", "MACRO", "IGNORE", "BOTH", + "LEADING", "TRAILING", "IF", "POSITION", + "EXTRACT", "MINUS", "DIV", "PERCENTLIT", + "BUCKET", "OUT", "OF", "SORT", "CLUSTER", + "DISTRIBUTE", "OVERWRITE", "TRANSFORM", + "REDUCE", "USING", "SERDE", "SERDEPROPERTIES", + "RECORDREADER", "RECORDWRITER", "DELIMITED", + "FIELDS", "TERMINATED", "COLLECTION", + "ITEMS", "KEYS", "ESCAPED", "LINES", + "SEPARATED", "FUNCTION", "EXTENDED", + "REFRESH", "CLEAR", "CACHE", "UNCACHE", + "LAZY", "FORMATTED", "GLOBAL", "TEMPORARY", + "OPTIONS", "UNSET", "TBLPROPERTIES", + "DBPROPERTIES", "BUCKETS", "SKEWED", + "STORED", "DIRECTORIES", "LOCATION", + "EXCHANGE", "ARCHIVE", "UNARCHIVE", + "FILEFORMAT", "TOUCH", "COMPACT", + "CONCATENATE", "CHANGE", "CASCADE", + "CONSTRAINT", "RESTRICT", "CLUSTERED", + "SORTED", "PURGE", "INPUTFORMAT", + "OUTPUTFORMAT", "DATABASE", "DATABASES", + "DFS", "TRUNCATE", "ANALYZE", "COMPUTE", + "LIST", "STATISTICS", "PARTITIONED", + "EXTERNAL", "DEFINED", "REVOKE", "GRANT", + "LOCK", "UNLOCK", "MSCK", "REPAIR", + "RECOVER", "EXPORT", "IMPORT", "LOAD", + "ROLE", "ROLES", "COMPACTIONS", "PRINCIPALS", + "TRANSACTIONS", "INDEX", "INDEXES", + "LOCKS", "OPTION", "ANTI", "LOCAL", + "INPATH", "WATERMARK", "UNNEST", "MATCH", + "NEXT", "WITHIN", "WS", "SYSTEM", + "INCLUDING", "EXCLUDING", "CONSTRAINTS", + "GENERATED", "CATALOG", "LANGUAGE", + "CATALOGS", "VIEWS", "PRIMARY", "KEY", + "PERIOD", "SYSTEM_TIME", "STRING", + "ARRAY", "MAP", "CHAR", "VARCHAR", + "BINARY", "VARBINARY", "BYTES", "DECIMAL", + "TINYINT", "SMALLINT", "INT", "BIGINT", + "FLOAT", "DOUBLE", "DATE", "TIME", + "TIMESTAMP", "MULTISET", "BOOLEAN", + "RAW", "ROW", "NULL", "DATETIME", + "EQUAL_SYMBOL", "GREATER_SYMBOL", + "LESS_SYMBOL", "EXCLAMATION_SYMBOL", + "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", + "BIT_XOR_OP", "DOT", "LS_BRACKET", + "RS_BRACKET", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", + "COLON_SYMB", "ASTERISK_SIGN", "UNDERLINE_SIGN", + "HYPNEN_SIGN", "ADD_SIGN", "PENCENT_SIGN", + "DOUBLE_VERTICAL_SIGN", "DOUBLE_HYPNEN_SIGN", + "SLASH_SIGN", "DOT_ID", "PLUS_DOT_ID", + "STRING_LITERAL", "DIG_LITERAL", "REAL_LITERAL", + "BIT_STRING", "ID_LITERAL", "PLUS_ID_LITERAL", + "EXPONENT_NUM_PART", "ID_LITERAL_FRAG", + "PLUS_ID_LITERAL_FRAG", "DEC_DIGIT", + "DEC_LETTER", "DQUOTA_STRING", "SQUOTA_STRING", + "BIT_STRING_L", "BQUOTA_STRING" ]; + +FlinkSqlLexer.prototype.grammarFileName = "FlinkSqlLexer.g4"; + + +exports.FlinkSqlLexer = FlinkSqlLexer; + diff --git a/src/lib/flinksql/FlinkSqlLexer.tokens b/src/lib/flinksql/FlinkSqlLexer.tokens new file mode 100644 index 0000000..dc7c732 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlLexer.tokens @@ -0,0 +1,571 @@ +SPACE=1 +COMMENT_INPUT=2 +LINE_COMMENT=3 +SELECT=4 +FROM=5 +ADD=6 +AS=7 +ALL=8 +ANY=9 +DISTINCT=10 +WHERE=11 +GROUP=12 +BY=13 +GROUPING=14 +SETS=15 +CUBE=16 +ROLLUP=17 +ORDER=18 +HAVING=19 +LIMIT=20 +AT=21 +OR=22 +AND=23 +IN=24 +NOT=25 +NO=26 +EXISTS=27 +BETWEEN=28 +LIKE=29 +RLIKE=30 +IS=31 +TRUE=32 +FALSE=33 +NULLS=34 +ASC=35 +DESC=36 +FOR=37 +INTERVAL=38 +CASE=39 +WHEN=40 +THEN=41 +ELSE=42 +END=43 +JOIN=44 +CROSS=45 +OUTER=46 +INNER=47 +LEFT=48 +SEMI=49 +RIGHT=50 +FULL=51 +NATURAL=52 +ON=53 +PIVOT=54 +LATERAL=55 +WINDOW=56 +OVER=57 +PARTITION=58 +RANGE=59 +ROWS=60 +UNBOUNDED=61 +PRECEDING=62 +FOLLOWING=63 +CURRENT=64 +FIRST=65 +AFTER=66 +LAST=67 +WITH=68 +VALUES=69 +CREATE=70 +TABLE=71 +DIRECTORY=72 +VIEW=73 +REPLACE=74 +INSERT=75 +DELETE=76 +INTO=77 +DESCRIBE=78 +EXPLAIN=79 +FORMAT=80 +LOGICAL=81 +CODEGEN=82 +COST=83 +CAST=84 +SHOW=85 +TABLES=86 +COLUMNS=87 +COLUMN=88 +USE=89 +PARTITIONS=90 +FUNCTIONS=91 +DROP=92 +UNION=93 +EXCEPT=94 +SETMINUS=95 +INTERSECT=96 +TO=97 +TABLESAMPLE=98 +STRATIFY=99 +ALTER=100 +RENAME=101 +STRUCT=102 +COMMENT=103 +SET=104 +RESET=105 +DATA=106 +START=107 +TRANSACTION=108 +COMMIT=109 +ROLLBACK=110 +MACRO=111 +IGNORE=112 +BOTH=113 +LEADING=114 +TRAILING=115 +IF=116 +POSITION=117 +EXTRACT=118 +MINUS=119 +DIV=120 +PERCENTLIT=121 +BUCKET=122 +OUT=123 +OF=124 +SORT=125 +CLUSTER=126 +DISTRIBUTE=127 +OVERWRITE=128 +TRANSFORM=129 +REDUCE=130 +USING=131 +SERDE=132 +SERDEPROPERTIES=133 +RECORDREADER=134 +RECORDWRITER=135 +DELIMITED=136 +FIELDS=137 +TERMINATED=138 +COLLECTION=139 +ITEMS=140 +KEYS=141 +ESCAPED=142 +LINES=143 +SEPARATED=144 +FUNCTION=145 +EXTENDED=146 +REFRESH=147 +CLEAR=148 +CACHE=149 +UNCACHE=150 +LAZY=151 +FORMATTED=152 +GLOBAL=153 +TEMPORARY=154 +OPTIONS=155 +UNSET=156 +TBLPROPERTIES=157 +DBPROPERTIES=158 +BUCKETS=159 +SKEWED=160 +STORED=161 +DIRECTORIES=162 +LOCATION=163 +EXCHANGE=164 +ARCHIVE=165 +UNARCHIVE=166 +FILEFORMAT=167 +TOUCH=168 +COMPACT=169 +CONCATENATE=170 +CHANGE=171 +CASCADE=172 +CONSTRAINT=173 +RESTRICT=174 +CLUSTERED=175 +SORTED=176 +PURGE=177 +INPUTFORMAT=178 +OUTPUTFORMAT=179 +DATABASE=180 +DATABASES=181 +DFS=182 +TRUNCATE=183 +ANALYZE=184 +COMPUTE=185 +LIST=186 +STATISTICS=187 +PARTITIONED=188 +EXTERNAL=189 +DEFINED=190 +REVOKE=191 +GRANT=192 +LOCK=193 +UNLOCK=194 +MSCK=195 +REPAIR=196 +RECOVER=197 +EXPORT=198 +IMPORT=199 +LOAD=200 +ROLE=201 +ROLES=202 +COMPACTIONS=203 +PRINCIPALS=204 +TRANSACTIONS=205 +INDEX=206 +INDEXES=207 +LOCKS=208 +OPTION=209 +ANTI=210 +LOCAL=211 +INPATH=212 +WATERMARK=213 +UNNEST=214 +MATCH=215 +NEXT=216 +WITHIN=217 +WS=218 +SYSTEM=219 +INCLUDING=220 +EXCLUDING=221 +CONSTRAINTS=222 +GENERATED=223 +CATALOG=224 +LANGUAGE=225 +CATALOGS=226 +VIEWS=227 +PRIMARY=228 +KEY=229 +PERIOD=230 +SYSTEM_TIME=231 +STRING=232 +ARRAY=233 +MAP=234 +CHAR=235 +VARCHAR=236 +BINARY=237 +VARBINARY=238 +BYTES=239 +DECIMAL=240 +TINYINT=241 +SMALLINT=242 +INT=243 +BIGINT=244 +FLOAT=245 +DOUBLE=246 +DATE=247 +TIME=248 +TIMESTAMP=249 +MULTISET=250 +BOOLEAN=251 +RAW=252 +ROW=253 +NULL=254 +DATETIME=255 +EQUAL_SYMBOL=256 +GREATER_SYMBOL=257 +LESS_SYMBOL=258 +EXCLAMATION_SYMBOL=259 +BIT_NOT_OP=260 +BIT_OR_OP=261 +BIT_AND_OP=262 +BIT_XOR_OP=263 +DOT=264 +LS_BRACKET=265 +RS_BRACKET=266 +LR_BRACKET=267 +RR_BRACKET=268 +COMMA=269 +SEMICOLON=270 +AT_SIGN=271 +SINGLE_QUOTE_SYMB=272 +DOUBLE_QUOTE_SYMB=273 +REVERSE_QUOTE_SYMB=274 +COLON_SYMB=275 +ASTERISK_SIGN=276 +UNDERLINE_SIGN=277 +HYPNEN_SIGN=278 +ADD_SIGN=279 +PENCENT_SIGN=280 +DOUBLE_VERTICAL_SIGN=281 +DOUBLE_HYPNEN_SIGN=282 +SLASH_SIGN=283 +DOT_ID=284 +PLUS_DOT_ID=285 +STRING_LITERAL=286 +DIG_LITERAL=287 +REAL_LITERAL=288 +BIT_STRING=289 +ID_LITERAL=290 +PLUS_ID_LITERAL=291 +'SELECT'=4 +'FROM'=5 +'ADD'=6 +'AS'=7 +'ALL'=8 +'ANY'=9 +'DISTINCT'=10 +'WHERE'=11 +'GROUP'=12 +'BY'=13 +'GROUPING'=14 +'SETS'=15 +'CUBE'=16 +'ROLLUP'=17 +'ORDER'=18 +'HAVING'=19 +'LIMIT'=20 +'AT'=21 +'OR'=22 +'AND'=23 +'IN'=24 +'NOT'=25 +'NO'=26 +'EXISTS'=27 +'BETWEEN'=28 +'LIKE'=29 +'RLIKE'=30 +'IS'=31 +'TRUE'=32 +'FALSE'=33 +'NULLS'=34 +'ASC'=35 +'DESC'=36 +'FOR'=37 +'INTERVAL'=38 +'CASE'=39 +'WHEN'=40 +'THEN'=41 +'ELSE'=42 +'END'=43 +'JOIN'=44 +'CROSS'=45 +'OUTER'=46 +'INNER'=47 +'LEFT'=48 +'SEMI'=49 +'RIGHT'=50 +'FULL'=51 +'NATURAL'=52 +'ON'=53 +'PIVOT'=54 +'LATERAL'=55 +'WINDOW'=56 +'OVER'=57 +'PARTITION'=58 +'RANGE'=59 +'ROWS'=60 +'UNBOUNDED'=61 +'PRECEDING'=62 +'FOLLOWING'=63 +'CURRENT'=64 +'FIRST'=65 +'AFTER'=66 +'LAST'=67 +'WITH'=68 +'VALUES'=69 +'CREATE'=70 +'TABLE'=71 +'DIRECTORY'=72 +'VIEW'=73 +'REPLACE'=74 +'INSERT'=75 +'DELETE'=76 +'INTO'=77 +'DESCRIBE'=78 +'EXPLAIN'=79 +'FORMAT'=80 +'LOGICAL'=81 +'CODEGEN'=82 +'COST'=83 +'CAST'=84 +'SHOW'=85 +'TABLES'=86 +'COLUMNS'=87 +'COLUMN'=88 +'USE'=89 +'PARTITIONS'=90 +'FUNCTIONS'=91 +'DROP'=92 +'UNION'=93 +'EXCEPT'=94 +'SETMINUS'=95 +'INTERSECT'=96 +'TO'=97 +'TABLESAMPLE'=98 +'STRATIFY'=99 +'ALTER'=100 +'RENAME'=101 +'STRUCT'=102 +'COMMENT'=103 +'SET'=104 +'RESET'=105 +'DATA'=106 +'START'=107 +'TRANSACTION'=108 +'COMMIT'=109 +'ROLLBACK'=110 +'MACRO'=111 +'IGNORE'=112 +'BOTH'=113 +'LEADING'=114 +'TRAILING'=115 +'IF'=116 +'POSITION'=117 +'EXTRACT'=118 +'MINUS'=119 +'DIV'=120 +'PERCENTLIT'=121 +'BUCKET'=122 +'OUT'=123 +'OF'=124 +'SORT'=125 +'CLUSTER'=126 +'DISTRIBUTE'=127 +'OVERWRITE'=128 +'TRANSFORM'=129 +'REDUCE'=130 +'USING'=131 +'SERDE'=132 +'SERDEPROPERTIES'=133 +'RECORDREADER'=134 +'RECORDWRITER'=135 +'DELIMITED'=136 +'FIELDS'=137 +'TERMINATED'=138 +'COLLECTION'=139 +'ITEMS'=140 +'KEYS'=141 +'ESCAPED'=142 +'LINES'=143 +'SEPARATED'=144 +'FUNCTION'=145 +'EXTENDED'=146 +'REFRESH'=147 +'CLEAR'=148 +'CACHE'=149 +'UNCACHE'=150 +'LAZY'=151 +'FORMATTED'=152 +'GLOBAL'=153 +'TEMPORARY'=154 +'OPTIONS'=155 +'UNSET'=156 +'TBLPROPERTIES'=157 +'DBPROPERTIES'=158 +'BUCKETS'=159 +'SKEWED'=160 +'STORED'=161 +'DIRECTORIES'=162 +'LOCATION'=163 +'EXCHANGE'=164 +'ARCHIVE'=165 +'UNARCHIVE'=166 +'FILEFORMAT'=167 +'TOUCH'=168 +'COMPACT'=169 +'CONCATENATE'=170 +'CHANGE'=171 +'CASCADE'=172 +'CONSTRAINT'=173 +'RESTRICT'=174 +'CLUSTERED'=175 +'SORTED'=176 +'PURGE'=177 +'INPUTFORMAT'=178 +'OUTPUTFORMAT'=179 +'DATABASE'=180 +'DATABASES'=181 +'DFS'=182 +'TRUNCATE'=183 +'ANALYZE'=184 +'COMPUTE'=185 +'LIST'=186 +'STATISTICS'=187 +'PARTITIONED'=188 +'EXTERNAL'=189 +'DEFINED'=190 +'REVOKE'=191 +'GRANT'=192 +'LOCK'=193 +'UNLOCK'=194 +'MSCK'=195 +'REPAIR'=196 +'RECOVER'=197 +'EXPORT'=198 +'IMPORT'=199 +'LOAD'=200 +'ROLE'=201 +'ROLES'=202 +'COMPACTIONS'=203 +'PRINCIPALS'=204 +'TRANSACTIONS'=205 +'INDEX'=206 +'INDEXES'=207 +'LOCKS'=208 +'OPTION'=209 +'ANTI'=210 +'LOCAL'=211 +'INPATH'=212 +'WATERMARK'=213 +'UNNEST'=214 +'MATCH'=215 +'NEXT'=216 +'WITHIN'=217 +'WS'=218 +'SYSTEM'=219 +'INCLUDING'=220 +'EXCLUDING'=221 +'CONSTRAINTS'=222 +'GENERATED'=223 +'CATALOG'=224 +'LANGUAGE'=225 +'CATALOGS'=226 +'VIEWS'=227 +'PRIMARY'=228 +'KEY'=229 +'PERIOD'=230 +'SYSTEM_TIME'=231 +'STRING'=232 +'ARRAY'=233 +'MAP'=234 +'CHAR'=235 +'VARCHAR'=236 +'BINARY'=237 +'VARBINARY'=238 +'BYTES'=239 +'DECIMAL'=240 +'TINYINT'=241 +'SMALLINT'=242 +'INT'=243 +'BIGINT'=244 +'FLOAT'=245 +'DOUBLE'=246 +'DATE'=247 +'TIME'=248 +'TIMESTAMP'=249 +'MULTISET'=250 +'BOOLEAN'=251 +'RAW'=252 +'ROW'=253 +'NULL'=254 +'DATETIME'=255 +'='=256 +'>'=257 +'<'=258 +'!'=259 +'~'=260 +'|'=261 +'&'=262 +'^'=263 +'.'=264 +'['=265 +']'=266 +'('=267 +')'=268 +','=269 +';'=270 +'@'=271 +'\''=272 +'"'=273 +'`'=274 +':'=275 +'*'=276 +'_'=277 +'-'=278 +'+'=279 +'%'=280 +'||'=281 +'--'=282 +'/'=283 diff --git a/src/lib/flinksql/FlinkSqlParser.interp b/src/lib/flinksql/FlinkSqlParser.interp new file mode 100644 index 0000000..28a5b21 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlParser.interp @@ -0,0 +1,709 @@ +token literal names: +null +null +null +null +'SELECT' +'FROM' +'ADD' +'AS' +'ALL' +'ANY' +'DISTINCT' +'WHERE' +'GROUP' +'BY' +'GROUPING' +'SETS' +'CUBE' +'ROLLUP' +'ORDER' +'HAVING' +'LIMIT' +'AT' +'OR' +'AND' +'IN' +'NOT' +'NO' +'EXISTS' +'BETWEEN' +'LIKE' +'RLIKE' +'IS' +'TRUE' +'FALSE' +'NULLS' +'ASC' +'DESC' +'FOR' +'INTERVAL' +'CASE' +'WHEN' +'THEN' +'ELSE' +'END' +'JOIN' +'CROSS' +'OUTER' +'INNER' +'LEFT' +'SEMI' +'RIGHT' +'FULL' +'NATURAL' +'ON' +'PIVOT' +'LATERAL' +'WINDOW' +'OVER' +'PARTITION' +'RANGE' +'ROWS' +'UNBOUNDED' +'PRECEDING' +'FOLLOWING' +'CURRENT' +'FIRST' +'AFTER' +'LAST' +'WITH' +'VALUES' +'CREATE' +'TABLE' +'DIRECTORY' +'VIEW' +'REPLACE' +'INSERT' +'DELETE' +'INTO' +'DESCRIBE' +'EXPLAIN' +'FORMAT' +'LOGICAL' +'CODEGEN' +'COST' +'CAST' +'SHOW' +'TABLES' +'COLUMNS' +'COLUMN' +'USE' +'PARTITIONS' +'FUNCTIONS' +'DROP' +'UNION' +'EXCEPT' +'SETMINUS' +'INTERSECT' +'TO' +'TABLESAMPLE' +'STRATIFY' +'ALTER' +'RENAME' +'STRUCT' +'COMMENT' +'SET' +'RESET' +'DATA' +'START' +'TRANSACTION' +'COMMIT' +'ROLLBACK' +'MACRO' +'IGNORE' +'BOTH' +'LEADING' +'TRAILING' +'IF' +'POSITION' +'EXTRACT' +'MINUS' +'DIV' +'PERCENTLIT' +'BUCKET' +'OUT' +'OF' +'SORT' +'CLUSTER' +'DISTRIBUTE' +'OVERWRITE' +'TRANSFORM' +'REDUCE' +'USING' +'SERDE' +'SERDEPROPERTIES' +'RECORDREADER' +'RECORDWRITER' +'DELIMITED' +'FIELDS' +'TERMINATED' +'COLLECTION' +'ITEMS' +'KEYS' +'ESCAPED' +'LINES' +'SEPARATED' +'FUNCTION' +'EXTENDED' +'REFRESH' +'CLEAR' +'CACHE' +'UNCACHE' +'LAZY' +'FORMATTED' +'GLOBAL' +'TEMPORARY' +'OPTIONS' +'UNSET' +'TBLPROPERTIES' +'DBPROPERTIES' +'BUCKETS' +'SKEWED' +'STORED' +'DIRECTORIES' +'LOCATION' +'EXCHANGE' +'ARCHIVE' +'UNARCHIVE' +'FILEFORMAT' +'TOUCH' +'COMPACT' +'CONCATENATE' +'CHANGE' +'CASCADE' +'CONSTRAINT' +'RESTRICT' +'CLUSTERED' +'SORTED' +'PURGE' +'INPUTFORMAT' +'OUTPUTFORMAT' +'DATABASE' +'DATABASES' +'DFS' +'TRUNCATE' +'ANALYZE' +'COMPUTE' +'LIST' +'STATISTICS' +'PARTITIONED' +'EXTERNAL' +'DEFINED' +'REVOKE' +'GRANT' +'LOCK' +'UNLOCK' +'MSCK' +'REPAIR' +'RECOVER' +'EXPORT' +'IMPORT' +'LOAD' +'ROLE' +'ROLES' +'COMPACTIONS' +'PRINCIPALS' +'TRANSACTIONS' +'INDEX' +'INDEXES' +'LOCKS' +'OPTION' +'ANTI' +'LOCAL' +'INPATH' +'WATERMARK' +'UNNEST' +'MATCH' +'NEXT' +'WITHIN' +'WS' +'SYSTEM' +'INCLUDING' +'EXCLUDING' +'CONSTRAINTS' +'GENERATED' +'CATALOG' +'LANGUAGE' +'CATALOGS' +'VIEWS' +'PRIMARY' +'KEY' +'PERIOD' +'SYSTEM_TIME' +'STRING' +'ARRAY' +'MAP' +'CHAR' +'VARCHAR' +'BINARY' +'VARBINARY' +'BYTES' +'DECIMAL' +'TINYINT' +'SMALLINT' +'INT' +'BIGINT' +'FLOAT' +'DOUBLE' +'DATE' +'TIME' +'TIMESTAMP' +'MULTISET' +'BOOLEAN' +'RAW' +'ROW' +'NULL' +'DATETIME' +'=' +'>' +'<' +'!' +'~' +'|' +'&' +'^' +'.' +'[' +']' +'(' +')' +',' +';' +'@' +'\'' +'"' +'`' +':' +'*' +'_' +'-' +'+' +'%' +'||' +'--' +'/' +null +null +null +null +null +null +null +null + +token symbolic names: +null +SPACE +COMMENT_INPUT +LINE_COMMENT +SELECT +FROM +ADD +AS +ALL +ANY +DISTINCT +WHERE +GROUP +BY +GROUPING +SETS +CUBE +ROLLUP +ORDER +HAVING +LIMIT +AT +OR +AND +IN +NOT +NO +EXISTS +BETWEEN +LIKE +RLIKE +IS +TRUE +FALSE +NULLS +ASC +DESC +FOR +INTERVAL +CASE +WHEN +THEN +ELSE +END +JOIN +CROSS +OUTER +INNER +LEFT +SEMI +RIGHT +FULL +NATURAL +ON +PIVOT +LATERAL +WINDOW +OVER +PARTITION +RANGE +ROWS +UNBOUNDED +PRECEDING +FOLLOWING +CURRENT +FIRST +AFTER +LAST +WITH +VALUES +CREATE +TABLE +DIRECTORY +VIEW +REPLACE +INSERT +DELETE +INTO +DESCRIBE +EXPLAIN +FORMAT +LOGICAL +CODEGEN +COST +CAST +SHOW +TABLES +COLUMNS +COLUMN +USE +PARTITIONS +FUNCTIONS +DROP +UNION +EXCEPT +SETMINUS +INTERSECT +TO +TABLESAMPLE +STRATIFY +ALTER +RENAME +STRUCT +COMMENT +SET +RESET +DATA +START +TRANSACTION +COMMIT +ROLLBACK +MACRO +IGNORE +BOTH +LEADING +TRAILING +IF +POSITION +EXTRACT +MINUS +DIV +PERCENTLIT +BUCKET +OUT +OF +SORT +CLUSTER +DISTRIBUTE +OVERWRITE +TRANSFORM +REDUCE +USING +SERDE +SERDEPROPERTIES +RECORDREADER +RECORDWRITER +DELIMITED +FIELDS +TERMINATED +COLLECTION +ITEMS +KEYS +ESCAPED +LINES +SEPARATED +FUNCTION +EXTENDED +REFRESH +CLEAR +CACHE +UNCACHE +LAZY +FORMATTED +GLOBAL +TEMPORARY +OPTIONS +UNSET +TBLPROPERTIES +DBPROPERTIES +BUCKETS +SKEWED +STORED +DIRECTORIES +LOCATION +EXCHANGE +ARCHIVE +UNARCHIVE +FILEFORMAT +TOUCH +COMPACT +CONCATENATE +CHANGE +CASCADE +CONSTRAINT +RESTRICT +CLUSTERED +SORTED +PURGE +INPUTFORMAT +OUTPUTFORMAT +DATABASE +DATABASES +DFS +TRUNCATE +ANALYZE +COMPUTE +LIST +STATISTICS +PARTITIONED +EXTERNAL +DEFINED +REVOKE +GRANT +LOCK +UNLOCK +MSCK +REPAIR +RECOVER +EXPORT +IMPORT +LOAD +ROLE +ROLES +COMPACTIONS +PRINCIPALS +TRANSACTIONS +INDEX +INDEXES +LOCKS +OPTION +ANTI +LOCAL +INPATH +WATERMARK +UNNEST +MATCH +NEXT +WITHIN +WS +SYSTEM +INCLUDING +EXCLUDING +CONSTRAINTS +GENERATED +CATALOG +LANGUAGE +CATALOGS +VIEWS +PRIMARY +KEY +PERIOD +SYSTEM_TIME +STRING +ARRAY +MAP +CHAR +VARCHAR +BINARY +VARBINARY +BYTES +DECIMAL +TINYINT +SMALLINT +INT +BIGINT +FLOAT +DOUBLE +DATE +TIME +TIMESTAMP +MULTISET +BOOLEAN +RAW +ROW +NULL +DATETIME +EQUAL_SYMBOL +GREATER_SYMBOL +LESS_SYMBOL +EXCLAMATION_SYMBOL +BIT_NOT_OP +BIT_OR_OP +BIT_AND_OP +BIT_XOR_OP +DOT +LS_BRACKET +RS_BRACKET +LR_BRACKET +RR_BRACKET +COMMA +SEMICOLON +AT_SIGN +SINGLE_QUOTE_SYMB +DOUBLE_QUOTE_SYMB +REVERSE_QUOTE_SYMB +COLON_SYMB +ASTERISK_SIGN +UNDERLINE_SIGN +HYPNEN_SIGN +ADD_SIGN +PENCENT_SIGN +DOUBLE_VERTICAL_SIGN +DOUBLE_HYPNEN_SIGN +SLASH_SIGN +DOT_ID +PLUS_DOT_ID +STRING_LITERAL +DIG_LITERAL +REAL_LITERAL +BIT_STRING +ID_LITERAL +PLUS_ID_LITERAL + +rule names: +program +statement +sqlStatements +sqlStatement +emptyStatement +ddlStatement +dmlStatement +describeStatement +explainStatement +useStatement +showStatememt +createTable +columnOptionDefinition +columnName +columnNameList +columnType +lengthOneDimension +commentSpec +watermarkDefinition +tableConstraint +selfDefinitionClause +partitionDefinition +transformList +transform +transformArgument +likeDefinition +likeOption +createCatalog +createDatabase +createView +createFunction +alterTable +renameDefinition +setKeyValueDefinition +alterDatabase +alterFunction +dropTable +dropDatabase +dropView +dropFunction +insertStatement +insertPartitionDefinition +valuesDefinition +valuesRowDefinition +queryStatement +valuesCaluse +selectStatement +selectClause +projectItemDefinition +fromClause +tableExpression +tableReference +tablePrimary +joinCondition +whereClause +groupByClause +groupItemDefinition +havingClause +orderByCaluse +orderItemDefition +limitClause +windowClause +namedWindow +windowSpec +sortItem +windowFrame +frameBound +expression +booleanExpression +predicate +valueExpression +primaryExpression +functionName +dereferenceDefinition +qualifiedName +interval +errorCapturingMultiUnitsInterval +multiUnitsInterval +errorCapturingUnitToUnitInterval +unitToUnitInterval +intervalValue +columnAlias +tableAlias +errorCapturingIdentifier +errorCapturingIdentifierExtra +identifierList +identifierSeq +identifier +strictIdentifier +unquotedIdentifier +quotedIdentifier +whenClause +uidList +uid +plusUid +withOption +ifNotExists +ifExists +tablePropertyList +tableProperty +tablePropertyKey +tablePropertyValue +logicalOperator +comparisonOperator +bitOperator +mathOperator +unaryOperator +fullColumnName +constant +stringLiteral +decimalLiteral +booleanLiteral +setQuantifier +ansiNonReserved +strictNonReserved +nonReserved + + +atn: +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 293, 1364, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 5, 4, 243, 10, 4, 3, 4, 7, 4, 246, 10, 4, 12, 4, 14, 4, 249, 11, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 257, 10, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 273, 10, 7, 3, 8, 3, 8, 5, 8, 277, 10, 8, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 5, 11, 289, 10, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 7, 13, 303, 10, 13, 12, 13, 14, 13, 306, 11, 13, 3, 13, 3, 13, 5, 13, 310, 10, 13, 3, 13, 3, 13, 5, 13, 314, 10, 13, 3, 13, 3, 13, 5, 13, 318, 10, 13, 3, 13, 3, 13, 5, 13, 322, 10, 13, 3, 13, 5, 13, 325, 10, 13, 3, 13, 3, 13, 5, 13, 329, 10, 13, 3, 14, 3, 14, 3, 14, 5, 14, 334, 10, 14, 3, 14, 5, 14, 337, 10, 14, 3, 15, 3, 15, 5, 15, 341, 10, 15, 3, 16, 3, 16, 3, 16, 7, 16, 346, 10, 16, 12, 16, 14, 16, 349, 11, 16, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 5, 21, 368, 10, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 388, 10, 24, 12, 24, 14, 24, 391, 11, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 401, 10, 25, 12, 25, 14, 25, 404, 11, 25, 3, 25, 3, 25, 5, 25, 408, 10, 25, 3, 26, 3, 26, 5, 26, 412, 10, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 5, 28, 422, 10, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 5, 30, 432, 10, 30, 3, 30, 3, 30, 5, 30, 436, 10, 30, 3, 30, 3, 30, 3, 31, 3, 31, 5, 31, 442, 10, 31, 3, 31, 3, 31, 5, 31, 446, 10, 31, 3, 31, 3, 31, 5, 31, 450, 10, 31, 3, 31, 5, 31, 453, 10, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 462, 10, 32, 3, 32, 3, 32, 5, 32, 466, 10, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 5, 32, 473, 10, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 480, 10, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 498, 10, 37, 3, 37, 3, 37, 5, 37, 502, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 509, 10, 37, 3, 38, 3, 38, 3, 38, 5, 38, 514, 10, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 5, 39, 521, 10, 39, 3, 39, 3, 39, 5, 39, 525, 10, 39, 3, 40, 3, 40, 5, 40, 529, 10, 40, 3, 40, 3, 40, 5, 40, 533, 10, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 5, 41, 541, 10, 41, 3, 41, 3, 41, 5, 41, 545, 10, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 5, 42, 553, 10, 42, 3, 42, 3, 42, 5, 42, 557, 10, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 7, 44, 566, 10, 44, 12, 44, 14, 44, 569, 11, 44, 3, 45, 3, 45, 3, 45, 3, 45, 7, 45, 575, 10, 45, 12, 45, 14, 45, 578, 11, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 5, 46, 590, 10, 46, 3, 46, 5, 46, 593, 10, 46, 3, 46, 3, 46, 5, 46, 597, 10, 46, 3, 46, 5, 46, 600, 10, 46, 5, 46, 602, 10, 46, 3, 46, 3, 46, 3, 46, 5, 46, 607, 10, 46, 3, 46, 3, 46, 5, 46, 611, 10, 46, 3, 46, 5, 46, 614, 10, 46, 7, 46, 616, 10, 46, 12, 46, 14, 46, 619, 11, 46, 3, 47, 3, 47, 3, 47, 3, 47, 7, 47, 625, 10, 47, 12, 47, 14, 47, 628, 11, 47, 3, 48, 3, 48, 3, 48, 5, 48, 633, 10, 48, 3, 48, 5, 48, 636, 10, 48, 3, 48, 5, 48, 639, 10, 48, 3, 48, 5, 48, 642, 10, 48, 3, 49, 3, 49, 5, 49, 646, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 7, 49, 652, 10, 49, 12, 49, 14, 49, 655, 11, 49, 5, 49, 657, 10, 49, 3, 50, 3, 50, 5, 50, 661, 10, 50, 3, 50, 5, 50, 664, 10, 50, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 7, 52, 673, 10, 52, 12, 52, 14, 52, 676, 11, 52, 3, 52, 3, 52, 5, 52, 680, 10, 52, 3, 52, 5, 52, 683, 10, 52, 3, 52, 3, 52, 3, 52, 5, 52, 688, 10, 52, 7, 52, 690, 10, 52, 12, 52, 14, 52, 693, 11, 52, 3, 53, 3, 53, 5, 53, 697, 10, 53, 3, 54, 5, 54, 700, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 7, 54, 711, 10, 54, 12, 54, 14, 54, 714, 11, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 724, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 7, 55, 733, 10, 55, 12, 55, 14, 55, 736, 11, 55, 3, 55, 3, 55, 5, 55, 740, 10, 55, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 7, 57, 750, 10, 57, 12, 57, 14, 57, 753, 11, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 7, 58, 762, 10, 58, 12, 58, 14, 58, 765, 11, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 7, 58, 774, 10, 58, 12, 58, 14, 58, 777, 11, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 7, 58, 786, 10, 58, 12, 58, 14, 58, 789, 11, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 7, 58, 799, 10, 58, 12, 58, 14, 58, 802, 11, 58, 3, 58, 3, 58, 5, 58, 806, 10, 58, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 816, 10, 60, 12, 60, 14, 60, 819, 11, 60, 3, 61, 3, 61, 5, 61, 823, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 828, 10, 62, 3, 63, 3, 63, 3, 63, 3, 63, 7, 63, 834, 10, 63, 12, 63, 14, 63, 837, 11, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 5, 65, 844, 10, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 7, 65, 852, 10, 65, 12, 65, 14, 65, 855, 11, 65, 5, 65, 857, 10, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 7, 65, 864, 10, 65, 12, 65, 14, 65, 867, 11, 65, 5, 65, 869, 10, 65, 3, 65, 5, 65, 872, 10, 65, 3, 65, 3, 65, 3, 66, 3, 66, 5, 66, 878, 10, 66, 3, 66, 3, 66, 5, 66, 882, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 888, 10, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 5, 70, 905, 10, 70, 5, 70, 907, 10, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 915, 10, 70, 12, 70, 14, 70, 918, 11, 70, 3, 71, 5, 71, 921, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 929, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 7, 71, 936, 10, 71, 12, 71, 14, 71, 939, 11, 71, 3, 71, 3, 71, 3, 71, 5, 71, 944, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 957, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 962, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 7, 71, 972, 10, 71, 12, 71, 14, 71, 975, 11, 71, 3, 71, 3, 71, 5, 71, 979, 10, 71, 3, 71, 5, 71, 982, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 988, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 993, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 998, 10, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1003, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1009, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 7, 72, 1030, 10, 72, 12, 72, 14, 72, 1033, 11, 72, 3, 73, 3, 73, 3, 73, 6, 73, 1038, 10, 73, 13, 73, 14, 73, 1039, 3, 73, 3, 73, 5, 73, 1044, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 6, 73, 1051, 10, 73, 13, 73, 14, 73, 1052, 3, 73, 3, 73, 5, 73, 1057, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 1073, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 1082, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 1106, 10, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1111, 10, 73, 12, 73, 14, 73, 1114, 11, 73, 5, 73, 1116, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 5, 73, 1126, 10, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1133, 10, 73, 12, 73, 14, 73, 1136, 11, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 5, 76, 1144, 10, 76, 3, 77, 3, 77, 3, 77, 5, 77, 1149, 10, 77, 3, 78, 3, 78, 5, 78, 1153, 10, 78, 3, 79, 3, 79, 3, 79, 6, 79, 1158, 10, 79, 13, 79, 14, 79, 1159, 3, 80, 3, 80, 3, 80, 5, 80, 1165, 10, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 5, 82, 1173, 10, 82, 3, 82, 3, 82, 5, 82, 1177, 10, 82, 3, 83, 5, 83, 1180, 10, 83, 3, 83, 3, 83, 5, 83, 1184, 10, 83, 3, 84, 5, 84, 1187, 10, 84, 3, 84, 3, 84, 5, 84, 1191, 10, 84, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 6, 86, 1198, 10, 86, 13, 86, 14, 86, 1199, 3, 86, 5, 86, 1203, 10, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 7, 88, 1212, 10, 88, 12, 88, 14, 88, 1215, 11, 88, 3, 89, 3, 89, 5, 89, 1219, 10, 89, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1225, 10, 90, 3, 91, 3, 91, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 7, 94, 1239, 10, 94, 12, 94, 14, 94, 1242, 11, 94, 3, 95, 3, 95, 7, 95, 1246, 10, 95, 12, 95, 14, 95, 1249, 11, 95, 3, 96, 3, 96, 7, 96, 1253, 10, 96, 12, 96, 14, 96, 1256, 11, 96, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 1272, 10, 100, 12, 100, 14, 100, 1275, 11, 100, 3, 100, 3, 100, 3, 101, 3, 101, 5, 101, 1281, 10, 101, 3, 101, 5, 101, 1284, 10, 101, 3, 102, 3, 102, 3, 102, 5, 102, 1289, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1295, 10, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1303, 10, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 5, 105, 1319, 10, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1328, 10, 106, 3, 107, 3, 107, 3, 108, 3, 108, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1345, 10, 110, 3, 110, 5, 110, 1348, 10, 110, 3, 111, 3, 111, 3, 112, 3, 112, 3, 113, 3, 113, 3, 114, 3, 114, 3, 115, 3, 115, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 4, 1247, 1254, 7, 90, 102, 138, 142, 144, 118, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 2, 29, 6, 2, 88, 88, 93, 93, 183, 183, 228, 229, 3, 2, 234, 257, 3, 2, 222, 223, 4, 2, 10, 10, 224, 224, 4, 2, 157, 157, 225, 225, 4, 2, 174, 174, 176, 176, 4, 2, 79, 79, 130, 130, 4, 2, 95, 96, 98, 98, 4, 2, 49, 50, 52, 53, 3, 2, 37, 38, 4, 2, 67, 67, 69, 69, 3, 2, 10, 11, 3, 2, 34, 35, 4, 2, 262, 262, 280, 281, 6, 2, 122, 122, 278, 278, 282, 282, 285, 285, 4, 2, 280, 281, 283, 283, 3, 2, 280, 281, 3, 2, 289, 290, 4, 2, 289, 289, 292, 292, 3, 2, 292, 293, 3, 2, 286, 287, 6, 2, 122, 122, 278, 278, 280, 282, 284, 285, 5, 2, 27, 27, 261, 262, 280, 281, 4, 2, 10, 10, 12, 12, 23, 2, 8, 8, 15, 19, 22, 23, 28, 32, 34, 34, 36, 38, 40, 40, 51, 51, 56, 69, 71, 71, 74, 78, 80, 85, 87, 89, 91, 94, 97, 97, 100, 114, 118, 132, 134, 174, 176, 193, 195, 229, 231, 257, 7, 2, 46, 47, 49, 55, 95, 98, 133, 133, 212, 212, 9, 2, 6, 45, 48, 48, 56, 94, 99, 132, 134, 166, 168, 211, 213, 257, 2, 1475, 2, 234, 3, 2, 2, 2, 4, 237, 3, 2, 2, 2, 6, 247, 3, 2, 2, 2, 8, 256, 3, 2, 2, 2, 10, 258, 3, 2, 2, 2, 12, 272, 3, 2, 2, 2, 14, 276, 3, 2, 2, 2, 16, 278, 3, 2, 2, 2, 18, 281, 3, 2, 2, 2, 20, 286, 3, 2, 2, 2, 22, 292, 3, 2, 2, 2, 24, 295, 3, 2, 2, 2, 26, 330, 3, 2, 2, 2, 28, 340, 3, 2, 2, 2, 30, 342, 3, 2, 2, 2, 32, 350, 3, 2, 2, 2, 34, 352, 3, 2, 2, 2, 36, 356, 3, 2, 2, 2, 38, 359, 3, 2, 2, 2, 40, 367, 3, 2, 2, 2, 42, 375, 3, 2, 2, 2, 44, 379, 3, 2, 2, 2, 46, 383, 3, 2, 2, 2, 48, 407, 3, 2, 2, 2, 50, 411, 3, 2, 2, 2, 52, 413, 3, 2, 2, 2, 54, 421, 3, 2, 2, 2, 56, 423, 3, 2, 2, 2, 58, 428, 3, 2, 2, 2, 60, 439, 3, 2, 2, 2, 62, 457, 3, 2, 2, 2, 64, 474, 3, 2, 2, 2, 66, 481, 3, 2, 2, 2, 68, 485, 3, 2, 2, 2, 70, 488, 3, 2, 2, 2, 72, 493, 3, 2, 2, 2, 74, 510, 3, 2, 2, 2, 76, 517, 3, 2, 2, 2, 78, 526, 3, 2, 2, 2, 80, 536, 3, 2, 2, 2, 82, 548, 3, 2, 2, 2, 84, 558, 3, 2, 2, 2, 86, 561, 3, 2, 2, 2, 88, 570, 3, 2, 2, 2, 90, 601, 3, 2, 2, 2, 92, 620, 3, 2, 2, 2, 94, 629, 3, 2, 2, 2, 96, 643, 3, 2, 2, 2, 98, 658, 3, 2, 2, 2, 100, 665, 3, 2, 2, 2, 102, 668, 3, 2, 2, 2, 104, 694, 3, 2, 2, 2, 106, 723, 3, 2, 2, 2, 108, 739, 3, 2, 2, 2, 110, 741, 3, 2, 2, 2, 112, 744, 3, 2, 2, 2, 114, 805, 3, 2, 2, 2, 116, 807, 3, 2, 2, 2, 118, 810, 3, 2, 2, 2, 120, 820, 3, 2, 2, 2, 122, 824, 3, 2, 2, 2, 124, 829, 3, 2, 2, 2, 126, 838, 3, 2, 2, 2, 128, 843, 3, 2, 2, 2, 130, 875, 3, 2, 2, 2, 132, 887, 3, 2, 2, 2, 134, 889, 3, 2, 2, 2, 136, 892, 3, 2, 2, 2, 138, 906, 3, 2, 2, 2, 140, 1002, 3, 2, 2, 2, 142, 1008, 3, 2, 2, 2, 144, 1125, 3, 2, 2, 2, 146, 1137, 3, 2, 2, 2, 148, 1139, 3, 2, 2, 2, 150, 1143, 3, 2, 2, 2, 152, 1145, 3, 2, 2, 2, 154, 1150, 3, 2, 2, 2, 156, 1157, 3, 2, 2, 2, 158, 1161, 3, 2, 2, 2, 160, 1166, 3, 2, 2, 2, 162, 1176, 3, 2, 2, 2, 164, 1179, 3, 2, 2, 2, 166, 1186, 3, 2, 2, 2, 168, 1192, 3, 2, 2, 2, 170, 1202, 3, 2, 2, 2, 172, 1204, 3, 2, 2, 2, 174, 1208, 3, 2, 2, 2, 176, 1218, 3, 2, 2, 2, 178, 1224, 3, 2, 2, 2, 180, 1226, 3, 2, 2, 2, 182, 1228, 3, 2, 2, 2, 184, 1230, 3, 2, 2, 2, 186, 1235, 3, 2, 2, 2, 188, 1243, 3, 2, 2, 2, 190, 1250, 3, 2, 2, 2, 192, 1257, 3, 2, 2, 2, 194, 1260, 3, 2, 2, 2, 196, 1264, 3, 2, 2, 2, 198, 1267, 3, 2, 2, 2, 200, 1278, 3, 2, 2, 2, 202, 1288, 3, 2, 2, 2, 204, 1294, 3, 2, 2, 2, 206, 1302, 3, 2, 2, 2, 208, 1318, 3, 2, 2, 2, 210, 1327, 3, 2, 2, 2, 212, 1329, 3, 2, 2, 2, 214, 1331, 3, 2, 2, 2, 216, 1333, 3, 2, 2, 2, 218, 1347, 3, 2, 2, 2, 220, 1349, 3, 2, 2, 2, 222, 1351, 3, 2, 2, 2, 224, 1353, 3, 2, 2, 2, 226, 1355, 3, 2, 2, 2, 228, 1357, 3, 2, 2, 2, 230, 1359, 3, 2, 2, 2, 232, 1361, 3, 2, 2, 2, 234, 235, 5, 4, 3, 2, 235, 236, 7, 2, 2, 3, 236, 3, 3, 2, 2, 2, 237, 238, 5, 6, 4, 2, 238, 239, 7, 2, 2, 3, 239, 5, 3, 2, 2, 2, 240, 242, 5, 8, 5, 2, 241, 243, 7, 272, 2, 2, 242, 241, 3, 2, 2, 2, 242, 243, 3, 2, 2, 2, 243, 246, 3, 2, 2, 2, 244, 246, 5, 10, 6, 2, 245, 240, 3, 2, 2, 2, 245, 244, 3, 2, 2, 2, 246, 249, 3, 2, 2, 2, 247, 245, 3, 2, 2, 2, 247, 248, 3, 2, 2, 2, 248, 7, 3, 2, 2, 2, 249, 247, 3, 2, 2, 2, 250, 257, 5, 12, 7, 2, 251, 257, 5, 14, 8, 2, 252, 257, 5, 16, 9, 2, 253, 257, 5, 18, 10, 2, 254, 257, 5, 20, 11, 2, 255, 257, 5, 22, 12, 2, 256, 250, 3, 2, 2, 2, 256, 251, 3, 2, 2, 2, 256, 252, 3, 2, 2, 2, 256, 253, 3, 2, 2, 2, 256, 254, 3, 2, 2, 2, 256, 255, 3, 2, 2, 2, 257, 9, 3, 2, 2, 2, 258, 259, 7, 272, 2, 2, 259, 11, 3, 2, 2, 2, 260, 273, 5, 24, 13, 2, 261, 273, 5, 58, 30, 2, 262, 273, 5, 60, 31, 2, 263, 273, 5, 62, 32, 2, 264, 273, 5, 56, 29, 2, 265, 273, 5, 64, 33, 2, 266, 273, 5, 70, 36, 2, 267, 273, 5, 72, 37, 2, 268, 273, 5, 74, 38, 2, 269, 273, 5, 76, 39, 2, 270, 273, 5, 78, 40, 2, 271, 273, 5, 80, 41, 2, 272, 260, 3, 2, 2, 2, 272, 261, 3, 2, 2, 2, 272, 262, 3, 2, 2, 2, 272, 263, 3, 2, 2, 2, 272, 264, 3, 2, 2, 2, 272, 265, 3, 2, 2, 2, 272, 266, 3, 2, 2, 2, 272, 267, 3, 2, 2, 2, 272, 268, 3, 2, 2, 2, 272, 269, 3, 2, 2, 2, 272, 270, 3, 2, 2, 2, 272, 271, 3, 2, 2, 2, 273, 13, 3, 2, 2, 2, 274, 277, 5, 90, 46, 2, 275, 277, 5, 82, 42, 2, 276, 274, 3, 2, 2, 2, 276, 275, 3, 2, 2, 2, 277, 15, 3, 2, 2, 2, 278, 279, 7, 80, 2, 2, 279, 280, 5, 188, 95, 2, 280, 17, 3, 2, 2, 2, 281, 282, 7, 81, 2, 2, 282, 283, 5, 176, 89, 2, 283, 284, 7, 39, 2, 2, 284, 285, 5, 14, 8, 2, 285, 19, 3, 2, 2, 2, 286, 288, 7, 91, 2, 2, 287, 289, 7, 226, 2, 2, 288, 287, 3, 2, 2, 2, 288, 289, 3, 2, 2, 2, 289, 290, 3, 2, 2, 2, 290, 291, 5, 188, 95, 2, 291, 21, 3, 2, 2, 2, 292, 293, 7, 87, 2, 2, 293, 294, 9, 2, 2, 2, 294, 23, 3, 2, 2, 2, 295, 296, 7, 72, 2, 2, 296, 297, 7, 73, 2, 2, 297, 298, 5, 188, 95, 2, 298, 299, 7, 269, 2, 2, 299, 304, 5, 26, 14, 2, 300, 301, 7, 271, 2, 2, 301, 303, 5, 26, 14, 2, 302, 300, 3, 2, 2, 2, 303, 306, 3, 2, 2, 2, 304, 302, 3, 2, 2, 2, 304, 305, 3, 2, 2, 2, 305, 309, 3, 2, 2, 2, 306, 304, 3, 2, 2, 2, 307, 308, 7, 271, 2, 2, 308, 310, 5, 38, 20, 2, 309, 307, 3, 2, 2, 2, 309, 310, 3, 2, 2, 2, 310, 313, 3, 2, 2, 2, 311, 312, 7, 271, 2, 2, 312, 314, 5, 40, 21, 2, 313, 311, 3, 2, 2, 2, 313, 314, 3, 2, 2, 2, 314, 317, 3, 2, 2, 2, 315, 316, 7, 271, 2, 2, 316, 318, 5, 42, 22, 2, 317, 315, 3, 2, 2, 2, 317, 318, 3, 2, 2, 2, 318, 319, 3, 2, 2, 2, 319, 321, 7, 270, 2, 2, 320, 322, 5, 36, 19, 2, 321, 320, 3, 2, 2, 2, 321, 322, 3, 2, 2, 2, 322, 324, 3, 2, 2, 2, 323, 325, 5, 44, 23, 2, 324, 323, 3, 2, 2, 2, 324, 325, 3, 2, 2, 2, 325, 326, 3, 2, 2, 2, 326, 328, 5, 192, 97, 2, 327, 329, 5, 52, 27, 2, 328, 327, 3, 2, 2, 2, 328, 329, 3, 2, 2, 2, 329, 25, 3, 2, 2, 2, 330, 331, 5, 28, 15, 2, 331, 333, 5, 32, 17, 2, 332, 334, 5, 34, 18, 2, 333, 332, 3, 2, 2, 2, 333, 334, 3, 2, 2, 2, 334, 336, 3, 2, 2, 2, 335, 337, 5, 164, 83, 2, 336, 335, 3, 2, 2, 2, 336, 337, 3, 2, 2, 2, 337, 27, 3, 2, 2, 2, 338, 341, 5, 190, 96, 2, 339, 341, 5, 136, 69, 2, 340, 338, 3, 2, 2, 2, 340, 339, 3, 2, 2, 2, 341, 29, 3, 2, 2, 2, 342, 347, 5, 28, 15, 2, 343, 344, 7, 271, 2, 2, 344, 346, 5, 28, 15, 2, 345, 343, 3, 2, 2, 2, 346, 349, 3, 2, 2, 2, 347, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 31, 3, 2, 2, 2, 349, 347, 3, 2, 2, 2, 350, 351, 9, 3, 2, 2, 351, 33, 3, 2, 2, 2, 352, 353, 7, 269, 2, 2, 353, 354, 5, 222, 112, 2, 354, 355, 7, 270, 2, 2, 355, 35, 3, 2, 2, 2, 356, 357, 7, 105, 2, 2, 357, 358, 7, 288, 2, 2, 358, 37, 3, 2, 2, 2, 359, 360, 7, 215, 2, 2, 360, 361, 7, 39, 2, 2, 361, 362, 5, 136, 69, 2, 362, 363, 7, 9, 2, 2, 363, 364, 5, 136, 69, 2, 364, 39, 3, 2, 2, 2, 365, 366, 7, 175, 2, 2, 366, 368, 5, 176, 89, 2, 367, 365, 3, 2, 2, 2, 367, 368, 3, 2, 2, 2, 368, 369, 3, 2, 2, 2, 369, 370, 7, 230, 2, 2, 370, 371, 7, 231, 2, 2, 371, 372, 7, 269, 2, 2, 372, 373, 5, 30, 16, 2, 373, 374, 7, 270, 2, 2, 374, 41, 3, 2, 2, 2, 375, 376, 7, 232, 2, 2, 376, 377, 7, 39, 2, 2, 377, 378, 7, 233, 2, 2, 378, 43, 3, 2, 2, 2, 379, 380, 7, 190, 2, 2, 380, 381, 7, 15, 2, 2, 381, 382, 5, 46, 24, 2, 382, 45, 3, 2, 2, 2, 383, 384, 7, 269, 2, 2, 384, 389, 5, 48, 25, 2, 385, 386, 7, 271, 2, 2, 386, 388, 5, 48, 25, 2, 387, 385, 3, 2, 2, 2, 388, 391, 3, 2, 2, 2, 389, 387, 3, 2, 2, 2, 389, 390, 3, 2, 2, 2, 390, 392, 3, 2, 2, 2, 391, 389, 3, 2, 2, 2, 392, 393, 7, 270, 2, 2, 393, 47, 3, 2, 2, 2, 394, 408, 5, 150, 76, 2, 395, 396, 5, 176, 89, 2, 396, 397, 7, 269, 2, 2, 397, 402, 5, 50, 26, 2, 398, 399, 7, 271, 2, 2, 399, 401, 5, 50, 26, 2, 400, 398, 3, 2, 2, 2, 401, 404, 3, 2, 2, 2, 402, 400, 3, 2, 2, 2, 402, 403, 3, 2, 2, 2, 403, 405, 3, 2, 2, 2, 404, 402, 3, 2, 2, 2, 405, 406, 7, 270, 2, 2, 406, 408, 3, 2, 2, 2, 407, 394, 3, 2, 2, 2, 407, 395, 3, 2, 2, 2, 408, 49, 3, 2, 2, 2, 409, 412, 5, 150, 76, 2, 410, 412, 5, 218, 110, 2, 411, 409, 3, 2, 2, 2, 411, 410, 3, 2, 2, 2, 412, 51, 3, 2, 2, 2, 413, 414, 7, 31, 2, 2, 414, 415, 5, 176, 89, 2, 415, 416, 5, 54, 28, 2, 416, 53, 3, 2, 2, 2, 417, 418, 9, 4, 2, 2, 418, 422, 9, 5, 2, 2, 419, 420, 9, 4, 2, 2, 420, 422, 9, 6, 2, 2, 421, 417, 3, 2, 2, 2, 421, 419, 3, 2, 2, 2, 422, 55, 3, 2, 2, 2, 423, 424, 7, 72, 2, 2, 424, 425, 7, 226, 2, 2, 425, 426, 5, 188, 95, 2, 426, 427, 5, 192, 97, 2, 427, 57, 3, 2, 2, 2, 428, 429, 7, 72, 2, 2, 429, 431, 7, 182, 2, 2, 430, 432, 5, 194, 98, 2, 431, 430, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 433, 3, 2, 2, 2, 433, 435, 5, 188, 95, 2, 434, 436, 5, 36, 19, 2, 435, 434, 3, 2, 2, 2, 435, 436, 3, 2, 2, 2, 436, 437, 3, 2, 2, 2, 437, 438, 5, 192, 97, 2, 438, 59, 3, 2, 2, 2, 439, 441, 7, 72, 2, 2, 440, 442, 7, 156, 2, 2, 441, 440, 3, 2, 2, 2, 441, 442, 3, 2, 2, 2, 442, 443, 3, 2, 2, 2, 443, 445, 7, 75, 2, 2, 444, 446, 5, 194, 98, 2, 445, 444, 3, 2, 2, 2, 445, 446, 3, 2, 2, 2, 446, 447, 3, 2, 2, 2, 447, 449, 5, 188, 95, 2, 448, 450, 5, 30, 16, 2, 449, 448, 3, 2, 2, 2, 449, 450, 3, 2, 2, 2, 450, 452, 3, 2, 2, 2, 451, 453, 5, 36, 19, 2, 452, 451, 3, 2, 2, 2, 452, 453, 3, 2, 2, 2, 453, 454, 3, 2, 2, 2, 454, 455, 7, 9, 2, 2, 455, 456, 5, 90, 46, 2, 456, 61, 3, 2, 2, 2, 457, 461, 7, 72, 2, 2, 458, 462, 7, 156, 2, 2, 459, 460, 7, 156, 2, 2, 460, 462, 7, 221, 2, 2, 461, 458, 3, 2, 2, 2, 461, 459, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 465, 7, 147, 2, 2, 464, 466, 5, 194, 98, 2, 465, 464, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 468, 5, 188, 95, 2, 468, 469, 7, 9, 2, 2, 469, 472, 5, 176, 89, 2, 470, 471, 7, 227, 2, 2, 471, 473, 5, 176, 89, 2, 472, 470, 3, 2, 2, 2, 472, 473, 3, 2, 2, 2, 473, 63, 3, 2, 2, 2, 474, 475, 7, 102, 2, 2, 475, 476, 7, 73, 2, 2, 476, 479, 5, 188, 95, 2, 477, 480, 5, 66, 34, 2, 478, 480, 5, 68, 35, 2, 479, 477, 3, 2, 2, 2, 479, 478, 3, 2, 2, 2, 480, 65, 3, 2, 2, 2, 481, 482, 7, 103, 2, 2, 482, 483, 7, 99, 2, 2, 483, 484, 5, 188, 95, 2, 484, 67, 3, 2, 2, 2, 485, 486, 7, 106, 2, 2, 486, 487, 5, 198, 100, 2, 487, 69, 3, 2, 2, 2, 488, 489, 7, 102, 2, 2, 489, 490, 7, 182, 2, 2, 490, 491, 5, 188, 95, 2, 491, 492, 5, 68, 35, 2, 492, 71, 3, 2, 2, 2, 493, 497, 7, 102, 2, 2, 494, 498, 7, 156, 2, 2, 495, 496, 7, 156, 2, 2, 496, 498, 7, 221, 2, 2, 497, 494, 3, 2, 2, 2, 497, 495, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 501, 7, 147, 2, 2, 500, 502, 5, 196, 99, 2, 501, 500, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 503, 3, 2, 2, 2, 503, 504, 5, 188, 95, 2, 504, 505, 7, 9, 2, 2, 505, 508, 5, 176, 89, 2, 506, 507, 7, 227, 2, 2, 507, 509, 5, 176, 89, 2, 508, 506, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 73, 3, 2, 2, 2, 510, 511, 7, 94, 2, 2, 511, 513, 7, 73, 2, 2, 512, 514, 5, 196, 99, 2, 513, 512, 3, 2, 2, 2, 513, 514, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 516, 5, 188, 95, 2, 516, 75, 3, 2, 2, 2, 517, 518, 7, 94, 2, 2, 518, 520, 7, 182, 2, 2, 519, 521, 5, 196, 99, 2, 520, 519, 3, 2, 2, 2, 520, 521, 3, 2, 2, 2, 521, 522, 3, 2, 2, 2, 522, 524, 5, 188, 95, 2, 523, 525, 9, 7, 2, 2, 524, 523, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 77, 3, 2, 2, 2, 526, 528, 7, 94, 2, 2, 527, 529, 7, 156, 2, 2, 528, 527, 3, 2, 2, 2, 528, 529, 3, 2, 2, 2, 529, 530, 3, 2, 2, 2, 530, 532, 7, 75, 2, 2, 531, 533, 5, 196, 99, 2, 532, 531, 3, 2, 2, 2, 532, 533, 3, 2, 2, 2, 533, 534, 3, 2, 2, 2, 534, 535, 5, 188, 95, 2, 535, 79, 3, 2, 2, 2, 536, 540, 7, 94, 2, 2, 537, 541, 7, 156, 2, 2, 538, 539, 7, 156, 2, 2, 539, 541, 7, 221, 2, 2, 540, 537, 3, 2, 2, 2, 540, 538, 3, 2, 2, 2, 540, 541, 3, 2, 2, 2, 541, 542, 3, 2, 2, 2, 542, 544, 7, 147, 2, 2, 543, 545, 5, 196, 99, 2, 544, 543, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 5, 188, 95, 2, 547, 81, 3, 2, 2, 2, 548, 549, 7, 77, 2, 2, 549, 550, 9, 8, 2, 2, 550, 556, 5, 188, 95, 2, 551, 553, 5, 84, 43, 2, 552, 551, 3, 2, 2, 2, 552, 553, 3, 2, 2, 2, 553, 554, 3, 2, 2, 2, 554, 557, 5, 90, 46, 2, 555, 557, 5, 86, 44, 2, 556, 552, 3, 2, 2, 2, 556, 555, 3, 2, 2, 2, 557, 83, 3, 2, 2, 2, 558, 559, 7, 60, 2, 2, 559, 560, 5, 198, 100, 2, 560, 85, 3, 2, 2, 2, 561, 562, 7, 71, 2, 2, 562, 567, 5, 88, 45, 2, 563, 564, 7, 271, 2, 2, 564, 566, 5, 88, 45, 2, 565, 563, 3, 2, 2, 2, 566, 569, 3, 2, 2, 2, 567, 565, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 87, 3, 2, 2, 2, 569, 567, 3, 2, 2, 2, 570, 571, 7, 269, 2, 2, 571, 576, 5, 218, 110, 2, 572, 573, 7, 271, 2, 2, 573, 575, 5, 218, 110, 2, 574, 572, 3, 2, 2, 2, 575, 578, 3, 2, 2, 2, 576, 574, 3, 2, 2, 2, 576, 577, 3, 2, 2, 2, 577, 579, 3, 2, 2, 2, 578, 576, 3, 2, 2, 2, 579, 580, 7, 270, 2, 2, 580, 89, 3, 2, 2, 2, 581, 582, 8, 46, 1, 2, 582, 602, 5, 92, 47, 2, 583, 584, 7, 269, 2, 2, 584, 585, 5, 90, 46, 2, 585, 586, 7, 270, 2, 2, 586, 602, 3, 2, 2, 2, 587, 589, 5, 96, 49, 2, 588, 590, 5, 118, 60, 2, 589, 588, 3, 2, 2, 2, 589, 590, 3, 2, 2, 2, 590, 592, 3, 2, 2, 2, 591, 593, 5, 122, 62, 2, 592, 591, 3, 2, 2, 2, 592, 593, 3, 2, 2, 2, 593, 602, 3, 2, 2, 2, 594, 596, 5, 94, 48, 2, 595, 597, 5, 118, 60, 2, 596, 595, 3, 2, 2, 2, 596, 597, 3, 2, 2, 2, 597, 599, 3, 2, 2, 2, 598, 600, 5, 122, 62, 2, 599, 598, 3, 2, 2, 2, 599, 600, 3, 2, 2, 2, 600, 602, 3, 2, 2, 2, 601, 581, 3, 2, 2, 2, 601, 583, 3, 2, 2, 2, 601, 587, 3, 2, 2, 2, 601, 594, 3, 2, 2, 2, 602, 617, 3, 2, 2, 2, 603, 604, 12, 5, 2, 2, 604, 606, 9, 9, 2, 2, 605, 607, 7, 10, 2, 2, 606, 605, 3, 2, 2, 2, 606, 607, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 610, 5, 90, 46, 2, 609, 611, 5, 118, 60, 2, 610, 609, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 613, 3, 2, 2, 2, 612, 614, 5, 122, 62, 2, 613, 612, 3, 2, 2, 2, 613, 614, 3, 2, 2, 2, 614, 616, 3, 2, 2, 2, 615, 603, 3, 2, 2, 2, 616, 619, 3, 2, 2, 2, 617, 615, 3, 2, 2, 2, 617, 618, 3, 2, 2, 2, 618, 91, 3, 2, 2, 2, 619, 617, 3, 2, 2, 2, 620, 621, 7, 71, 2, 2, 621, 626, 5, 136, 69, 2, 622, 623, 7, 271, 2, 2, 623, 625, 5, 136, 69, 2, 624, 622, 3, 2, 2, 2, 625, 628, 3, 2, 2, 2, 626, 624, 3, 2, 2, 2, 626, 627, 3, 2, 2, 2, 627, 93, 3, 2, 2, 2, 628, 626, 3, 2, 2, 2, 629, 630, 5, 96, 49, 2, 630, 632, 5, 100, 51, 2, 631, 633, 5, 110, 56, 2, 632, 631, 3, 2, 2, 2, 632, 633, 3, 2, 2, 2, 633, 635, 3, 2, 2, 2, 634, 636, 5, 112, 57, 2, 635, 634, 3, 2, 2, 2, 635, 636, 3, 2, 2, 2, 636, 638, 3, 2, 2, 2, 637, 639, 5, 116, 59, 2, 638, 637, 3, 2, 2, 2, 638, 639, 3, 2, 2, 2, 639, 641, 3, 2, 2, 2, 640, 642, 5, 124, 63, 2, 641, 640, 3, 2, 2, 2, 641, 642, 3, 2, 2, 2, 642, 95, 3, 2, 2, 2, 643, 645, 7, 6, 2, 2, 644, 646, 5, 226, 114, 2, 645, 644, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 656, 3, 2, 2, 2, 647, 657, 7, 278, 2, 2, 648, 653, 5, 98, 50, 2, 649, 650, 7, 271, 2, 2, 650, 652, 5, 98, 50, 2, 651, 649, 3, 2, 2, 2, 652, 655, 3, 2, 2, 2, 653, 651, 3, 2, 2, 2, 653, 654, 3, 2, 2, 2, 654, 657, 3, 2, 2, 2, 655, 653, 3, 2, 2, 2, 656, 647, 3, 2, 2, 2, 656, 648, 3, 2, 2, 2, 657, 97, 3, 2, 2, 2, 658, 663, 5, 136, 69, 2, 659, 661, 7, 9, 2, 2, 660, 659, 3, 2, 2, 2, 660, 661, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 664, 5, 136, 69, 2, 663, 660, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 99, 3, 2, 2, 2, 665, 666, 7, 7, 2, 2, 666, 667, 5, 102, 52, 2, 667, 101, 3, 2, 2, 2, 668, 669, 8, 52, 1, 2, 669, 674, 5, 104, 53, 2, 670, 671, 7, 271, 2, 2, 671, 673, 5, 104, 53, 2, 672, 670, 3, 2, 2, 2, 673, 676, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 674, 675, 3, 2, 2, 2, 675, 691, 3, 2, 2, 2, 676, 674, 3, 2, 2, 2, 677, 679, 12, 3, 2, 2, 678, 680, 7, 54, 2, 2, 679, 678, 3, 2, 2, 2, 679, 680, 3, 2, 2, 2, 680, 682, 3, 2, 2, 2, 681, 683, 9, 10, 2, 2, 682, 681, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 684, 3, 2, 2, 2, 684, 685, 7, 46, 2, 2, 685, 687, 5, 102, 52, 2, 686, 688, 5, 108, 55, 2, 687, 686, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 690, 3, 2, 2, 2, 689, 677, 3, 2, 2, 2, 690, 693, 3, 2, 2, 2, 691, 689, 3, 2, 2, 2, 691, 692, 3, 2, 2, 2, 692, 103, 3, 2, 2, 2, 693, 691, 3, 2, 2, 2, 694, 696, 5, 106, 54, 2, 695, 697, 5, 166, 84, 2, 696, 695, 3, 2, 2, 2, 696, 697, 3, 2, 2, 2, 697, 105, 3, 2, 2, 2, 698, 700, 7, 73, 2, 2, 699, 698, 3, 2, 2, 2, 699, 700, 3, 2, 2, 2, 700, 701, 3, 2, 2, 2, 701, 724, 5, 136, 69, 2, 702, 703, 7, 57, 2, 2, 703, 704, 7, 73, 2, 2, 704, 705, 7, 269, 2, 2, 705, 706, 5, 188, 95, 2, 706, 707, 7, 269, 2, 2, 707, 712, 5, 136, 69, 2, 708, 709, 7, 271, 2, 2, 709, 711, 5, 136, 69, 2, 710, 708, 3, 2, 2, 2, 711, 714, 3, 2, 2, 2, 712, 710, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 715, 3, 2, 2, 2, 714, 712, 3, 2, 2, 2, 715, 716, 7, 270, 2, 2, 716, 717, 7, 270, 2, 2, 717, 724, 3, 2, 2, 2, 718, 719, 7, 216, 2, 2, 719, 720, 7, 269, 2, 2, 720, 721, 5, 136, 69, 2, 721, 722, 7, 270, 2, 2, 722, 724, 3, 2, 2, 2, 723, 699, 3, 2, 2, 2, 723, 702, 3, 2, 2, 2, 723, 718, 3, 2, 2, 2, 724, 107, 3, 2, 2, 2, 725, 726, 7, 55, 2, 2, 726, 740, 5, 138, 70, 2, 727, 728, 7, 133, 2, 2, 728, 729, 7, 269, 2, 2, 729, 734, 5, 188, 95, 2, 730, 731, 7, 271, 2, 2, 731, 733, 5, 188, 95, 2, 732, 730, 3, 2, 2, 2, 733, 736, 3, 2, 2, 2, 734, 732, 3, 2, 2, 2, 734, 735, 3, 2, 2, 2, 735, 737, 3, 2, 2, 2, 736, 734, 3, 2, 2, 2, 737, 738, 7, 270, 2, 2, 738, 740, 3, 2, 2, 2, 739, 725, 3, 2, 2, 2, 739, 727, 3, 2, 2, 2, 740, 109, 3, 2, 2, 2, 741, 742, 7, 13, 2, 2, 742, 743, 5, 138, 70, 2, 743, 111, 3, 2, 2, 2, 744, 745, 7, 14, 2, 2, 745, 746, 7, 15, 2, 2, 746, 751, 5, 114, 58, 2, 747, 748, 7, 271, 2, 2, 748, 750, 5, 114, 58, 2, 749, 747, 3, 2, 2, 2, 750, 753, 3, 2, 2, 2, 751, 749, 3, 2, 2, 2, 751, 752, 3, 2, 2, 2, 752, 113, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 754, 806, 5, 136, 69, 2, 755, 756, 7, 269, 2, 2, 756, 806, 7, 270, 2, 2, 757, 758, 7, 269, 2, 2, 758, 763, 5, 136, 69, 2, 759, 760, 7, 271, 2, 2, 760, 762, 5, 136, 69, 2, 761, 759, 3, 2, 2, 2, 762, 765, 3, 2, 2, 2, 763, 761, 3, 2, 2, 2, 763, 764, 3, 2, 2, 2, 764, 766, 3, 2, 2, 2, 765, 763, 3, 2, 2, 2, 766, 767, 7, 270, 2, 2, 767, 806, 3, 2, 2, 2, 768, 769, 7, 18, 2, 2, 769, 770, 7, 269, 2, 2, 770, 775, 5, 136, 69, 2, 771, 772, 7, 271, 2, 2, 772, 774, 5, 136, 69, 2, 773, 771, 3, 2, 2, 2, 774, 777, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 775, 776, 3, 2, 2, 2, 776, 778, 3, 2, 2, 2, 777, 775, 3, 2, 2, 2, 778, 779, 7, 270, 2, 2, 779, 806, 3, 2, 2, 2, 780, 781, 7, 19, 2, 2, 781, 782, 7, 269, 2, 2, 782, 787, 5, 136, 69, 2, 783, 784, 7, 271, 2, 2, 784, 786, 5, 136, 69, 2, 785, 783, 3, 2, 2, 2, 786, 789, 3, 2, 2, 2, 787, 785, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 790, 3, 2, 2, 2, 789, 787, 3, 2, 2, 2, 790, 791, 7, 270, 2, 2, 791, 806, 3, 2, 2, 2, 792, 793, 7, 16, 2, 2, 793, 794, 7, 17, 2, 2, 794, 795, 7, 269, 2, 2, 795, 800, 5, 114, 58, 2, 796, 797, 7, 271, 2, 2, 797, 799, 5, 114, 58, 2, 798, 796, 3, 2, 2, 2, 799, 802, 3, 2, 2, 2, 800, 798, 3, 2, 2, 2, 800, 801, 3, 2, 2, 2, 801, 803, 3, 2, 2, 2, 802, 800, 3, 2, 2, 2, 803, 804, 7, 270, 2, 2, 804, 806, 3, 2, 2, 2, 805, 754, 3, 2, 2, 2, 805, 755, 3, 2, 2, 2, 805, 757, 3, 2, 2, 2, 805, 768, 3, 2, 2, 2, 805, 780, 3, 2, 2, 2, 805, 792, 3, 2, 2, 2, 806, 115, 3, 2, 2, 2, 807, 808, 7, 21, 2, 2, 808, 809, 5, 138, 70, 2, 809, 117, 3, 2, 2, 2, 810, 811, 7, 20, 2, 2, 811, 812, 7, 15, 2, 2, 812, 817, 5, 120, 61, 2, 813, 814, 7, 271, 2, 2, 814, 816, 5, 120, 61, 2, 815, 813, 3, 2, 2, 2, 816, 819, 3, 2, 2, 2, 817, 815, 3, 2, 2, 2, 817, 818, 3, 2, 2, 2, 818, 119, 3, 2, 2, 2, 819, 817, 3, 2, 2, 2, 820, 822, 5, 136, 69, 2, 821, 823, 9, 11, 2, 2, 822, 821, 3, 2, 2, 2, 822, 823, 3, 2, 2, 2, 823, 121, 3, 2, 2, 2, 824, 827, 7, 22, 2, 2, 825, 828, 7, 10, 2, 2, 826, 828, 5, 136, 69, 2, 827, 825, 3, 2, 2, 2, 827, 826, 3, 2, 2, 2, 828, 123, 3, 2, 2, 2, 829, 830, 7, 58, 2, 2, 830, 835, 5, 126, 64, 2, 831, 832, 7, 271, 2, 2, 832, 834, 5, 126, 64, 2, 833, 831, 3, 2, 2, 2, 834, 837, 3, 2, 2, 2, 835, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 125, 3, 2, 2, 2, 837, 835, 3, 2, 2, 2, 838, 839, 5, 168, 85, 2, 839, 840, 7, 9, 2, 2, 840, 841, 5, 128, 65, 2, 841, 127, 3, 2, 2, 2, 842, 844, 5, 168, 85, 2, 843, 842, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 856, 7, 269, 2, 2, 846, 847, 7, 20, 2, 2, 847, 848, 7, 15, 2, 2, 848, 853, 5, 130, 66, 2, 849, 850, 7, 271, 2, 2, 850, 852, 5, 130, 66, 2, 851, 849, 3, 2, 2, 2, 852, 855, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854, 857, 3, 2, 2, 2, 855, 853, 3, 2, 2, 2, 856, 846, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 868, 3, 2, 2, 2, 858, 859, 7, 60, 2, 2, 859, 860, 7, 15, 2, 2, 860, 865, 5, 136, 69, 2, 861, 862, 7, 271, 2, 2, 862, 864, 5, 136, 69, 2, 863, 861, 3, 2, 2, 2, 864, 867, 3, 2, 2, 2, 865, 863, 3, 2, 2, 2, 865, 866, 3, 2, 2, 2, 866, 869, 3, 2, 2, 2, 867, 865, 3, 2, 2, 2, 868, 858, 3, 2, 2, 2, 868, 869, 3, 2, 2, 2, 869, 871, 3, 2, 2, 2, 870, 872, 5, 132, 67, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 874, 7, 270, 2, 2, 874, 129, 3, 2, 2, 2, 875, 877, 5, 136, 69, 2, 876, 878, 9, 11, 2, 2, 877, 876, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 881, 3, 2, 2, 2, 879, 880, 7, 36, 2, 2, 880, 882, 9, 12, 2, 2, 881, 879, 3, 2, 2, 2, 881, 882, 3, 2, 2, 2, 882, 131, 3, 2, 2, 2, 883, 884, 7, 61, 2, 2, 884, 888, 5, 134, 68, 2, 885, 886, 7, 62, 2, 2, 886, 888, 5, 134, 68, 2, 887, 883, 3, 2, 2, 2, 887, 885, 3, 2, 2, 2, 888, 133, 3, 2, 2, 2, 889, 890, 5, 136, 69, 2, 890, 891, 7, 64, 2, 2, 891, 135, 3, 2, 2, 2, 892, 893, 5, 138, 70, 2, 893, 137, 3, 2, 2, 2, 894, 895, 8, 70, 1, 2, 895, 896, 7, 27, 2, 2, 896, 907, 5, 138, 70, 7, 897, 898, 7, 29, 2, 2, 898, 899, 7, 269, 2, 2, 899, 900, 5, 90, 46, 2, 900, 901, 7, 270, 2, 2, 901, 907, 3, 2, 2, 2, 902, 904, 5, 142, 72, 2, 903, 905, 5, 140, 71, 2, 904, 903, 3, 2, 2, 2, 904, 905, 3, 2, 2, 2, 905, 907, 3, 2, 2, 2, 906, 894, 3, 2, 2, 2, 906, 897, 3, 2, 2, 2, 906, 902, 3, 2, 2, 2, 907, 916, 3, 2, 2, 2, 908, 909, 12, 4, 2, 2, 909, 910, 7, 25, 2, 2, 910, 915, 5, 138, 70, 5, 911, 912, 12, 3, 2, 2, 912, 913, 7, 24, 2, 2, 913, 915, 5, 138, 70, 4, 914, 908, 3, 2, 2, 2, 914, 911, 3, 2, 2, 2, 915, 918, 3, 2, 2, 2, 916, 914, 3, 2, 2, 2, 916, 917, 3, 2, 2, 2, 917, 139, 3, 2, 2, 2, 918, 916, 3, 2, 2, 2, 919, 921, 7, 27, 2, 2, 920, 919, 3, 2, 2, 2, 920, 921, 3, 2, 2, 2, 921, 922, 3, 2, 2, 2, 922, 923, 7, 30, 2, 2, 923, 924, 5, 142, 72, 2, 924, 925, 7, 25, 2, 2, 925, 926, 5, 142, 72, 2, 926, 1003, 3, 2, 2, 2, 927, 929, 7, 27, 2, 2, 928, 927, 3, 2, 2, 2, 928, 929, 3, 2, 2, 2, 929, 930, 3, 2, 2, 2, 930, 931, 7, 26, 2, 2, 931, 932, 7, 269, 2, 2, 932, 937, 5, 136, 69, 2, 933, 934, 7, 271, 2, 2, 934, 936, 5, 136, 69, 2, 935, 933, 3, 2, 2, 2, 936, 939, 3, 2, 2, 2, 937, 935, 3, 2, 2, 2, 937, 938, 3, 2, 2, 2, 938, 940, 3, 2, 2, 2, 939, 937, 3, 2, 2, 2, 940, 941, 7, 270, 2, 2, 941, 1003, 3, 2, 2, 2, 942, 944, 7, 27, 2, 2, 943, 942, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 945, 3, 2, 2, 2, 945, 946, 7, 26, 2, 2, 946, 947, 7, 269, 2, 2, 947, 948, 5, 90, 46, 2, 948, 949, 7, 270, 2, 2, 949, 1003, 3, 2, 2, 2, 950, 951, 7, 29, 2, 2, 951, 952, 7, 269, 2, 2, 952, 953, 5, 90, 46, 2, 953, 954, 7, 270, 2, 2, 954, 1003, 3, 2, 2, 2, 955, 957, 7, 27, 2, 2, 956, 955, 3, 2, 2, 2, 956, 957, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 959, 7, 32, 2, 2, 959, 1003, 5, 142, 72, 2, 960, 962, 7, 27, 2, 2, 961, 960, 3, 2, 2, 2, 961, 962, 3, 2, 2, 2, 962, 963, 3, 2, 2, 2, 963, 964, 7, 31, 2, 2, 964, 978, 9, 13, 2, 2, 965, 966, 7, 269, 2, 2, 966, 979, 7, 270, 2, 2, 967, 968, 7, 269, 2, 2, 968, 973, 5, 136, 69, 2, 969, 970, 7, 271, 2, 2, 970, 972, 5, 136, 69, 2, 971, 969, 3, 2, 2, 2, 972, 975, 3, 2, 2, 2, 973, 971, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 976, 3, 2, 2, 2, 975, 973, 3, 2, 2, 2, 976, 977, 7, 270, 2, 2, 977, 979, 3, 2, 2, 2, 978, 965, 3, 2, 2, 2, 978, 967, 3, 2, 2, 2, 979, 1003, 3, 2, 2, 2, 980, 982, 7, 27, 2, 2, 981, 980, 3, 2, 2, 2, 981, 982, 3, 2, 2, 2, 982, 983, 3, 2, 2, 2, 983, 984, 7, 31, 2, 2, 984, 1003, 5, 142, 72, 2, 985, 987, 7, 33, 2, 2, 986, 988, 7, 27, 2, 2, 987, 986, 3, 2, 2, 2, 987, 988, 3, 2, 2, 2, 988, 989, 3, 2, 2, 2, 989, 1003, 7, 256, 2, 2, 990, 992, 7, 33, 2, 2, 991, 993, 7, 27, 2, 2, 992, 991, 3, 2, 2, 2, 992, 993, 3, 2, 2, 2, 993, 994, 3, 2, 2, 2, 994, 1003, 9, 14, 2, 2, 995, 997, 7, 33, 2, 2, 996, 998, 7, 27, 2, 2, 997, 996, 3, 2, 2, 2, 997, 998, 3, 2, 2, 2, 998, 999, 3, 2, 2, 2, 999, 1000, 7, 12, 2, 2, 1000, 1001, 7, 7, 2, 2, 1001, 1003, 5, 142, 72, 2, 1002, 920, 3, 2, 2, 2, 1002, 928, 3, 2, 2, 2, 1002, 943, 3, 2, 2, 2, 1002, 950, 3, 2, 2, 2, 1002, 956, 3, 2, 2, 2, 1002, 961, 3, 2, 2, 2, 1002, 981, 3, 2, 2, 2, 1002, 985, 3, 2, 2, 2, 1002, 990, 3, 2, 2, 2, 1002, 995, 3, 2, 2, 2, 1003, 141, 3, 2, 2, 2, 1004, 1005, 8, 72, 1, 2, 1005, 1009, 5, 144, 73, 2, 1006, 1007, 9, 15, 2, 2, 1007, 1009, 5, 142, 72, 9, 1008, 1004, 3, 2, 2, 2, 1008, 1006, 3, 2, 2, 2, 1009, 1031, 3, 2, 2, 2, 1010, 1011, 12, 8, 2, 2, 1011, 1012, 9, 16, 2, 2, 1012, 1030, 5, 142, 72, 9, 1013, 1014, 12, 7, 2, 2, 1014, 1015, 9, 17, 2, 2, 1015, 1030, 5, 142, 72, 8, 1016, 1017, 12, 6, 2, 2, 1017, 1018, 7, 264, 2, 2, 1018, 1030, 5, 142, 72, 7, 1019, 1020, 12, 5, 2, 2, 1020, 1021, 7, 265, 2, 2, 1021, 1030, 5, 142, 72, 6, 1022, 1023, 12, 4, 2, 2, 1023, 1024, 7, 263, 2, 2, 1024, 1030, 5, 142, 72, 5, 1025, 1026, 12, 3, 2, 2, 1026, 1027, 5, 208, 105, 2, 1027, 1028, 5, 142, 72, 4, 1028, 1030, 3, 2, 2, 2, 1029, 1010, 3, 2, 2, 2, 1029, 1013, 3, 2, 2, 2, 1029, 1016, 3, 2, 2, 2, 1029, 1019, 3, 2, 2, 2, 1029, 1022, 3, 2, 2, 2, 1029, 1025, 3, 2, 2, 2, 1030, 1033, 3, 2, 2, 2, 1031, 1029, 3, 2, 2, 2, 1031, 1032, 3, 2, 2, 2, 1032, 143, 3, 2, 2, 2, 1033, 1031, 3, 2, 2, 2, 1034, 1035, 8, 73, 1, 2, 1035, 1037, 7, 41, 2, 2, 1036, 1038, 5, 184, 93, 2, 1037, 1036, 3, 2, 2, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1037, 3, 2, 2, 2, 1039, 1040, 3, 2, 2, 2, 1040, 1043, 3, 2, 2, 2, 1041, 1042, 7, 44, 2, 2, 1042, 1044, 5, 136, 69, 2, 1043, 1041, 3, 2, 2, 2, 1043, 1044, 3, 2, 2, 2, 1044, 1045, 3, 2, 2, 2, 1045, 1046, 7, 45, 2, 2, 1046, 1126, 3, 2, 2, 2, 1047, 1048, 7, 41, 2, 2, 1048, 1050, 5, 136, 69, 2, 1049, 1051, 5, 184, 93, 2, 1050, 1049, 3, 2, 2, 2, 1051, 1052, 3, 2, 2, 2, 1052, 1050, 3, 2, 2, 2, 1052, 1053, 3, 2, 2, 2, 1053, 1056, 3, 2, 2, 2, 1054, 1055, 7, 44, 2, 2, 1055, 1057, 5, 136, 69, 2, 1056, 1054, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1058, 3, 2, 2, 2, 1058, 1059, 7, 45, 2, 2, 1059, 1126, 3, 2, 2, 2, 1060, 1061, 7, 86, 2, 2, 1061, 1062, 7, 269, 2, 2, 1062, 1063, 5, 136, 69, 2, 1063, 1064, 7, 9, 2, 2, 1064, 1065, 5, 32, 17, 2, 1065, 1066, 7, 270, 2, 2, 1066, 1126, 3, 2, 2, 2, 1067, 1068, 7, 67, 2, 2, 1068, 1069, 7, 269, 2, 2, 1069, 1072, 5, 136, 69, 2, 1070, 1071, 7, 114, 2, 2, 1071, 1073, 7, 36, 2, 2, 1072, 1070, 3, 2, 2, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 3, 2, 2, 2, 1074, 1075, 7, 270, 2, 2, 1075, 1126, 3, 2, 2, 2, 1076, 1077, 7, 69, 2, 2, 1077, 1078, 7, 269, 2, 2, 1078, 1081, 5, 136, 69, 2, 1079, 1080, 7, 114, 2, 2, 1080, 1082, 7, 36, 2, 2, 1081, 1079, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1084, 7, 270, 2, 2, 1084, 1126, 3, 2, 2, 2, 1085, 1086, 7, 119, 2, 2, 1086, 1087, 7, 269, 2, 2, 1087, 1088, 5, 142, 72, 2, 1088, 1089, 7, 26, 2, 2, 1089, 1090, 5, 142, 72, 2, 1090, 1091, 7, 270, 2, 2, 1091, 1126, 3, 2, 2, 2, 1092, 1126, 5, 218, 110, 2, 1093, 1126, 7, 278, 2, 2, 1094, 1095, 5, 188, 95, 2, 1095, 1096, 7, 266, 2, 2, 1096, 1097, 7, 278, 2, 2, 1097, 1126, 3, 2, 2, 2, 1098, 1099, 7, 269, 2, 2, 1099, 1100, 5, 90, 46, 2, 1100, 1101, 7, 270, 2, 2, 1101, 1126, 3, 2, 2, 2, 1102, 1103, 5, 146, 74, 2, 1103, 1115, 7, 269, 2, 2, 1104, 1106, 5, 226, 114, 2, 1105, 1104, 3, 2, 2, 2, 1105, 1106, 3, 2, 2, 2, 1106, 1107, 3, 2, 2, 2, 1107, 1112, 5, 136, 69, 2, 1108, 1109, 7, 271, 2, 2, 1109, 1111, 5, 136, 69, 2, 1110, 1108, 3, 2, 2, 2, 1111, 1114, 3, 2, 2, 2, 1112, 1110, 3, 2, 2, 2, 1112, 1113, 3, 2, 2, 2, 1113, 1116, 3, 2, 2, 2, 1114, 1112, 3, 2, 2, 2, 1115, 1105, 3, 2, 2, 2, 1115, 1116, 3, 2, 2, 2, 1116, 1117, 3, 2, 2, 2, 1117, 1118, 7, 270, 2, 2, 1118, 1126, 3, 2, 2, 2, 1119, 1126, 5, 176, 89, 2, 1120, 1126, 5, 148, 75, 2, 1121, 1122, 7, 269, 2, 2, 1122, 1123, 5, 136, 69, 2, 1123, 1124, 7, 270, 2, 2, 1124, 1126, 3, 2, 2, 2, 1125, 1034, 3, 2, 2, 2, 1125, 1047, 3, 2, 2, 2, 1125, 1060, 3, 2, 2, 2, 1125, 1067, 3, 2, 2, 2, 1125, 1076, 3, 2, 2, 2, 1125, 1085, 3, 2, 2, 2, 1125, 1092, 3, 2, 2, 2, 1125, 1093, 3, 2, 2, 2, 1125, 1094, 3, 2, 2, 2, 1125, 1098, 3, 2, 2, 2, 1125, 1102, 3, 2, 2, 2, 1125, 1119, 3, 2, 2, 2, 1125, 1120, 3, 2, 2, 2, 1125, 1121, 3, 2, 2, 2, 1126, 1134, 3, 2, 2, 2, 1127, 1128, 12, 6, 2, 2, 1128, 1129, 7, 267, 2, 2, 1129, 1130, 5, 142, 72, 2, 1130, 1131, 7, 268, 2, 2, 1131, 1133, 3, 2, 2, 2, 1132, 1127, 3, 2, 2, 2, 1133, 1136, 3, 2, 2, 2, 1134, 1132, 3, 2, 2, 2, 1134, 1135, 3, 2, 2, 2, 1135, 145, 3, 2, 2, 2, 1136, 1134, 3, 2, 2, 2, 1137, 1138, 5, 188, 95, 2, 1138, 147, 3, 2, 2, 2, 1139, 1140, 5, 188, 95, 2, 1140, 149, 3, 2, 2, 2, 1141, 1144, 5, 176, 89, 2, 1142, 1144, 5, 148, 75, 2, 1143, 1141, 3, 2, 2, 2, 1143, 1142, 3, 2, 2, 2, 1144, 151, 3, 2, 2, 2, 1145, 1148, 7, 40, 2, 2, 1146, 1149, 5, 154, 78, 2, 1147, 1149, 5, 158, 80, 2, 1148, 1146, 3, 2, 2, 2, 1148, 1147, 3, 2, 2, 2, 1148, 1149, 3, 2, 2, 2, 1149, 153, 3, 2, 2, 2, 1150, 1152, 5, 156, 79, 2, 1151, 1153, 5, 160, 81, 2, 1152, 1151, 3, 2, 2, 2, 1152, 1153, 3, 2, 2, 2, 1153, 155, 3, 2, 2, 2, 1154, 1155, 5, 162, 82, 2, 1155, 1156, 5, 176, 89, 2, 1156, 1158, 3, 2, 2, 2, 1157, 1154, 3, 2, 2, 2, 1158, 1159, 3, 2, 2, 2, 1159, 1157, 3, 2, 2, 2, 1159, 1160, 3, 2, 2, 2, 1160, 157, 3, 2, 2, 2, 1161, 1164, 5, 160, 81, 2, 1162, 1165, 5, 156, 79, 2, 1163, 1165, 5, 160, 81, 2, 1164, 1162, 3, 2, 2, 2, 1164, 1163, 3, 2, 2, 2, 1164, 1165, 3, 2, 2, 2, 1165, 159, 3, 2, 2, 2, 1166, 1167, 5, 162, 82, 2, 1167, 1168, 5, 176, 89, 2, 1168, 1169, 7, 99, 2, 2, 1169, 1170, 5, 176, 89, 2, 1170, 161, 3, 2, 2, 2, 1171, 1173, 9, 18, 2, 2, 1172, 1171, 3, 2, 2, 2, 1172, 1173, 3, 2, 2, 2, 1173, 1174, 3, 2, 2, 2, 1174, 1177, 9, 19, 2, 2, 1175, 1177, 7, 288, 2, 2, 1176, 1172, 3, 2, 2, 2, 1176, 1175, 3, 2, 2, 2, 1177, 163, 3, 2, 2, 2, 1178, 1180, 7, 9, 2, 2, 1179, 1178, 3, 2, 2, 2, 1179, 1180, 3, 2, 2, 2, 1180, 1181, 3, 2, 2, 2, 1181, 1183, 5, 178, 90, 2, 1182, 1184, 5, 172, 87, 2, 1183, 1182, 3, 2, 2, 2, 1183, 1184, 3, 2, 2, 2, 1184, 165, 3, 2, 2, 2, 1185, 1187, 7, 9, 2, 2, 1186, 1185, 3, 2, 2, 2, 1186, 1187, 3, 2, 2, 2, 1187, 1188, 3, 2, 2, 2, 1188, 1190, 5, 178, 90, 2, 1189, 1191, 5, 172, 87, 2, 1190, 1189, 3, 2, 2, 2, 1190, 1191, 3, 2, 2, 2, 1191, 167, 3, 2, 2, 2, 1192, 1193, 5, 176, 89, 2, 1193, 1194, 5, 170, 86, 2, 1194, 169, 3, 2, 2, 2, 1195, 1196, 7, 121, 2, 2, 1196, 1198, 5, 176, 89, 2, 1197, 1195, 3, 2, 2, 2, 1198, 1199, 3, 2, 2, 2, 1199, 1197, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1203, 3, 2, 2, 2, 1201, 1203, 3, 2, 2, 2, 1202, 1197, 3, 2, 2, 2, 1202, 1201, 3, 2, 2, 2, 1203, 171, 3, 2, 2, 2, 1204, 1205, 7, 269, 2, 2, 1205, 1206, 5, 174, 88, 2, 1206, 1207, 7, 270, 2, 2, 1207, 173, 3, 2, 2, 2, 1208, 1213, 5, 176, 89, 2, 1209, 1210, 7, 271, 2, 2, 1210, 1212, 5, 176, 89, 2, 1211, 1209, 3, 2, 2, 2, 1212, 1215, 3, 2, 2, 2, 1213, 1211, 3, 2, 2, 2, 1213, 1214, 3, 2, 2, 2, 1214, 175, 3, 2, 2, 2, 1215, 1213, 3, 2, 2, 2, 1216, 1219, 5, 178, 90, 2, 1217, 1219, 5, 230, 116, 2, 1218, 1216, 3, 2, 2, 2, 1218, 1217, 3, 2, 2, 2, 1219, 177, 3, 2, 2, 2, 1220, 1225, 5, 180, 91, 2, 1221, 1225, 5, 182, 92, 2, 1222, 1225, 5, 228, 115, 2, 1223, 1225, 5, 232, 117, 2, 1224, 1220, 3, 2, 2, 2, 1224, 1221, 3, 2, 2, 2, 1224, 1222, 3, 2, 2, 2, 1224, 1223, 3, 2, 2, 2, 1225, 179, 3, 2, 2, 2, 1226, 1227, 9, 20, 2, 2, 1227, 181, 3, 2, 2, 2, 1228, 1229, 7, 288, 2, 2, 1229, 183, 3, 2, 2, 2, 1230, 1231, 7, 42, 2, 2, 1231, 1232, 5, 136, 69, 2, 1232, 1233, 7, 43, 2, 2, 1233, 1234, 5, 136, 69, 2, 1234, 185, 3, 2, 2, 2, 1235, 1240, 5, 188, 95, 2, 1236, 1237, 7, 271, 2, 2, 1237, 1239, 5, 188, 95, 2, 1238, 1236, 3, 2, 2, 2, 1239, 1242, 3, 2, 2, 2, 1240, 1238, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 187, 3, 2, 2, 2, 1242, 1240, 3, 2, 2, 2, 1243, 1247, 7, 292, 2, 2, 1244, 1246, 7, 286, 2, 2, 1245, 1244, 3, 2, 2, 2, 1246, 1249, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1247, 1245, 3, 2, 2, 2, 1248, 189, 3, 2, 2, 2, 1249, 1247, 3, 2, 2, 2, 1250, 1254, 9, 21, 2, 2, 1251, 1253, 9, 22, 2, 2, 1252, 1251, 3, 2, 2, 2, 1253, 1256, 3, 2, 2, 2, 1254, 1255, 3, 2, 2, 2, 1254, 1252, 3, 2, 2, 2, 1255, 191, 3, 2, 2, 2, 1256, 1254, 3, 2, 2, 2, 1257, 1258, 7, 70, 2, 2, 1258, 1259, 5, 198, 100, 2, 1259, 193, 3, 2, 2, 2, 1260, 1261, 7, 118, 2, 2, 1261, 1262, 7, 27, 2, 2, 1262, 1263, 7, 29, 2, 2, 1263, 195, 3, 2, 2, 2, 1264, 1265, 7, 118, 2, 2, 1265, 1266, 7, 29, 2, 2, 1266, 197, 3, 2, 2, 2, 1267, 1268, 7, 269, 2, 2, 1268, 1273, 5, 200, 101, 2, 1269, 1270, 7, 271, 2, 2, 1270, 1272, 5, 200, 101, 2, 1271, 1269, 3, 2, 2, 2, 1272, 1275, 3, 2, 2, 2, 1273, 1271, 3, 2, 2, 2, 1273, 1274, 3, 2, 2, 2, 1274, 1276, 3, 2, 2, 2, 1275, 1273, 3, 2, 2, 2, 1276, 1277, 7, 270, 2, 2, 1277, 199, 3, 2, 2, 2, 1278, 1283, 5, 202, 102, 2, 1279, 1281, 7, 258, 2, 2, 1280, 1279, 3, 2, 2, 2, 1280, 1281, 3, 2, 2, 2, 1281, 1282, 3, 2, 2, 2, 1282, 1284, 5, 204, 103, 2, 1283, 1280, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 201, 3, 2, 2, 2, 1285, 1289, 5, 176, 89, 2, 1286, 1289, 5, 148, 75, 2, 1287, 1289, 7, 288, 2, 2, 1288, 1285, 3, 2, 2, 2, 1288, 1286, 3, 2, 2, 2, 1288, 1287, 3, 2, 2, 2, 1289, 203, 3, 2, 2, 2, 1290, 1295, 7, 289, 2, 2, 1291, 1295, 7, 290, 2, 2, 1292, 1295, 5, 224, 113, 2, 1293, 1295, 7, 288, 2, 2, 1294, 1290, 3, 2, 2, 2, 1294, 1291, 3, 2, 2, 2, 1294, 1292, 3, 2, 2, 2, 1294, 1293, 3, 2, 2, 2, 1295, 205, 3, 2, 2, 2, 1296, 1303, 7, 25, 2, 2, 1297, 1298, 7, 264, 2, 2, 1298, 1303, 7, 264, 2, 2, 1299, 1303, 7, 24, 2, 2, 1300, 1301, 7, 263, 2, 2, 1301, 1303, 7, 263, 2, 2, 1302, 1296, 3, 2, 2, 2, 1302, 1297, 3, 2, 2, 2, 1302, 1299, 3, 2, 2, 2, 1302, 1300, 3, 2, 2, 2, 1303, 207, 3, 2, 2, 2, 1304, 1319, 7, 258, 2, 2, 1305, 1319, 7, 259, 2, 2, 1306, 1319, 7, 260, 2, 2, 1307, 1308, 7, 260, 2, 2, 1308, 1319, 7, 258, 2, 2, 1309, 1310, 7, 259, 2, 2, 1310, 1319, 7, 258, 2, 2, 1311, 1312, 7, 260, 2, 2, 1312, 1319, 7, 259, 2, 2, 1313, 1314, 7, 261, 2, 2, 1314, 1319, 7, 258, 2, 2, 1315, 1316, 7, 260, 2, 2, 1316, 1317, 7, 258, 2, 2, 1317, 1319, 7, 259, 2, 2, 1318, 1304, 3, 2, 2, 2, 1318, 1305, 3, 2, 2, 2, 1318, 1306, 3, 2, 2, 2, 1318, 1307, 3, 2, 2, 2, 1318, 1309, 3, 2, 2, 2, 1318, 1311, 3, 2, 2, 2, 1318, 1313, 3, 2, 2, 2, 1318, 1315, 3, 2, 2, 2, 1319, 209, 3, 2, 2, 2, 1320, 1321, 7, 260, 2, 2, 1321, 1328, 7, 260, 2, 2, 1322, 1323, 7, 259, 2, 2, 1323, 1328, 7, 259, 2, 2, 1324, 1328, 7, 264, 2, 2, 1325, 1328, 7, 265, 2, 2, 1326, 1328, 7, 263, 2, 2, 1327, 1320, 3, 2, 2, 2, 1327, 1322, 3, 2, 2, 2, 1327, 1324, 3, 2, 2, 2, 1327, 1325, 3, 2, 2, 2, 1327, 1326, 3, 2, 2, 2, 1328, 211, 3, 2, 2, 2, 1329, 1330, 9, 23, 2, 2, 1330, 213, 3, 2, 2, 2, 1331, 1332, 9, 24, 2, 2, 1332, 215, 3, 2, 2, 2, 1333, 1334, 5, 188, 95, 2, 1334, 217, 3, 2, 2, 2, 1335, 1348, 5, 220, 111, 2, 1336, 1348, 5, 222, 112, 2, 1337, 1348, 5, 152, 77, 2, 1338, 1339, 7, 280, 2, 2, 1339, 1348, 5, 222, 112, 2, 1340, 1348, 5, 224, 113, 2, 1341, 1348, 7, 290, 2, 2, 1342, 1348, 7, 291, 2, 2, 1343, 1345, 7, 27, 2, 2, 1344, 1343, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1346, 3, 2, 2, 2, 1346, 1348, 7, 256, 2, 2, 1347, 1335, 3, 2, 2, 2, 1347, 1336, 3, 2, 2, 2, 1347, 1337, 3, 2, 2, 2, 1347, 1338, 3, 2, 2, 2, 1347, 1340, 3, 2, 2, 2, 1347, 1341, 3, 2, 2, 2, 1347, 1342, 3, 2, 2, 2, 1347, 1344, 3, 2, 2, 2, 1348, 219, 3, 2, 2, 2, 1349, 1350, 7, 288, 2, 2, 1350, 221, 3, 2, 2, 2, 1351, 1352, 7, 289, 2, 2, 1352, 223, 3, 2, 2, 2, 1353, 1354, 9, 14, 2, 2, 1354, 225, 3, 2, 2, 2, 1355, 1356, 9, 25, 2, 2, 1356, 227, 3, 2, 2, 2, 1357, 1358, 9, 26, 2, 2, 1358, 229, 3, 2, 2, 2, 1359, 1360, 9, 27, 2, 2, 1360, 231, 3, 2, 2, 2, 1361, 1362, 9, 28, 2, 2, 1362, 233, 3, 2, 2, 2, 159, 242, 245, 247, 256, 272, 276, 288, 304, 309, 313, 317, 321, 324, 328, 333, 336, 340, 347, 367, 389, 402, 407, 411, 421, 431, 435, 441, 445, 449, 452, 461, 465, 472, 479, 497, 501, 508, 513, 520, 524, 528, 532, 540, 544, 552, 556, 567, 576, 589, 592, 596, 599, 601, 606, 610, 613, 617, 626, 632, 635, 638, 641, 645, 653, 656, 660, 663, 674, 679, 682, 687, 691, 696, 699, 712, 723, 734, 739, 751, 763, 775, 787, 800, 805, 817, 822, 827, 835, 843, 853, 856, 865, 868, 871, 877, 881, 887, 904, 906, 914, 916, 920, 928, 937, 943, 956, 961, 973, 978, 981, 987, 992, 997, 1002, 1008, 1029, 1031, 1039, 1043, 1052, 1056, 1072, 1081, 1105, 1112, 1115, 1125, 1134, 1143, 1148, 1152, 1159, 1164, 1172, 1176, 1179, 1183, 1186, 1190, 1199, 1202, 1213, 1218, 1224, 1240, 1247, 1254, 1273, 1280, 1283, 1288, 1294, 1302, 1318, 1327, 1344, 1347] \ No newline at end of file diff --git a/src/lib/flinksql/FlinkSqlParser.js b/src/lib/flinksql/FlinkSqlParser.js new file mode 100644 index 0000000..d8ba15a --- /dev/null +++ b/src/lib/flinksql/FlinkSqlParser.js @@ -0,0 +1,17483 @@ +// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); +var FlinkSqlParserListener = require('./FlinkSqlParserListener').FlinkSqlParserListener; +var FlinkSqlParserVisitor = require('./FlinkSqlParserVisitor').FlinkSqlParserVisitor; + +var grammarFileName = "FlinkSqlParser.g4"; + + +var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", + "\u0003\u0125\u0554\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", + "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", + "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", + "\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013\u0004\u0014", + "\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017\t\u0017", + "\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a\u0004\u001b", + "\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e\t\u001e", + "\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#\t#\u0004", + "$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004*\t*\u0004", + "+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u00041\t1\u0004", + "2\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u00048\t8\u0004", + "9\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004?\t?\u0004", + "@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004F\tF\u0004", + "G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004M\tM\u0004", + "N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004T\tT\u0004", + "U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004[\t[\u0004", + "\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004b\tb\u0004", + "c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004i\ti\u0004", + "j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004p\tp\u0004", + "q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0003\u0002\u0003\u0002", + "\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004", + "\u0005\u0004\u00f3\n\u0004\u0003\u0004\u0007\u0004\u00f6\n\u0004\f\u0004", + "\u000e\u0004\u00f9\u000b\u0004\u0003\u0005\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0005\u0005\u0101\n\u0005\u0003\u0006", + "\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007\u0003\u0007", + "\u0003\u0007\u0005\u0007\u0111\n\u0007\u0003\b\u0003\b\u0005\b\u0115", + "\n\b\u0003\t\u0003\t\u0003\t\u0003\n\u0003\n\u0003\n\u0003\n\u0003\n", + "\u0003\u000b\u0003\u000b\u0005\u000b\u0121\n\u000b\u0003\u000b\u0003", + "\u000b\u0003\f\u0003\f\u0003\f\u0003\r\u0003\r\u0003\r\u0003\r\u0003", + "\r\u0003\r\u0003\r\u0007\r\u012f\n\r\f\r\u000e\r\u0132\u000b\r\u0003", + "\r\u0003\r\u0005\r\u0136\n\r\u0003\r\u0003\r\u0005\r\u013a\n\r\u0003", + "\r\u0003\r\u0005\r\u013e\n\r\u0003\r\u0003\r\u0005\r\u0142\n\r\u0003", + "\r\u0005\r\u0145\n\r\u0003\r\u0003\r\u0005\r\u0149\n\r\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0005\u000e\u014e\n\u000e\u0003\u000e\u0005\u000e", + "\u0151\n\u000e\u0003\u000f\u0003\u000f\u0005\u000f\u0155\n\u000f\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0007\u0010\u015a\n\u0010\f\u0010\u000e", + "\u0010\u015d\u000b\u0010\u0003\u0011\u0003\u0011\u0003\u0012\u0003\u0012", + "\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014", + "\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0015", + "\u0003\u0015\u0005\u0015\u0170\n\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003\u0017\u0003\u0017\u0003", + "\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0007\u0018\u0184\n\u0018", + "\f\u0018\u000e\u0018\u0187\u000b\u0018\u0003\u0018\u0003\u0018\u0003", + "\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0007", + "\u0019\u0191\n\u0019\f\u0019\u000e\u0019\u0194\u000b\u0019\u0003\u0019", + "\u0003\u0019\u0005\u0019\u0198\n\u0019\u0003\u001a\u0003\u001a\u0005", + "\u001a\u019c\n\u001a\u0003\u001b\u0003\u001b\u0003\u001b\u0003\u001b", + "\u0003\u001c\u0003\u001c\u0003\u001c\u0003\u001c\u0005\u001c\u01a6\n", + "\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0005\u001e\u01b0\n\u001e\u0003\u001e", + "\u0003\u001e\u0005\u001e\u01b4\n\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001f\u0003\u001f\u0005\u001f\u01ba\n\u001f\u0003\u001f\u0003\u001f", + "\u0005\u001f\u01be\n\u001f\u0003\u001f\u0003\u001f\u0005\u001f\u01c2", + "\n\u001f\u0003\u001f\u0005\u001f\u01c5\n\u001f\u0003\u001f\u0003\u001f", + "\u0003\u001f\u0003 \u0003 \u0003 \u0003 \u0005 \u01ce\n \u0003 \u0003", + " \u0005 \u01d2\n \u0003 \u0003 \u0003 \u0003 \u0003 \u0005 \u01d9\n", + " \u0003!\u0003!\u0003!\u0003!\u0003!\u0005!\u01e0\n!\u0003\"\u0003\"", + "\u0003\"\u0003\"\u0003#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0003", + "$\u0003%\u0003%\u0003%\u0003%\u0005%\u01f2\n%\u0003%\u0003%\u0005%\u01f6", + "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u01fd\n%\u0003&\u0003", + "&\u0003&\u0005&\u0202\n&\u0003&\u0003&\u0003\'\u0003\'\u0003\'\u0005", + "\'\u0209\n\'\u0003\'\u0003\'\u0005\'\u020d\n\'\u0003(\u0003(\u0005(", + "\u0211\n(\u0003(\u0003(\u0005(\u0215\n(\u0003(\u0003(\u0003)\u0003)", + "\u0003)\u0003)\u0005)\u021d\n)\u0003)\u0003)\u0005)\u0221\n)\u0003)", + "\u0003)\u0003*\u0003*\u0003*\u0003*\u0005*\u0229\n*\u0003*\u0003*\u0005", + "*\u022d\n*\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0007,\u0236", + "\n,\f,\u000e,\u0239\u000b,\u0003-\u0003-\u0003-\u0003-\u0007-\u023f", + "\n-\f-\u000e-\u0242\u000b-\u0003-\u0003-\u0003.\u0003.\u0003.\u0003", + ".\u0003.\u0003.\u0003.\u0003.\u0005.\u024e\n.\u0003.\u0005.\u0251\n", + ".\u0003.\u0003.\u0005.\u0255\n.\u0003.\u0005.\u0258\n.\u0005.\u025a", + "\n.\u0003.\u0003.\u0003.\u0005.\u025f\n.\u0003.\u0003.\u0005.\u0263", + "\n.\u0003.\u0005.\u0266\n.\u0007.\u0268\n.\f.\u000e.\u026b\u000b.\u0003", + "/\u0003/\u0003/\u0003/\u0007/\u0271\n/\f/\u000e/\u0274\u000b/\u0003", + "0\u00030\u00030\u00050\u0279\n0\u00030\u00050\u027c\n0\u00030\u0005", + "0\u027f\n0\u00030\u00050\u0282\n0\u00031\u00031\u00051\u0286\n1\u0003", + "1\u00031\u00031\u00031\u00071\u028c\n1\f1\u000e1\u028f\u000b1\u0005", + "1\u0291\n1\u00032\u00032\u00052\u0295\n2\u00032\u00052\u0298\n2\u0003", + "3\u00033\u00033\u00034\u00034\u00034\u00034\u00074\u02a1\n4\f4\u000e", + "4\u02a4\u000b4\u00034\u00034\u00054\u02a8\n4\u00034\u00054\u02ab\n4", + "\u00034\u00034\u00034\u00054\u02b0\n4\u00074\u02b2\n4\f4\u000e4\u02b5", + "\u000b4\u00035\u00035\u00055\u02b9\n5\u00036\u00056\u02bc\n6\u00036", + "\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00076\u02c7", + "\n6\f6\u000e6\u02ca\u000b6\u00036\u00036\u00036\u00036\u00036\u0003", + "6\u00036\u00036\u00056\u02d4\n6\u00037\u00037\u00037\u00037\u00037\u0003", + "7\u00037\u00077\u02dd\n7\f7\u000e7\u02e0\u000b7\u00037\u00037\u0005", + "7\u02e4\n7\u00038\u00038\u00038\u00039\u00039\u00039\u00039\u00039\u0007", + "9\u02ee\n9\f9\u000e9\u02f1\u000b9\u0003:\u0003:\u0003:\u0003:\u0003", + ":\u0003:\u0003:\u0007:\u02fa\n:\f:\u000e:\u02fd\u000b:\u0003:\u0003", + ":\u0003:\u0003:\u0003:\u0003:\u0003:\u0007:\u0306\n:\f:\u000e:\u0309", + "\u000b:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003:\u0007:\u0312", + "\n:\f:\u000e:\u0315\u000b:\u0003:\u0003:\u0003:\u0003:\u0003:\u0003", + ":\u0003:\u0003:\u0007:\u031f\n:\f:\u000e:\u0322\u000b:\u0003:\u0003", + ":\u0005:\u0326\n:\u0003;\u0003;\u0003;\u0003<\u0003<\u0003<\u0003<\u0003", + "<\u0007<\u0330\n<\f<\u000e<\u0333\u000b<\u0003=\u0003=\u0005=\u0337", + "\n=\u0003>\u0003>\u0003>\u0005>\u033c\n>\u0003?\u0003?\u0003?\u0003", + "?\u0007?\u0342\n?\f?\u000e?\u0345\u000b?\u0003@\u0003@\u0003@\u0003", + "@\u0003A\u0005A\u034c\nA\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0007", + "A\u0354\nA\fA\u000eA\u0357\u000bA\u0005A\u0359\nA\u0003A\u0003A\u0003", + "A\u0003A\u0003A\u0007A\u0360\nA\fA\u000eA\u0363\u000bA\u0005A\u0365", + "\nA\u0003A\u0005A\u0368\nA\u0003A\u0003A\u0003B\u0003B\u0005B\u036e", + "\nB\u0003B\u0003B\u0005B\u0372\nB\u0003C\u0003C\u0003C\u0003C\u0005", + "C\u0378\nC\u0003D\u0003D\u0003D\u0003E\u0003E\u0003F\u0003F\u0003F\u0003", + "F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0005F\u0389\nF\u0005F\u038b", + "\nF\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0007F\u0393\nF\fF\u000e", + "F\u0396\u000bF\u0003G\u0005G\u0399\nG\u0003G\u0003G\u0003G\u0003G\u0003", + "G\u0003G\u0005G\u03a1\nG\u0003G\u0003G\u0003G\u0003G\u0003G\u0007G\u03a8", + "\nG\fG\u000eG\u03ab\u000bG\u0003G\u0003G\u0003G\u0005G\u03b0\nG\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003", + "G\u0005G\u03bd\nG\u0003G\u0003G\u0003G\u0005G\u03c2\nG\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0007G\u03cc\nG\fG\u000e", + "G\u03cf\u000bG\u0003G\u0003G\u0005G\u03d3\nG\u0003G\u0005G\u03d6\nG", + "\u0003G\u0003G\u0003G\u0003G\u0005G\u03dc\nG\u0003G\u0003G\u0003G\u0005", + "G\u03e1\nG\u0003G\u0003G\u0003G\u0005G\u03e6\nG\u0003G\u0003G\u0003", + "G\u0005G\u03eb\nG\u0003H\u0003H\u0003H\u0003H\u0005H\u03f1\nH\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0007H\u0406", + "\nH\fH\u000eH\u0409\u000bH\u0003I\u0003I\u0003I\u0006I\u040e\nI\rI\u000e", + "I\u040f\u0003I\u0003I\u0005I\u0414\nI\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0006I\u041b\nI\rI\u000eI\u041c\u0003I\u0003I\u0005I\u0421\nI\u0003", + "I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0005I\u0431\nI\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0005I\u043a\nI\u0003I\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0005I\u0452\nI\u0003I\u0003", + "I\u0003I\u0007I\u0457\nI\fI\u000eI\u045a\u000bI\u0005I\u045c\nI\u0003", + "I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0003I\u0005I\u0466\nI\u0003", + "I\u0003I\u0003I\u0003I\u0003I\u0007I\u046d\nI\fI\u000eI\u0470\u000b", + "I\u0003J\u0003J\u0003K\u0003K\u0003L\u0003L\u0005L\u0478\nL\u0003M\u0003", + "M\u0003M\u0005M\u047d\nM\u0003N\u0003N\u0005N\u0481\nN\u0003O\u0003", + "O\u0003O\u0006O\u0486\nO\rO\u000eO\u0487\u0003P\u0003P\u0003P\u0005", + "P\u048d\nP\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0005R\u0495\n", + "R\u0003R\u0003R\u0005R\u0499\nR\u0003S\u0005S\u049c\nS\u0003S\u0003", + "S\u0005S\u04a0\nS\u0003T\u0005T\u04a3\nT\u0003T\u0003T\u0005T\u04a7", + "\nT\u0003U\u0003U\u0003U\u0003V\u0003V\u0006V\u04ae\nV\rV\u000eV\u04af", + "\u0003V\u0005V\u04b3\nV\u0003W\u0003W\u0003W\u0003W\u0003X\u0003X\u0003", + "X\u0007X\u04bc\nX\fX\u000eX\u04bf\u000bX\u0003Y\u0003Y\u0005Y\u04c3", + "\nY\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u04c9\nZ\u0003[\u0003[\u0003", + "\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003^\u0003^\u0007", + "^\u04d7\n^\f^\u000e^\u04da\u000b^\u0003_\u0003_\u0007_\u04de\n_\f_\u000e", + "_\u04e1\u000b_\u0003`\u0003`\u0007`\u04e5\n`\f`\u000e`\u04e8\u000b`", + "\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003", + "c\u0003d\u0003d\u0003d\u0003d\u0007d\u04f8\nd\fd\u000ed\u04fb\u000b", + "d\u0003d\u0003d\u0003e\u0003e\u0005e\u0501\ne\u0003e\u0005e\u0504\n", + "e\u0003f\u0003f\u0003f\u0005f\u0509\nf\u0003g\u0003g\u0003g\u0003g\u0005", + "g\u050f\ng\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0005h\u0517\n", + "h\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003i\u0003", + "i\u0003i\u0003i\u0003i\u0003i\u0005i\u0527\ni\u0003j\u0003j\u0003j\u0003", + "j\u0003j\u0003j\u0003j\u0005j\u0530\nj\u0003k\u0003k\u0003l\u0003l\u0003", + "m\u0003m\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003n\u0003", + "n\u0005n\u0541\nn\u0003n\u0005n\u0544\nn\u0003o\u0003o\u0003p\u0003", + "p\u0003q\u0003q\u0003r\u0003r\u0003s\u0003s\u0003t\u0003t\u0003u\u0003", + "u\u0003u\u0004\u04df\u04e6\u0007Zf\u008a\u008e\u0090v\u0002\u0004\u0006", + "\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*", + ",.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086", + "\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e", + "\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6", + "\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce", + "\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6", + "\u00e8\u0002\u001d\u0006\u0002XX]]\u00b7\u00b7\u00e4\u00e5\u0003\u0002", + "\u00ea\u0101\u0003\u0002\u00de\u00df\u0004\u0002\n\n\u00e0\u00e0\u0004", + "\u0002\u009d\u009d\u00e1\u00e1\u0004\u0002\u00ae\u00ae\u00b0\u00b0\u0004", + "\u0002OO\u0082\u0082\u0004\u0002_`bb\u0004\u00021245\u0003\u0002%&\u0004", + "\u0002CCEE\u0003\u0002\n\u000b\u0003\u0002\"#\u0004\u0002\u0106\u0106", + "\u0118\u0119\u0006\u0002zz\u0116\u0116\u011a\u011a\u011d\u011d\u0004", + "\u0002\u0118\u0119\u011b\u011b\u0003\u0002\u0118\u0119\u0003\u0002\u0121", + "\u0122\u0004\u0002\u0121\u0121\u0124\u0124\u0003\u0002\u0124\u0125\u0003", + "\u0002\u011e\u011f\u0006\u0002zz\u0116\u0116\u0118\u011a\u011c\u011d", + "\u0005\u0002\u001b\u001b\u0105\u0106\u0118\u0119\u0004\u0002\n\n\f\f", + "\u0017\u0002\b\b\u000f\u0013\u0016\u0017\u001c \"\"$&((338EGGJNPUWY", + "[^aadrv\u0084\u0086\u00ae\u00b0\u00c1\u00c3\u00e5\u00e7\u0101\u0007", + "\u0002./17_b\u0085\u0085\u00d4\u00d4\t\u0002\u0006-008^c\u0084\u0086", + "\u00a6\u00a8\u00d3\u00d5\u0101\u0002\u05c3\u0002\u00ea\u0003\u0002\u0002", + "\u0002\u0004\u00ed\u0003\u0002\u0002\u0002\u0006\u00f7\u0003\u0002\u0002", + "\u0002\b\u0100\u0003\u0002\u0002\u0002\n\u0102\u0003\u0002\u0002\u0002", + "\f\u0110\u0003\u0002\u0002\u0002\u000e\u0114\u0003\u0002\u0002\u0002", + "\u0010\u0116\u0003\u0002\u0002\u0002\u0012\u0119\u0003\u0002\u0002\u0002", + "\u0014\u011e\u0003\u0002\u0002\u0002\u0016\u0124\u0003\u0002\u0002\u0002", + "\u0018\u0127\u0003\u0002\u0002\u0002\u001a\u014a\u0003\u0002\u0002\u0002", + "\u001c\u0154\u0003\u0002\u0002\u0002\u001e\u0156\u0003\u0002\u0002\u0002", + " \u015e\u0003\u0002\u0002\u0002\"\u0160\u0003\u0002\u0002\u0002$\u0164", + "\u0003\u0002\u0002\u0002&\u0167\u0003\u0002\u0002\u0002(\u016f\u0003", + "\u0002\u0002\u0002*\u0177\u0003\u0002\u0002\u0002,\u017b\u0003\u0002", + "\u0002\u0002.\u017f\u0003\u0002\u0002\u00020\u0197\u0003\u0002\u0002", + "\u00022\u019b\u0003\u0002\u0002\u00024\u019d\u0003\u0002\u0002\u0002", + "6\u01a5\u0003\u0002\u0002\u00028\u01a7\u0003\u0002\u0002\u0002:\u01ac", + "\u0003\u0002\u0002\u0002<\u01b7\u0003\u0002\u0002\u0002>\u01c9\u0003", + "\u0002\u0002\u0002@\u01da\u0003\u0002\u0002\u0002B\u01e1\u0003\u0002", + "\u0002\u0002D\u01e5\u0003\u0002\u0002\u0002F\u01e8\u0003\u0002\u0002", + "\u0002H\u01ed\u0003\u0002\u0002\u0002J\u01fe\u0003\u0002\u0002\u0002", + "L\u0205\u0003\u0002\u0002\u0002N\u020e\u0003\u0002\u0002\u0002P\u0218", + "\u0003\u0002\u0002\u0002R\u0224\u0003\u0002\u0002\u0002T\u022e\u0003", + "\u0002\u0002\u0002V\u0231\u0003\u0002\u0002\u0002X\u023a\u0003\u0002", + "\u0002\u0002Z\u0259\u0003\u0002\u0002\u0002\\\u026c\u0003\u0002\u0002", + "\u0002^\u0275\u0003\u0002\u0002\u0002`\u0283\u0003\u0002\u0002\u0002", + "b\u0292\u0003\u0002\u0002\u0002d\u0299\u0003\u0002\u0002\u0002f\u029c", + "\u0003\u0002\u0002\u0002h\u02b6\u0003\u0002\u0002\u0002j\u02d3\u0003", + "\u0002\u0002\u0002l\u02e3\u0003\u0002\u0002\u0002n\u02e5\u0003\u0002", + "\u0002\u0002p\u02e8\u0003\u0002\u0002\u0002r\u0325\u0003\u0002\u0002", + "\u0002t\u0327\u0003\u0002\u0002\u0002v\u032a\u0003\u0002\u0002\u0002", + "x\u0334\u0003\u0002\u0002\u0002z\u0338\u0003\u0002\u0002\u0002|\u033d", + "\u0003\u0002\u0002\u0002~\u0346\u0003\u0002\u0002\u0002\u0080\u034b", + "\u0003\u0002\u0002\u0002\u0082\u036b\u0003\u0002\u0002\u0002\u0084\u0377", + "\u0003\u0002\u0002\u0002\u0086\u0379\u0003\u0002\u0002\u0002\u0088\u037c", + "\u0003\u0002\u0002\u0002\u008a\u038a\u0003\u0002\u0002\u0002\u008c\u03ea", + "\u0003\u0002\u0002\u0002\u008e\u03f0\u0003\u0002\u0002\u0002\u0090\u0465", + "\u0003\u0002\u0002\u0002\u0092\u0471\u0003\u0002\u0002\u0002\u0094\u0473", + "\u0003\u0002\u0002\u0002\u0096\u0477\u0003\u0002\u0002\u0002\u0098\u0479", + "\u0003\u0002\u0002\u0002\u009a\u047e\u0003\u0002\u0002\u0002\u009c\u0485", + "\u0003\u0002\u0002\u0002\u009e\u0489\u0003\u0002\u0002\u0002\u00a0\u048e", + "\u0003\u0002\u0002\u0002\u00a2\u0498\u0003\u0002\u0002\u0002\u00a4\u049b", + "\u0003\u0002\u0002\u0002\u00a6\u04a2\u0003\u0002\u0002\u0002\u00a8\u04a8", + "\u0003\u0002\u0002\u0002\u00aa\u04b2\u0003\u0002\u0002\u0002\u00ac\u04b4", + "\u0003\u0002\u0002\u0002\u00ae\u04b8\u0003\u0002\u0002\u0002\u00b0\u04c2", + "\u0003\u0002\u0002\u0002\u00b2\u04c8\u0003\u0002\u0002\u0002\u00b4\u04ca", + "\u0003\u0002\u0002\u0002\u00b6\u04cc\u0003\u0002\u0002\u0002\u00b8\u04ce", + "\u0003\u0002\u0002\u0002\u00ba\u04d3\u0003\u0002\u0002\u0002\u00bc\u04db", + "\u0003\u0002\u0002\u0002\u00be\u04e2\u0003\u0002\u0002\u0002\u00c0\u04e9", + "\u0003\u0002\u0002\u0002\u00c2\u04ec\u0003\u0002\u0002\u0002\u00c4\u04f0", + "\u0003\u0002\u0002\u0002\u00c6\u04f3\u0003\u0002\u0002\u0002\u00c8\u04fe", + "\u0003\u0002\u0002\u0002\u00ca\u0508\u0003\u0002\u0002\u0002\u00cc\u050e", + "\u0003\u0002\u0002\u0002\u00ce\u0516\u0003\u0002\u0002\u0002\u00d0\u0526", + "\u0003\u0002\u0002\u0002\u00d2\u052f\u0003\u0002\u0002\u0002\u00d4\u0531", + "\u0003\u0002\u0002\u0002\u00d6\u0533\u0003\u0002\u0002\u0002\u00d8\u0535", + "\u0003\u0002\u0002\u0002\u00da\u0543\u0003\u0002\u0002\u0002\u00dc\u0545", + "\u0003\u0002\u0002\u0002\u00de\u0547\u0003\u0002\u0002\u0002\u00e0\u0549", + "\u0003\u0002\u0002\u0002\u00e2\u054b\u0003\u0002\u0002\u0002\u00e4\u054d", + "\u0003\u0002\u0002\u0002\u00e6\u054f\u0003\u0002\u0002\u0002\u00e8\u0551", + "\u0003\u0002\u0002\u0002\u00ea\u00eb\u0005\u0004\u0003\u0002\u00eb\u00ec", + "\u0007\u0002\u0002\u0003\u00ec\u0003\u0003\u0002\u0002\u0002\u00ed\u00ee", + "\u0005\u0006\u0004\u0002\u00ee\u00ef\u0007\u0002\u0002\u0003\u00ef\u0005", + "\u0003\u0002\u0002\u0002\u00f0\u00f2\u0005\b\u0005\u0002\u00f1\u00f3", + "\u0007\u0110\u0002\u0002\u00f2\u00f1\u0003\u0002\u0002\u0002\u00f2\u00f3", + "\u0003\u0002\u0002\u0002\u00f3\u00f6\u0003\u0002\u0002\u0002\u00f4\u00f6", + "\u0005\n\u0006\u0002\u00f5\u00f0\u0003\u0002\u0002\u0002\u00f5\u00f4", + "\u0003\u0002\u0002\u0002\u00f6\u00f9\u0003\u0002\u0002\u0002\u00f7\u00f5", + "\u0003\u0002\u0002\u0002\u00f7\u00f8\u0003\u0002\u0002\u0002\u00f8\u0007", + "\u0003\u0002\u0002\u0002\u00f9\u00f7\u0003\u0002\u0002\u0002\u00fa\u0101", + "\u0005\f\u0007\u0002\u00fb\u0101\u0005\u000e\b\u0002\u00fc\u0101\u0005", + "\u0010\t\u0002\u00fd\u0101\u0005\u0012\n\u0002\u00fe\u0101\u0005\u0014", + "\u000b\u0002\u00ff\u0101\u0005\u0016\f\u0002\u0100\u00fa\u0003\u0002", + "\u0002\u0002\u0100\u00fb\u0003\u0002\u0002\u0002\u0100\u00fc\u0003\u0002", + "\u0002\u0002\u0100\u00fd\u0003\u0002\u0002\u0002\u0100\u00fe\u0003\u0002", + "\u0002\u0002\u0100\u00ff\u0003\u0002\u0002\u0002\u0101\t\u0003\u0002", + "\u0002\u0002\u0102\u0103\u0007\u0110\u0002\u0002\u0103\u000b\u0003\u0002", + "\u0002\u0002\u0104\u0111\u0005\u0018\r\u0002\u0105\u0111\u0005:\u001e", + "\u0002\u0106\u0111\u0005<\u001f\u0002\u0107\u0111\u0005> \u0002\u0108", + "\u0111\u00058\u001d\u0002\u0109\u0111\u0005@!\u0002\u010a\u0111\u0005", + "F$\u0002\u010b\u0111\u0005H%\u0002\u010c\u0111\u0005J&\u0002\u010d\u0111", + "\u0005L\'\u0002\u010e\u0111\u0005N(\u0002\u010f\u0111\u0005P)\u0002", + "\u0110\u0104\u0003\u0002\u0002\u0002\u0110\u0105\u0003\u0002\u0002\u0002", + "\u0110\u0106\u0003\u0002\u0002\u0002\u0110\u0107\u0003\u0002\u0002\u0002", + "\u0110\u0108\u0003\u0002\u0002\u0002\u0110\u0109\u0003\u0002\u0002\u0002", + "\u0110\u010a\u0003\u0002\u0002\u0002\u0110\u010b\u0003\u0002\u0002\u0002", + "\u0110\u010c\u0003\u0002\u0002\u0002\u0110\u010d\u0003\u0002\u0002\u0002", + "\u0110\u010e\u0003\u0002\u0002\u0002\u0110\u010f\u0003\u0002\u0002\u0002", + "\u0111\r\u0003\u0002\u0002\u0002\u0112\u0115\u0005Z.\u0002\u0113\u0115", + "\u0005R*\u0002\u0114\u0112\u0003\u0002\u0002\u0002\u0114\u0113\u0003", + "\u0002\u0002\u0002\u0115\u000f\u0003\u0002\u0002\u0002\u0116\u0117\u0007", + "P\u0002\u0002\u0117\u0118\u0005\u00bc_\u0002\u0118\u0011\u0003\u0002", + "\u0002\u0002\u0119\u011a\u0007Q\u0002\u0002\u011a\u011b\u0005\u00b0", + "Y\u0002\u011b\u011c\u0007\'\u0002\u0002\u011c\u011d\u0005\u000e\b\u0002", + "\u011d\u0013\u0003\u0002\u0002\u0002\u011e\u0120\u0007[\u0002\u0002", + "\u011f\u0121\u0007\u00e2\u0002\u0002\u0120\u011f\u0003\u0002\u0002\u0002", + "\u0120\u0121\u0003\u0002\u0002\u0002\u0121\u0122\u0003\u0002\u0002\u0002", + "\u0122\u0123\u0005\u00bc_\u0002\u0123\u0015\u0003\u0002\u0002\u0002", + "\u0124\u0125\u0007W\u0002\u0002\u0125\u0126\t\u0002\u0002\u0002\u0126", + "\u0017\u0003\u0002\u0002\u0002\u0127\u0128\u0007H\u0002\u0002\u0128", + "\u0129\u0007I\u0002\u0002\u0129\u012a\u0005\u00bc_\u0002\u012a\u012b", + "\u0007\u010d\u0002\u0002\u012b\u0130\u0005\u001a\u000e\u0002\u012c\u012d", + "\u0007\u010f\u0002\u0002\u012d\u012f\u0005\u001a\u000e\u0002\u012e\u012c", + "\u0003\u0002\u0002\u0002\u012f\u0132\u0003\u0002\u0002\u0002\u0130\u012e", + "\u0003\u0002\u0002\u0002\u0130\u0131\u0003\u0002\u0002\u0002\u0131\u0135", + "\u0003\u0002\u0002\u0002\u0132\u0130\u0003\u0002\u0002\u0002\u0133\u0134", + "\u0007\u010f\u0002\u0002\u0134\u0136\u0005&\u0014\u0002\u0135\u0133", + "\u0003\u0002\u0002\u0002\u0135\u0136\u0003\u0002\u0002\u0002\u0136\u0139", + "\u0003\u0002\u0002\u0002\u0137\u0138\u0007\u010f\u0002\u0002\u0138\u013a", + "\u0005(\u0015\u0002\u0139\u0137\u0003\u0002\u0002\u0002\u0139\u013a", + "\u0003\u0002\u0002\u0002\u013a\u013d\u0003\u0002\u0002\u0002\u013b\u013c", + "\u0007\u010f\u0002\u0002\u013c\u013e\u0005*\u0016\u0002\u013d\u013b", + "\u0003\u0002\u0002\u0002\u013d\u013e\u0003\u0002\u0002\u0002\u013e\u013f", + "\u0003\u0002\u0002\u0002\u013f\u0141\u0007\u010e\u0002\u0002\u0140\u0142", + "\u0005$\u0013\u0002\u0141\u0140\u0003\u0002\u0002\u0002\u0141\u0142", + "\u0003\u0002\u0002\u0002\u0142\u0144\u0003\u0002\u0002\u0002\u0143\u0145", + "\u0005,\u0017\u0002\u0144\u0143\u0003\u0002\u0002\u0002\u0144\u0145", + "\u0003\u0002\u0002\u0002\u0145\u0146\u0003\u0002\u0002\u0002\u0146\u0148", + "\u0005\u00c0a\u0002\u0147\u0149\u00054\u001b\u0002\u0148\u0147\u0003", + "\u0002\u0002\u0002\u0148\u0149\u0003\u0002\u0002\u0002\u0149\u0019\u0003", + "\u0002\u0002\u0002\u014a\u014b\u0005\u001c\u000f\u0002\u014b\u014d\u0005", + " \u0011\u0002\u014c\u014e\u0005\"\u0012\u0002\u014d\u014c\u0003\u0002", + "\u0002\u0002\u014d\u014e\u0003\u0002\u0002\u0002\u014e\u0150\u0003\u0002", + "\u0002\u0002\u014f\u0151\u0005\u00a4S\u0002\u0150\u014f\u0003\u0002", + "\u0002\u0002\u0150\u0151\u0003\u0002\u0002\u0002\u0151\u001b\u0003\u0002", + "\u0002\u0002\u0152\u0155\u0005\u00be`\u0002\u0153\u0155\u0005\u0088", + "E\u0002\u0154\u0152\u0003\u0002\u0002\u0002\u0154\u0153\u0003\u0002", + "\u0002\u0002\u0155\u001d\u0003\u0002\u0002\u0002\u0156\u015b\u0005\u001c", + "\u000f\u0002\u0157\u0158\u0007\u010f\u0002\u0002\u0158\u015a\u0005\u001c", + "\u000f\u0002\u0159\u0157\u0003\u0002\u0002\u0002\u015a\u015d\u0003\u0002", + "\u0002\u0002\u015b\u0159\u0003\u0002\u0002\u0002\u015b\u015c\u0003\u0002", + "\u0002\u0002\u015c\u001f\u0003\u0002\u0002\u0002\u015d\u015b\u0003\u0002", + "\u0002\u0002\u015e\u015f\t\u0003\u0002\u0002\u015f!\u0003\u0002\u0002", + "\u0002\u0160\u0161\u0007\u010d\u0002\u0002\u0161\u0162\u0005\u00dep", + "\u0002\u0162\u0163\u0007\u010e\u0002\u0002\u0163#\u0003\u0002\u0002", + "\u0002\u0164\u0165\u0007i\u0002\u0002\u0165\u0166\u0007\u0120\u0002", + "\u0002\u0166%\u0003\u0002\u0002\u0002\u0167\u0168\u0007\u00d7\u0002", + "\u0002\u0168\u0169\u0007\'\u0002\u0002\u0169\u016a\u0005\u0088E\u0002", + "\u016a\u016b\u0007\t\u0002\u0002\u016b\u016c\u0005\u0088E\u0002\u016c", + "\'\u0003\u0002\u0002\u0002\u016d\u016e\u0007\u00af\u0002\u0002\u016e", + "\u0170\u0005\u00b0Y\u0002\u016f\u016d\u0003\u0002\u0002\u0002\u016f", + "\u0170\u0003\u0002\u0002\u0002\u0170\u0171\u0003\u0002\u0002\u0002\u0171", + "\u0172\u0007\u00e6\u0002\u0002\u0172\u0173\u0007\u00e7\u0002\u0002\u0173", + "\u0174\u0007\u010d\u0002\u0002\u0174\u0175\u0005\u001e\u0010\u0002\u0175", + "\u0176\u0007\u010e\u0002\u0002\u0176)\u0003\u0002\u0002\u0002\u0177", + "\u0178\u0007\u00e8\u0002\u0002\u0178\u0179\u0007\'\u0002\u0002\u0179", + "\u017a\u0007\u00e9\u0002\u0002\u017a+\u0003\u0002\u0002\u0002\u017b", + "\u017c\u0007\u00be\u0002\u0002\u017c\u017d\u0007\u000f\u0002\u0002\u017d", + "\u017e\u0005.\u0018\u0002\u017e-\u0003\u0002\u0002\u0002\u017f\u0180", + "\u0007\u010d\u0002\u0002\u0180\u0185\u00050\u0019\u0002\u0181\u0182", + "\u0007\u010f\u0002\u0002\u0182\u0184\u00050\u0019\u0002\u0183\u0181", + "\u0003\u0002\u0002\u0002\u0184\u0187\u0003\u0002\u0002\u0002\u0185\u0183", + "\u0003\u0002\u0002\u0002\u0185\u0186\u0003\u0002\u0002\u0002\u0186\u0188", + "\u0003\u0002\u0002\u0002\u0187\u0185\u0003\u0002\u0002\u0002\u0188\u0189", + "\u0007\u010e\u0002\u0002\u0189/\u0003\u0002\u0002\u0002\u018a\u0198", + "\u0005\u0096L\u0002\u018b\u018c\u0005\u00b0Y\u0002\u018c\u018d\u0007", + "\u010d\u0002\u0002\u018d\u0192\u00052\u001a\u0002\u018e\u018f\u0007", + "\u010f\u0002\u0002\u018f\u0191\u00052\u001a\u0002\u0190\u018e\u0003", + "\u0002\u0002\u0002\u0191\u0194\u0003\u0002\u0002\u0002\u0192\u0190\u0003", + "\u0002\u0002\u0002\u0192\u0193\u0003\u0002\u0002\u0002\u0193\u0195\u0003", + "\u0002\u0002\u0002\u0194\u0192\u0003\u0002\u0002\u0002\u0195\u0196\u0007", + "\u010e\u0002\u0002\u0196\u0198\u0003\u0002\u0002\u0002\u0197\u018a\u0003", + "\u0002\u0002\u0002\u0197\u018b\u0003\u0002\u0002\u0002\u01981\u0003", + "\u0002\u0002\u0002\u0199\u019c\u0005\u0096L\u0002\u019a\u019c\u0005", + "\u00dan\u0002\u019b\u0199\u0003\u0002\u0002\u0002\u019b\u019a\u0003", + "\u0002\u0002\u0002\u019c3\u0003\u0002\u0002\u0002\u019d\u019e\u0007", + "\u001f\u0002\u0002\u019e\u019f\u0005\u00b0Y\u0002\u019f\u01a0\u0005", + "6\u001c\u0002\u01a05\u0003\u0002\u0002\u0002\u01a1\u01a2\t\u0004\u0002", + "\u0002\u01a2\u01a6\t\u0005\u0002\u0002\u01a3\u01a4\t\u0004\u0002\u0002", + "\u01a4\u01a6\t\u0006\u0002\u0002\u01a5\u01a1\u0003\u0002\u0002\u0002", + "\u01a5\u01a3\u0003\u0002\u0002\u0002\u01a67\u0003\u0002\u0002\u0002", + "\u01a7\u01a8\u0007H\u0002\u0002\u01a8\u01a9\u0007\u00e2\u0002\u0002", + "\u01a9\u01aa\u0005\u00bc_\u0002\u01aa\u01ab\u0005\u00c0a\u0002\u01ab", + "9\u0003\u0002\u0002\u0002\u01ac\u01ad\u0007H\u0002\u0002\u01ad\u01af", + "\u0007\u00b6\u0002\u0002\u01ae\u01b0\u0005\u00c2b\u0002\u01af\u01ae", + "\u0003\u0002\u0002\u0002\u01af\u01b0\u0003\u0002\u0002\u0002\u01b0\u01b1", + "\u0003\u0002\u0002\u0002\u01b1\u01b3\u0005\u00bc_\u0002\u01b2\u01b4", + "\u0005$\u0013\u0002\u01b3\u01b2\u0003\u0002\u0002\u0002\u01b3\u01b4", + "\u0003\u0002\u0002\u0002\u01b4\u01b5\u0003\u0002\u0002\u0002\u01b5\u01b6", + "\u0005\u00c0a\u0002\u01b6;\u0003\u0002\u0002\u0002\u01b7\u01b9\u0007", + "H\u0002\u0002\u01b8\u01ba\u0007\u009c\u0002\u0002\u01b9\u01b8\u0003", + "\u0002\u0002\u0002\u01b9\u01ba\u0003\u0002\u0002\u0002\u01ba\u01bb\u0003", + "\u0002\u0002\u0002\u01bb\u01bd\u0007K\u0002\u0002\u01bc\u01be\u0005", + "\u00c2b\u0002\u01bd\u01bc\u0003\u0002\u0002\u0002\u01bd\u01be\u0003", + "\u0002\u0002\u0002\u01be\u01bf\u0003\u0002\u0002\u0002\u01bf\u01c1\u0005", + "\u00bc_\u0002\u01c0\u01c2\u0005\u001e\u0010\u0002\u01c1\u01c0\u0003", + "\u0002\u0002\u0002\u01c1\u01c2\u0003\u0002\u0002\u0002\u01c2\u01c4\u0003", + "\u0002\u0002\u0002\u01c3\u01c5\u0005$\u0013\u0002\u01c4\u01c3\u0003", + "\u0002\u0002\u0002\u01c4\u01c5\u0003\u0002\u0002\u0002\u01c5\u01c6\u0003", + "\u0002\u0002\u0002\u01c6\u01c7\u0007\t\u0002\u0002\u01c7\u01c8\u0005", + "Z.\u0002\u01c8=\u0003\u0002\u0002\u0002\u01c9\u01cd\u0007H\u0002\u0002", + "\u01ca\u01ce\u0007\u009c\u0002\u0002\u01cb\u01cc\u0007\u009c\u0002\u0002", + "\u01cc\u01ce\u0007\u00dd\u0002\u0002\u01cd\u01ca\u0003\u0002\u0002\u0002", + "\u01cd\u01cb\u0003\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002", + "\u01cf\u01d1\u0007\u0093\u0002\u0002\u01d0\u01d2\u0005\u00c2b\u0002", + "\u01d1\u01d0\u0003\u0002\u0002\u0002\u01d1\u01d2\u0003\u0002\u0002\u0002", + "\u01d2\u01d3\u0003\u0002\u0002\u0002\u01d3\u01d4\u0005\u00bc_\u0002", + "\u01d4\u01d5\u0007\t\u0002\u0002\u01d5\u01d8\u0005\u00b0Y\u0002\u01d6", + "\u01d7\u0007\u00e3\u0002\u0002\u01d7\u01d9\u0005\u00b0Y\u0002\u01d8", + "\u01d6\u0003\u0002\u0002\u0002\u01d8\u01d9\u0003\u0002\u0002\u0002\u01d9", + "?\u0003\u0002\u0002\u0002\u01da\u01db\u0007f\u0002\u0002\u01db\u01dc", + "\u0007I\u0002\u0002\u01dc\u01df\u0005\u00bc_\u0002\u01dd\u01e0\u0005", + "B\"\u0002\u01de\u01e0\u0005D#\u0002\u01df\u01dd\u0003\u0002\u0002\u0002", + "\u01df\u01de\u0003\u0002\u0002\u0002\u01e0A\u0003\u0002\u0002\u0002", + "\u01e1\u01e2\u0007g\u0002\u0002\u01e2\u01e3\u0007c\u0002\u0002\u01e3", + "\u01e4\u0005\u00bc_\u0002\u01e4C\u0003\u0002\u0002\u0002\u01e5\u01e6", + "\u0007j\u0002\u0002\u01e6\u01e7\u0005\u00c6d\u0002\u01e7E\u0003\u0002", + "\u0002\u0002\u01e8\u01e9\u0007f\u0002\u0002\u01e9\u01ea\u0007\u00b6", + "\u0002\u0002\u01ea\u01eb\u0005\u00bc_\u0002\u01eb\u01ec\u0005D#\u0002", + "\u01ecG\u0003\u0002\u0002\u0002\u01ed\u01f1\u0007f\u0002\u0002\u01ee", + "\u01f2\u0007\u009c\u0002\u0002\u01ef\u01f0\u0007\u009c\u0002\u0002\u01f0", + "\u01f2\u0007\u00dd\u0002\u0002\u01f1\u01ee\u0003\u0002\u0002\u0002\u01f1", + "\u01ef\u0003\u0002\u0002\u0002\u01f2\u01f3\u0003\u0002\u0002\u0002\u01f3", + "\u01f5\u0007\u0093\u0002\u0002\u01f4\u01f6\u0005\u00c4c\u0002\u01f5", + "\u01f4\u0003\u0002\u0002\u0002\u01f5\u01f6\u0003\u0002\u0002\u0002\u01f6", + "\u01f7\u0003\u0002\u0002\u0002\u01f7\u01f8\u0005\u00bc_\u0002\u01f8", + "\u01f9\u0007\t\u0002\u0002\u01f9\u01fc\u0005\u00b0Y\u0002\u01fa\u01fb", + "\u0007\u00e3\u0002\u0002\u01fb\u01fd\u0005\u00b0Y\u0002\u01fc\u01fa", + "\u0003\u0002\u0002\u0002\u01fc\u01fd\u0003\u0002\u0002\u0002\u01fdI", + "\u0003\u0002\u0002\u0002\u01fe\u01ff\u0007^\u0002\u0002\u01ff\u0201", + "\u0007I\u0002\u0002\u0200\u0202\u0005\u00c4c\u0002\u0201\u0200\u0003", + "\u0002\u0002\u0002\u0201\u0202\u0003\u0002\u0002\u0002\u0202\u0203\u0003", + "\u0002\u0002\u0002\u0203\u0204\u0005\u00bc_\u0002\u0204K\u0003\u0002", + "\u0002\u0002\u0205\u0206\u0007^\u0002\u0002\u0206\u0208\u0007\u00b6", + "\u0002\u0002\u0207\u0209\u0005\u00c4c\u0002\u0208\u0207\u0003\u0002", + "\u0002\u0002\u0208\u0209\u0003\u0002\u0002\u0002\u0209\u020a\u0003\u0002", + "\u0002\u0002\u020a\u020c\u0005\u00bc_\u0002\u020b\u020d\t\u0007\u0002", + "\u0002\u020c\u020b\u0003\u0002\u0002\u0002\u020c\u020d\u0003\u0002\u0002", + "\u0002\u020dM\u0003\u0002\u0002\u0002\u020e\u0210\u0007^\u0002\u0002", + "\u020f\u0211\u0007\u009c\u0002\u0002\u0210\u020f\u0003\u0002\u0002\u0002", + "\u0210\u0211\u0003\u0002\u0002\u0002\u0211\u0212\u0003\u0002\u0002\u0002", + "\u0212\u0214\u0007K\u0002\u0002\u0213\u0215\u0005\u00c4c\u0002\u0214", + "\u0213\u0003\u0002\u0002\u0002\u0214\u0215\u0003\u0002\u0002\u0002\u0215", + "\u0216\u0003\u0002\u0002\u0002\u0216\u0217\u0005\u00bc_\u0002\u0217", + "O\u0003\u0002\u0002\u0002\u0218\u021c\u0007^\u0002\u0002\u0219\u021d", + "\u0007\u009c\u0002\u0002\u021a\u021b\u0007\u009c\u0002\u0002\u021b\u021d", + "\u0007\u00dd\u0002\u0002\u021c\u0219\u0003\u0002\u0002\u0002\u021c\u021a", + "\u0003\u0002\u0002\u0002\u021c\u021d\u0003\u0002\u0002\u0002\u021d\u021e", + "\u0003\u0002\u0002\u0002\u021e\u0220\u0007\u0093\u0002\u0002\u021f\u0221", + "\u0005\u00c4c\u0002\u0220\u021f\u0003\u0002\u0002\u0002\u0220\u0221", + "\u0003\u0002\u0002\u0002\u0221\u0222\u0003\u0002\u0002\u0002\u0222\u0223", + "\u0005\u00bc_\u0002\u0223Q\u0003\u0002\u0002\u0002\u0224\u0225\u0007", + "M\u0002\u0002\u0225\u0226\t\b\u0002\u0002\u0226\u022c\u0005\u00bc_\u0002", + "\u0227\u0229\u0005T+\u0002\u0228\u0227\u0003\u0002\u0002\u0002\u0228", + "\u0229\u0003\u0002\u0002\u0002\u0229\u022a\u0003\u0002\u0002\u0002\u022a", + "\u022d\u0005Z.\u0002\u022b\u022d\u0005V,\u0002\u022c\u0228\u0003\u0002", + "\u0002\u0002\u022c\u022b\u0003\u0002\u0002\u0002\u022dS\u0003\u0002", + "\u0002\u0002\u022e\u022f\u0007<\u0002\u0002\u022f\u0230\u0005\u00c6", + "d\u0002\u0230U\u0003\u0002\u0002\u0002\u0231\u0232\u0007G\u0002\u0002", + "\u0232\u0237\u0005X-\u0002\u0233\u0234\u0007\u010f\u0002\u0002\u0234", + "\u0236\u0005X-\u0002\u0235\u0233\u0003\u0002\u0002\u0002\u0236\u0239", + "\u0003\u0002\u0002\u0002\u0237\u0235\u0003\u0002\u0002\u0002\u0237\u0238", + "\u0003\u0002\u0002\u0002\u0238W\u0003\u0002\u0002\u0002\u0239\u0237", + "\u0003\u0002\u0002\u0002\u023a\u023b\u0007\u010d\u0002\u0002\u023b\u0240", + "\u0005\u00dan\u0002\u023c\u023d\u0007\u010f\u0002\u0002\u023d\u023f", + "\u0005\u00dan\u0002\u023e\u023c\u0003\u0002\u0002\u0002\u023f\u0242", + "\u0003\u0002\u0002\u0002\u0240\u023e\u0003\u0002\u0002\u0002\u0240\u0241", + "\u0003\u0002\u0002\u0002\u0241\u0243\u0003\u0002\u0002\u0002\u0242\u0240", + "\u0003\u0002\u0002\u0002\u0243\u0244\u0007\u010e\u0002\u0002\u0244Y", + "\u0003\u0002\u0002\u0002\u0245\u0246\b.\u0001\u0002\u0246\u025a\u0005", + "\\/\u0002\u0247\u0248\u0007\u010d\u0002\u0002\u0248\u0249\u0005Z.\u0002", + "\u0249\u024a\u0007\u010e\u0002\u0002\u024a\u025a\u0003\u0002\u0002\u0002", + "\u024b\u024d\u0005`1\u0002\u024c\u024e\u0005v<\u0002\u024d\u024c\u0003", + "\u0002\u0002\u0002\u024d\u024e\u0003\u0002\u0002\u0002\u024e\u0250\u0003", + "\u0002\u0002\u0002\u024f\u0251\u0005z>\u0002\u0250\u024f\u0003\u0002", + "\u0002\u0002\u0250\u0251\u0003\u0002\u0002\u0002\u0251\u025a\u0003\u0002", + "\u0002\u0002\u0252\u0254\u0005^0\u0002\u0253\u0255\u0005v<\u0002\u0254", + "\u0253\u0003\u0002\u0002\u0002\u0254\u0255\u0003\u0002\u0002\u0002\u0255", + "\u0257\u0003\u0002\u0002\u0002\u0256\u0258\u0005z>\u0002\u0257\u0256", + "\u0003\u0002\u0002\u0002\u0257\u0258\u0003\u0002\u0002\u0002\u0258\u025a", + "\u0003\u0002\u0002\u0002\u0259\u0245\u0003\u0002\u0002\u0002\u0259\u0247", + "\u0003\u0002\u0002\u0002\u0259\u024b\u0003\u0002\u0002\u0002\u0259\u0252", + "\u0003\u0002\u0002\u0002\u025a\u0269\u0003\u0002\u0002\u0002\u025b\u025c", + "\f\u0005\u0002\u0002\u025c\u025e\t\t\u0002\u0002\u025d\u025f\u0007\n", + "\u0002\u0002\u025e\u025d\u0003\u0002\u0002\u0002\u025e\u025f\u0003\u0002", + "\u0002\u0002\u025f\u0260\u0003\u0002\u0002\u0002\u0260\u0262\u0005Z", + ".\u0002\u0261\u0263\u0005v<\u0002\u0262\u0261\u0003\u0002\u0002\u0002", + "\u0262\u0263\u0003\u0002\u0002\u0002\u0263\u0265\u0003\u0002\u0002\u0002", + "\u0264\u0266\u0005z>\u0002\u0265\u0264\u0003\u0002\u0002\u0002\u0265", + "\u0266\u0003\u0002\u0002\u0002\u0266\u0268\u0003\u0002\u0002\u0002\u0267", + "\u025b\u0003\u0002\u0002\u0002\u0268\u026b\u0003\u0002\u0002\u0002\u0269", + "\u0267\u0003\u0002\u0002\u0002\u0269\u026a\u0003\u0002\u0002\u0002\u026a", + "[\u0003\u0002\u0002\u0002\u026b\u0269\u0003\u0002\u0002\u0002\u026c", + "\u026d\u0007G\u0002\u0002\u026d\u0272\u0005\u0088E\u0002\u026e\u026f", + "\u0007\u010f\u0002\u0002\u026f\u0271\u0005\u0088E\u0002\u0270\u026e", + "\u0003\u0002\u0002\u0002\u0271\u0274\u0003\u0002\u0002\u0002\u0272\u0270", + "\u0003\u0002\u0002\u0002\u0272\u0273\u0003\u0002\u0002\u0002\u0273]", + "\u0003\u0002\u0002\u0002\u0274\u0272\u0003\u0002\u0002\u0002\u0275\u0276", + "\u0005`1\u0002\u0276\u0278\u0005d3\u0002\u0277\u0279\u0005n8\u0002\u0278", + "\u0277\u0003\u0002\u0002\u0002\u0278\u0279\u0003\u0002\u0002\u0002\u0279", + "\u027b\u0003\u0002\u0002\u0002\u027a\u027c\u0005p9\u0002\u027b\u027a", + "\u0003\u0002\u0002\u0002\u027b\u027c\u0003\u0002\u0002\u0002\u027c\u027e", + "\u0003\u0002\u0002\u0002\u027d\u027f\u0005t;\u0002\u027e\u027d\u0003", + "\u0002\u0002\u0002\u027e\u027f\u0003\u0002\u0002\u0002\u027f\u0281\u0003", + "\u0002\u0002\u0002\u0280\u0282\u0005|?\u0002\u0281\u0280\u0003\u0002", + "\u0002\u0002\u0281\u0282\u0003\u0002\u0002\u0002\u0282_\u0003\u0002", + "\u0002\u0002\u0283\u0285\u0007\u0006\u0002\u0002\u0284\u0286\u0005\u00e2", + "r\u0002\u0285\u0284\u0003\u0002\u0002\u0002\u0285\u0286\u0003\u0002", + "\u0002\u0002\u0286\u0290\u0003\u0002\u0002\u0002\u0287\u0291\u0007\u0116", + "\u0002\u0002\u0288\u028d\u0005b2\u0002\u0289\u028a\u0007\u010f\u0002", + "\u0002\u028a\u028c\u0005b2\u0002\u028b\u0289\u0003\u0002\u0002\u0002", + "\u028c\u028f\u0003\u0002\u0002\u0002\u028d\u028b\u0003\u0002\u0002\u0002", + "\u028d\u028e\u0003\u0002\u0002\u0002\u028e\u0291\u0003\u0002\u0002\u0002", + "\u028f\u028d\u0003\u0002\u0002\u0002\u0290\u0287\u0003\u0002\u0002\u0002", + "\u0290\u0288\u0003\u0002\u0002\u0002\u0291a\u0003\u0002\u0002\u0002", + "\u0292\u0297\u0005\u0088E\u0002\u0293\u0295\u0007\t\u0002\u0002\u0294", + "\u0293\u0003\u0002\u0002\u0002\u0294\u0295\u0003\u0002\u0002\u0002\u0295", + "\u0296\u0003\u0002\u0002\u0002\u0296\u0298\u0005\u0088E\u0002\u0297", + "\u0294\u0003\u0002\u0002\u0002\u0297\u0298\u0003\u0002\u0002\u0002\u0298", + "c\u0003\u0002\u0002\u0002\u0299\u029a\u0007\u0007\u0002\u0002\u029a", + "\u029b\u0005f4\u0002\u029be\u0003\u0002\u0002\u0002\u029c\u029d\b4\u0001", + "\u0002\u029d\u02a2\u0005h5\u0002\u029e\u029f\u0007\u010f\u0002\u0002", + "\u029f\u02a1\u0005h5\u0002\u02a0\u029e\u0003\u0002\u0002\u0002\u02a1", + "\u02a4\u0003\u0002\u0002\u0002\u02a2\u02a0\u0003\u0002\u0002\u0002\u02a2", + "\u02a3\u0003\u0002\u0002\u0002\u02a3\u02b3\u0003\u0002\u0002\u0002\u02a4", + "\u02a2\u0003\u0002\u0002\u0002\u02a5\u02a7\f\u0003\u0002\u0002\u02a6", + "\u02a8\u00076\u0002\u0002\u02a7\u02a6\u0003\u0002\u0002\u0002\u02a7", + "\u02a8\u0003\u0002\u0002\u0002\u02a8\u02aa\u0003\u0002\u0002\u0002\u02a9", + "\u02ab\t\n\u0002\u0002\u02aa\u02a9\u0003\u0002\u0002\u0002\u02aa\u02ab", + "\u0003\u0002\u0002\u0002\u02ab\u02ac\u0003\u0002\u0002\u0002\u02ac\u02ad", + "\u0007.\u0002\u0002\u02ad\u02af\u0005f4\u0002\u02ae\u02b0\u0005l7\u0002", + "\u02af\u02ae\u0003\u0002\u0002\u0002\u02af\u02b0\u0003\u0002\u0002\u0002", + "\u02b0\u02b2\u0003\u0002\u0002\u0002\u02b1\u02a5\u0003\u0002\u0002\u0002", + "\u02b2\u02b5\u0003\u0002\u0002\u0002\u02b3\u02b1\u0003\u0002\u0002\u0002", + "\u02b3\u02b4\u0003\u0002\u0002\u0002\u02b4g\u0003\u0002\u0002\u0002", + "\u02b5\u02b3\u0003\u0002\u0002\u0002\u02b6\u02b8\u0005j6\u0002\u02b7", + "\u02b9\u0005\u00a6T\u0002\u02b8\u02b7\u0003\u0002\u0002\u0002\u02b8", + "\u02b9\u0003\u0002\u0002\u0002\u02b9i\u0003\u0002\u0002\u0002\u02ba", + "\u02bc\u0007I\u0002\u0002\u02bb\u02ba\u0003\u0002\u0002\u0002\u02bb", + "\u02bc\u0003\u0002\u0002\u0002\u02bc\u02bd\u0003\u0002\u0002\u0002\u02bd", + "\u02d4\u0005\u0088E\u0002\u02be\u02bf\u00079\u0002\u0002\u02bf\u02c0", + "\u0007I\u0002\u0002\u02c0\u02c1\u0007\u010d\u0002\u0002\u02c1\u02c2", + "\u0005\u00bc_\u0002\u02c2\u02c3\u0007\u010d\u0002\u0002\u02c3\u02c8", + "\u0005\u0088E\u0002\u02c4\u02c5\u0007\u010f\u0002\u0002\u02c5\u02c7", + "\u0005\u0088E\u0002\u02c6\u02c4\u0003\u0002\u0002\u0002\u02c7\u02ca", + "\u0003\u0002\u0002\u0002\u02c8\u02c6\u0003\u0002\u0002\u0002\u02c8\u02c9", + "\u0003\u0002\u0002\u0002\u02c9\u02cb\u0003\u0002\u0002\u0002\u02ca\u02c8", + "\u0003\u0002\u0002\u0002\u02cb\u02cc\u0007\u010e\u0002\u0002\u02cc\u02cd", + "\u0007\u010e\u0002\u0002\u02cd\u02d4\u0003\u0002\u0002\u0002\u02ce\u02cf", + "\u0007\u00d8\u0002\u0002\u02cf\u02d0\u0007\u010d\u0002\u0002\u02d0\u02d1", + "\u0005\u0088E\u0002\u02d1\u02d2\u0007\u010e\u0002\u0002\u02d2\u02d4", + "\u0003\u0002\u0002\u0002\u02d3\u02bb\u0003\u0002\u0002\u0002\u02d3\u02be", + "\u0003\u0002\u0002\u0002\u02d3\u02ce\u0003\u0002\u0002\u0002\u02d4k", + "\u0003\u0002\u0002\u0002\u02d5\u02d6\u00077\u0002\u0002\u02d6\u02e4", + "\u0005\u008aF\u0002\u02d7\u02d8\u0007\u0085\u0002\u0002\u02d8\u02d9", + "\u0007\u010d\u0002\u0002\u02d9\u02de\u0005\u00bc_\u0002\u02da\u02db", + "\u0007\u010f\u0002\u0002\u02db\u02dd\u0005\u00bc_\u0002\u02dc\u02da", + "\u0003\u0002\u0002\u0002\u02dd\u02e0\u0003\u0002\u0002\u0002\u02de\u02dc", + "\u0003\u0002\u0002\u0002\u02de\u02df\u0003\u0002\u0002\u0002\u02df\u02e1", + "\u0003\u0002\u0002\u0002\u02e0\u02de\u0003\u0002\u0002\u0002\u02e1\u02e2", + "\u0007\u010e\u0002\u0002\u02e2\u02e4\u0003\u0002\u0002\u0002\u02e3\u02d5", + "\u0003\u0002\u0002\u0002\u02e3\u02d7\u0003\u0002\u0002\u0002\u02e4m", + "\u0003\u0002\u0002\u0002\u02e5\u02e6\u0007\r\u0002\u0002\u02e6\u02e7", + "\u0005\u008aF\u0002\u02e7o\u0003\u0002\u0002\u0002\u02e8\u02e9\u0007", + "\u000e\u0002\u0002\u02e9\u02ea\u0007\u000f\u0002\u0002\u02ea\u02ef\u0005", + "r:\u0002\u02eb\u02ec\u0007\u010f\u0002\u0002\u02ec\u02ee\u0005r:\u0002", + "\u02ed\u02eb\u0003\u0002\u0002\u0002\u02ee\u02f1\u0003\u0002\u0002\u0002", + "\u02ef\u02ed\u0003\u0002\u0002\u0002\u02ef\u02f0\u0003\u0002\u0002\u0002", + "\u02f0q\u0003\u0002\u0002\u0002\u02f1\u02ef\u0003\u0002\u0002\u0002", + "\u02f2\u0326\u0005\u0088E\u0002\u02f3\u02f4\u0007\u010d\u0002\u0002", + "\u02f4\u0326\u0007\u010e\u0002\u0002\u02f5\u02f6\u0007\u010d\u0002\u0002", + "\u02f6\u02fb\u0005\u0088E\u0002\u02f7\u02f8\u0007\u010f\u0002\u0002", + "\u02f8\u02fa\u0005\u0088E\u0002\u02f9\u02f7\u0003\u0002\u0002\u0002", + "\u02fa\u02fd\u0003\u0002\u0002\u0002\u02fb\u02f9\u0003\u0002\u0002\u0002", + "\u02fb\u02fc\u0003\u0002\u0002\u0002\u02fc\u02fe\u0003\u0002\u0002\u0002", + "\u02fd\u02fb\u0003\u0002\u0002\u0002\u02fe\u02ff\u0007\u010e\u0002\u0002", + "\u02ff\u0326\u0003\u0002\u0002\u0002\u0300\u0301\u0007\u0012\u0002\u0002", + "\u0301\u0302\u0007\u010d\u0002\u0002\u0302\u0307\u0005\u0088E\u0002", + "\u0303\u0304\u0007\u010f\u0002\u0002\u0304\u0306\u0005\u0088E\u0002", + "\u0305\u0303\u0003\u0002\u0002\u0002\u0306\u0309\u0003\u0002\u0002\u0002", + "\u0307\u0305\u0003\u0002\u0002\u0002\u0307\u0308\u0003\u0002\u0002\u0002", + "\u0308\u030a\u0003\u0002\u0002\u0002\u0309\u0307\u0003\u0002\u0002\u0002", + "\u030a\u030b\u0007\u010e\u0002\u0002\u030b\u0326\u0003\u0002\u0002\u0002", + "\u030c\u030d\u0007\u0013\u0002\u0002\u030d\u030e\u0007\u010d\u0002\u0002", + "\u030e\u0313\u0005\u0088E\u0002\u030f\u0310\u0007\u010f\u0002\u0002", + "\u0310\u0312\u0005\u0088E\u0002\u0311\u030f\u0003\u0002\u0002\u0002", + "\u0312\u0315\u0003\u0002\u0002\u0002\u0313\u0311\u0003\u0002\u0002\u0002", + "\u0313\u0314\u0003\u0002\u0002\u0002\u0314\u0316\u0003\u0002\u0002\u0002", + "\u0315\u0313\u0003\u0002\u0002\u0002\u0316\u0317\u0007\u010e\u0002\u0002", + "\u0317\u0326\u0003\u0002\u0002\u0002\u0318\u0319\u0007\u0010\u0002\u0002", + "\u0319\u031a\u0007\u0011\u0002\u0002\u031a\u031b\u0007\u010d\u0002\u0002", + "\u031b\u0320\u0005r:\u0002\u031c\u031d\u0007\u010f\u0002\u0002\u031d", + "\u031f\u0005r:\u0002\u031e\u031c\u0003\u0002\u0002\u0002\u031f\u0322", + "\u0003\u0002\u0002\u0002\u0320\u031e\u0003\u0002\u0002\u0002\u0320\u0321", + "\u0003\u0002\u0002\u0002\u0321\u0323\u0003\u0002\u0002\u0002\u0322\u0320", + "\u0003\u0002\u0002\u0002\u0323\u0324\u0007\u010e\u0002\u0002\u0324\u0326", + "\u0003\u0002\u0002\u0002\u0325\u02f2\u0003\u0002\u0002\u0002\u0325\u02f3", + "\u0003\u0002\u0002\u0002\u0325\u02f5\u0003\u0002\u0002\u0002\u0325\u0300", + "\u0003\u0002\u0002\u0002\u0325\u030c\u0003\u0002\u0002\u0002\u0325\u0318", + "\u0003\u0002\u0002\u0002\u0326s\u0003\u0002\u0002\u0002\u0327\u0328", + "\u0007\u0015\u0002\u0002\u0328\u0329\u0005\u008aF\u0002\u0329u\u0003", + "\u0002\u0002\u0002\u032a\u032b\u0007\u0014\u0002\u0002\u032b\u032c\u0007", + "\u000f\u0002\u0002\u032c\u0331\u0005x=\u0002\u032d\u032e\u0007\u010f", + "\u0002\u0002\u032e\u0330\u0005x=\u0002\u032f\u032d\u0003\u0002\u0002", + "\u0002\u0330\u0333\u0003\u0002\u0002\u0002\u0331\u032f\u0003\u0002\u0002", + "\u0002\u0331\u0332\u0003\u0002\u0002\u0002\u0332w\u0003\u0002\u0002", + "\u0002\u0333\u0331\u0003\u0002\u0002\u0002\u0334\u0336\u0005\u0088E", + "\u0002\u0335\u0337\t\u000b\u0002\u0002\u0336\u0335\u0003\u0002\u0002", + "\u0002\u0336\u0337\u0003\u0002\u0002\u0002\u0337y\u0003\u0002\u0002", + "\u0002\u0338\u033b\u0007\u0016\u0002\u0002\u0339\u033c\u0007\n\u0002", + "\u0002\u033a\u033c\u0005\u0088E\u0002\u033b\u0339\u0003\u0002\u0002", + "\u0002\u033b\u033a\u0003\u0002\u0002\u0002\u033c{\u0003\u0002\u0002", + "\u0002\u033d\u033e\u0007:\u0002\u0002\u033e\u0343\u0005~@\u0002\u033f", + "\u0340\u0007\u010f\u0002\u0002\u0340\u0342\u0005~@\u0002\u0341\u033f", + "\u0003\u0002\u0002\u0002\u0342\u0345\u0003\u0002\u0002\u0002\u0343\u0341", + "\u0003\u0002\u0002\u0002\u0343\u0344\u0003\u0002\u0002\u0002\u0344}", + "\u0003\u0002\u0002\u0002\u0345\u0343\u0003\u0002\u0002\u0002\u0346\u0347", + "\u0005\u00a8U\u0002\u0347\u0348\u0007\t\u0002\u0002\u0348\u0349\u0005", + "\u0080A\u0002\u0349\u007f\u0003\u0002\u0002\u0002\u034a\u034c\u0005", + "\u00a8U\u0002\u034b\u034a\u0003\u0002\u0002\u0002\u034b\u034c\u0003", + "\u0002\u0002\u0002\u034c\u034d\u0003\u0002\u0002\u0002\u034d\u0358\u0007", + "\u010d\u0002\u0002\u034e\u034f\u0007\u0014\u0002\u0002\u034f\u0350\u0007", + "\u000f\u0002\u0002\u0350\u0355\u0005\u0082B\u0002\u0351\u0352\u0007", + "\u010f\u0002\u0002\u0352\u0354\u0005\u0082B\u0002\u0353\u0351\u0003", + "\u0002\u0002\u0002\u0354\u0357\u0003\u0002\u0002\u0002\u0355\u0353\u0003", + "\u0002\u0002\u0002\u0355\u0356\u0003\u0002\u0002\u0002\u0356\u0359\u0003", + "\u0002\u0002\u0002\u0357\u0355\u0003\u0002\u0002\u0002\u0358\u034e\u0003", + "\u0002\u0002\u0002\u0358\u0359\u0003\u0002\u0002\u0002\u0359\u0364\u0003", + "\u0002\u0002\u0002\u035a\u035b\u0007<\u0002\u0002\u035b\u035c\u0007", + "\u000f\u0002\u0002\u035c\u0361\u0005\u0088E\u0002\u035d\u035e\u0007", + "\u010f\u0002\u0002\u035e\u0360\u0005\u0088E\u0002\u035f\u035d\u0003", + "\u0002\u0002\u0002\u0360\u0363\u0003\u0002\u0002\u0002\u0361\u035f\u0003", + "\u0002\u0002\u0002\u0361\u0362\u0003\u0002\u0002\u0002\u0362\u0365\u0003", + "\u0002\u0002\u0002\u0363\u0361\u0003\u0002\u0002\u0002\u0364\u035a\u0003", + "\u0002\u0002\u0002\u0364\u0365\u0003\u0002\u0002\u0002\u0365\u0367\u0003", + "\u0002\u0002\u0002\u0366\u0368\u0005\u0084C\u0002\u0367\u0366\u0003", + "\u0002\u0002\u0002\u0367\u0368\u0003\u0002\u0002\u0002\u0368\u0369\u0003", + "\u0002\u0002\u0002\u0369\u036a\u0007\u010e\u0002\u0002\u036a\u0081\u0003", + "\u0002\u0002\u0002\u036b\u036d\u0005\u0088E\u0002\u036c\u036e\t\u000b", + "\u0002\u0002\u036d\u036c\u0003\u0002\u0002\u0002\u036d\u036e\u0003\u0002", + "\u0002\u0002\u036e\u0371\u0003\u0002\u0002\u0002\u036f\u0370\u0007$", + "\u0002\u0002\u0370\u0372\t\f\u0002\u0002\u0371\u036f\u0003\u0002\u0002", + "\u0002\u0371\u0372\u0003\u0002\u0002\u0002\u0372\u0083\u0003\u0002\u0002", + "\u0002\u0373\u0374\u0007=\u0002\u0002\u0374\u0378\u0005\u0086D\u0002", + "\u0375\u0376\u0007>\u0002\u0002\u0376\u0378\u0005\u0086D\u0002\u0377", + "\u0373\u0003\u0002\u0002\u0002\u0377\u0375\u0003\u0002\u0002\u0002\u0378", + "\u0085\u0003\u0002\u0002\u0002\u0379\u037a\u0005\u0088E\u0002\u037a", + "\u037b\u0007@\u0002\u0002\u037b\u0087\u0003\u0002\u0002\u0002\u037c", + "\u037d\u0005\u008aF\u0002\u037d\u0089\u0003\u0002\u0002\u0002\u037e", + "\u037f\bF\u0001\u0002\u037f\u0380\u0007\u001b\u0002\u0002\u0380\u038b", + "\u0005\u008aF\u0007\u0381\u0382\u0007\u001d\u0002\u0002\u0382\u0383", + "\u0007\u010d\u0002\u0002\u0383\u0384\u0005Z.\u0002\u0384\u0385\u0007", + "\u010e\u0002\u0002\u0385\u038b\u0003\u0002\u0002\u0002\u0386\u0388\u0005", + "\u008eH\u0002\u0387\u0389\u0005\u008cG\u0002\u0388\u0387\u0003\u0002", + "\u0002\u0002\u0388\u0389\u0003\u0002\u0002\u0002\u0389\u038b\u0003\u0002", + "\u0002\u0002\u038a\u037e\u0003\u0002\u0002\u0002\u038a\u0381\u0003\u0002", + "\u0002\u0002\u038a\u0386\u0003\u0002\u0002\u0002\u038b\u0394\u0003\u0002", + "\u0002\u0002\u038c\u038d\f\u0004\u0002\u0002\u038d\u038e\u0007\u0019", + "\u0002\u0002\u038e\u0393\u0005\u008aF\u0005\u038f\u0390\f\u0003\u0002", + "\u0002\u0390\u0391\u0007\u0018\u0002\u0002\u0391\u0393\u0005\u008aF", + "\u0004\u0392\u038c\u0003\u0002\u0002\u0002\u0392\u038f\u0003\u0002\u0002", + "\u0002\u0393\u0396\u0003\u0002\u0002\u0002\u0394\u0392\u0003\u0002\u0002", + "\u0002\u0394\u0395\u0003\u0002\u0002\u0002\u0395\u008b\u0003\u0002\u0002", + "\u0002\u0396\u0394\u0003\u0002\u0002\u0002\u0397\u0399\u0007\u001b\u0002", + "\u0002\u0398\u0397\u0003\u0002\u0002\u0002\u0398\u0399\u0003\u0002\u0002", + "\u0002\u0399\u039a\u0003\u0002\u0002\u0002\u039a\u039b\u0007\u001e\u0002", + "\u0002\u039b\u039c\u0005\u008eH\u0002\u039c\u039d\u0007\u0019\u0002", + "\u0002\u039d\u039e\u0005\u008eH\u0002\u039e\u03eb\u0003\u0002\u0002", + "\u0002\u039f\u03a1\u0007\u001b\u0002\u0002\u03a0\u039f\u0003\u0002\u0002", + "\u0002\u03a0\u03a1\u0003\u0002\u0002\u0002\u03a1\u03a2\u0003\u0002\u0002", + "\u0002\u03a2\u03a3\u0007\u001a\u0002\u0002\u03a3\u03a4\u0007\u010d\u0002", + "\u0002\u03a4\u03a9\u0005\u0088E\u0002\u03a5\u03a6\u0007\u010f\u0002", + "\u0002\u03a6\u03a8\u0005\u0088E\u0002\u03a7\u03a5\u0003\u0002\u0002", + "\u0002\u03a8\u03ab\u0003\u0002\u0002\u0002\u03a9\u03a7\u0003\u0002\u0002", + "\u0002\u03a9\u03aa\u0003\u0002\u0002\u0002\u03aa\u03ac\u0003\u0002\u0002", + "\u0002\u03ab\u03a9\u0003\u0002\u0002\u0002\u03ac\u03ad\u0007\u010e\u0002", + "\u0002\u03ad\u03eb\u0003\u0002\u0002\u0002\u03ae\u03b0\u0007\u001b\u0002", + "\u0002\u03af\u03ae\u0003\u0002\u0002\u0002\u03af\u03b0\u0003\u0002\u0002", + "\u0002\u03b0\u03b1\u0003\u0002\u0002\u0002\u03b1\u03b2\u0007\u001a\u0002", + "\u0002\u03b2\u03b3\u0007\u010d\u0002\u0002\u03b3\u03b4\u0005Z.\u0002", + "\u03b4\u03b5\u0007\u010e\u0002\u0002\u03b5\u03eb\u0003\u0002\u0002\u0002", + "\u03b6\u03b7\u0007\u001d\u0002\u0002\u03b7\u03b8\u0007\u010d\u0002\u0002", + "\u03b8\u03b9\u0005Z.\u0002\u03b9\u03ba\u0007\u010e\u0002\u0002\u03ba", + "\u03eb\u0003\u0002\u0002\u0002\u03bb\u03bd\u0007\u001b\u0002\u0002\u03bc", + "\u03bb\u0003\u0002\u0002\u0002\u03bc\u03bd\u0003\u0002\u0002\u0002\u03bd", + "\u03be\u0003\u0002\u0002\u0002\u03be\u03bf\u0007 \u0002\u0002\u03bf", + "\u03eb\u0005\u008eH\u0002\u03c0\u03c2\u0007\u001b\u0002\u0002\u03c1", + "\u03c0\u0003\u0002\u0002\u0002\u03c1\u03c2\u0003\u0002\u0002\u0002\u03c2", + "\u03c3\u0003\u0002\u0002\u0002\u03c3\u03c4\u0007\u001f\u0002\u0002\u03c4", + "\u03d2\t\r\u0002\u0002\u03c5\u03c6\u0007\u010d\u0002\u0002\u03c6\u03d3", + "\u0007\u010e\u0002\u0002\u03c7\u03c8\u0007\u010d\u0002\u0002\u03c8\u03cd", + "\u0005\u0088E\u0002\u03c9\u03ca\u0007\u010f\u0002\u0002\u03ca\u03cc", + "\u0005\u0088E\u0002\u03cb\u03c9\u0003\u0002\u0002\u0002\u03cc\u03cf", + "\u0003\u0002\u0002\u0002\u03cd\u03cb\u0003\u0002\u0002\u0002\u03cd\u03ce", + "\u0003\u0002\u0002\u0002\u03ce\u03d0\u0003\u0002\u0002\u0002\u03cf\u03cd", + "\u0003\u0002\u0002\u0002\u03d0\u03d1\u0007\u010e\u0002\u0002\u03d1\u03d3", + "\u0003\u0002\u0002\u0002\u03d2\u03c5\u0003\u0002\u0002\u0002\u03d2\u03c7", + "\u0003\u0002\u0002\u0002\u03d3\u03eb\u0003\u0002\u0002\u0002\u03d4\u03d6", + "\u0007\u001b\u0002\u0002\u03d5\u03d4\u0003\u0002\u0002\u0002\u03d5\u03d6", + "\u0003\u0002\u0002\u0002\u03d6\u03d7\u0003\u0002\u0002\u0002\u03d7\u03d8", + "\u0007\u001f\u0002\u0002\u03d8\u03eb\u0005\u008eH\u0002\u03d9\u03db", + "\u0007!\u0002\u0002\u03da\u03dc\u0007\u001b\u0002\u0002\u03db\u03da", + "\u0003\u0002\u0002\u0002\u03db\u03dc\u0003\u0002\u0002\u0002\u03dc\u03dd", + "\u0003\u0002\u0002\u0002\u03dd\u03eb\u0007\u0100\u0002\u0002\u03de\u03e0", + "\u0007!\u0002\u0002\u03df\u03e1\u0007\u001b\u0002\u0002\u03e0\u03df", + "\u0003\u0002\u0002\u0002\u03e0\u03e1\u0003\u0002\u0002\u0002\u03e1\u03e2", + "\u0003\u0002\u0002\u0002\u03e2\u03eb\t\u000e\u0002\u0002\u03e3\u03e5", + "\u0007!\u0002\u0002\u03e4\u03e6\u0007\u001b\u0002\u0002\u03e5\u03e4", + "\u0003\u0002\u0002\u0002\u03e5\u03e6\u0003\u0002\u0002\u0002\u03e6\u03e7", + "\u0003\u0002\u0002\u0002\u03e7\u03e8\u0007\f\u0002\u0002\u03e8\u03e9", + "\u0007\u0007\u0002\u0002\u03e9\u03eb\u0005\u008eH\u0002\u03ea\u0398", + "\u0003\u0002\u0002\u0002\u03ea\u03a0\u0003\u0002\u0002\u0002\u03ea\u03af", + "\u0003\u0002\u0002\u0002\u03ea\u03b6\u0003\u0002\u0002\u0002\u03ea\u03bc", + "\u0003\u0002\u0002\u0002\u03ea\u03c1\u0003\u0002\u0002\u0002\u03ea\u03d5", + "\u0003\u0002\u0002\u0002\u03ea\u03d9\u0003\u0002\u0002\u0002\u03ea\u03de", + "\u0003\u0002\u0002\u0002\u03ea\u03e3\u0003\u0002\u0002\u0002\u03eb\u008d", + "\u0003\u0002\u0002\u0002\u03ec\u03ed\bH\u0001\u0002\u03ed\u03f1\u0005", + "\u0090I\u0002\u03ee\u03ef\t\u000f\u0002\u0002\u03ef\u03f1\u0005\u008e", + "H\t\u03f0\u03ec\u0003\u0002\u0002\u0002\u03f0\u03ee\u0003\u0002\u0002", + "\u0002\u03f1\u0407\u0003\u0002\u0002\u0002\u03f2\u03f3\f\b\u0002\u0002", + "\u03f3\u03f4\t\u0010\u0002\u0002\u03f4\u0406\u0005\u008eH\t\u03f5\u03f6", + "\f\u0007\u0002\u0002\u03f6\u03f7\t\u0011\u0002\u0002\u03f7\u0406\u0005", + "\u008eH\b\u03f8\u03f9\f\u0006\u0002\u0002\u03f9\u03fa\u0007\u0108\u0002", + "\u0002\u03fa\u0406\u0005\u008eH\u0007\u03fb\u03fc\f\u0005\u0002\u0002", + "\u03fc\u03fd\u0007\u0109\u0002\u0002\u03fd\u0406\u0005\u008eH\u0006", + "\u03fe\u03ff\f\u0004\u0002\u0002\u03ff\u0400\u0007\u0107\u0002\u0002", + "\u0400\u0406\u0005\u008eH\u0005\u0401\u0402\f\u0003\u0002\u0002\u0402", + "\u0403\u0005\u00d0i\u0002\u0403\u0404\u0005\u008eH\u0004\u0404\u0406", + "\u0003\u0002\u0002\u0002\u0405\u03f2\u0003\u0002\u0002\u0002\u0405\u03f5", + "\u0003\u0002\u0002\u0002\u0405\u03f8\u0003\u0002\u0002\u0002\u0405\u03fb", + "\u0003\u0002\u0002\u0002\u0405\u03fe\u0003\u0002\u0002\u0002\u0405\u0401", + "\u0003\u0002\u0002\u0002\u0406\u0409\u0003\u0002\u0002\u0002\u0407\u0405", + "\u0003\u0002\u0002\u0002\u0407\u0408\u0003\u0002\u0002\u0002\u0408\u008f", + "\u0003\u0002\u0002\u0002\u0409\u0407\u0003\u0002\u0002\u0002\u040a\u040b", + "\bI\u0001\u0002\u040b\u040d\u0007)\u0002\u0002\u040c\u040e\u0005\u00b8", + "]\u0002\u040d\u040c\u0003\u0002\u0002\u0002\u040e\u040f\u0003\u0002", + "\u0002\u0002\u040f\u040d\u0003\u0002\u0002\u0002\u040f\u0410\u0003\u0002", + "\u0002\u0002\u0410\u0413\u0003\u0002\u0002\u0002\u0411\u0412\u0007,", + "\u0002\u0002\u0412\u0414\u0005\u0088E\u0002\u0413\u0411\u0003\u0002", + "\u0002\u0002\u0413\u0414\u0003\u0002\u0002\u0002\u0414\u0415\u0003\u0002", + "\u0002\u0002\u0415\u0416\u0007-\u0002\u0002\u0416\u0466\u0003\u0002", + "\u0002\u0002\u0417\u0418\u0007)\u0002\u0002\u0418\u041a\u0005\u0088", + "E\u0002\u0419\u041b\u0005\u00b8]\u0002\u041a\u0419\u0003\u0002\u0002", + "\u0002\u041b\u041c\u0003\u0002\u0002\u0002\u041c\u041a\u0003\u0002\u0002", + "\u0002\u041c\u041d\u0003\u0002\u0002\u0002\u041d\u0420\u0003\u0002\u0002", + "\u0002\u041e\u041f\u0007,\u0002\u0002\u041f\u0421\u0005\u0088E\u0002", + "\u0420\u041e\u0003\u0002\u0002\u0002\u0420\u0421\u0003\u0002\u0002\u0002", + "\u0421\u0422\u0003\u0002\u0002\u0002\u0422\u0423\u0007-\u0002\u0002", + "\u0423\u0466\u0003\u0002\u0002\u0002\u0424\u0425\u0007V\u0002\u0002", + "\u0425\u0426\u0007\u010d\u0002\u0002\u0426\u0427\u0005\u0088E\u0002", + "\u0427\u0428\u0007\t\u0002\u0002\u0428\u0429\u0005 \u0011\u0002\u0429", + "\u042a\u0007\u010e\u0002\u0002\u042a\u0466\u0003\u0002\u0002\u0002\u042b", + "\u042c\u0007C\u0002\u0002\u042c\u042d\u0007\u010d\u0002\u0002\u042d", + "\u0430\u0005\u0088E\u0002\u042e\u042f\u0007r\u0002\u0002\u042f\u0431", + "\u0007$\u0002\u0002\u0430\u042e\u0003\u0002\u0002\u0002\u0430\u0431", + "\u0003\u0002\u0002\u0002\u0431\u0432\u0003\u0002\u0002\u0002\u0432\u0433", + "\u0007\u010e\u0002\u0002\u0433\u0466\u0003\u0002\u0002\u0002\u0434\u0435", + "\u0007E\u0002\u0002\u0435\u0436\u0007\u010d\u0002\u0002\u0436\u0439", + "\u0005\u0088E\u0002\u0437\u0438\u0007r\u0002\u0002\u0438\u043a\u0007", + "$\u0002\u0002\u0439\u0437\u0003\u0002\u0002\u0002\u0439\u043a\u0003", + "\u0002\u0002\u0002\u043a\u043b\u0003\u0002\u0002\u0002\u043b\u043c\u0007", + "\u010e\u0002\u0002\u043c\u0466\u0003\u0002\u0002\u0002\u043d\u043e\u0007", + "w\u0002\u0002\u043e\u043f\u0007\u010d\u0002\u0002\u043f\u0440\u0005", + "\u008eH\u0002\u0440\u0441\u0007\u001a\u0002\u0002\u0441\u0442\u0005", + "\u008eH\u0002\u0442\u0443\u0007\u010e\u0002\u0002\u0443\u0466\u0003", + "\u0002\u0002\u0002\u0444\u0466\u0005\u00dan\u0002\u0445\u0466\u0007", + "\u0116\u0002\u0002\u0446\u0447\u0005\u00bc_\u0002\u0447\u0448\u0007", + "\u010a\u0002\u0002\u0448\u0449\u0007\u0116\u0002\u0002\u0449\u0466\u0003", + "\u0002\u0002\u0002\u044a\u044b\u0007\u010d\u0002\u0002\u044b\u044c\u0005", + "Z.\u0002\u044c\u044d\u0007\u010e\u0002\u0002\u044d\u0466\u0003\u0002", + "\u0002\u0002\u044e\u044f\u0005\u0092J\u0002\u044f\u045b\u0007\u010d", + "\u0002\u0002\u0450\u0452\u0005\u00e2r\u0002\u0451\u0450\u0003\u0002", + "\u0002\u0002\u0451\u0452\u0003\u0002\u0002\u0002\u0452\u0453\u0003\u0002", + "\u0002\u0002\u0453\u0458\u0005\u0088E\u0002\u0454\u0455\u0007\u010f", + "\u0002\u0002\u0455\u0457\u0005\u0088E\u0002\u0456\u0454\u0003\u0002", + "\u0002\u0002\u0457\u045a\u0003\u0002\u0002\u0002\u0458\u0456\u0003\u0002", + "\u0002\u0002\u0458\u0459\u0003\u0002\u0002\u0002\u0459\u045c\u0003\u0002", + "\u0002\u0002\u045a\u0458\u0003\u0002\u0002\u0002\u045b\u0451\u0003\u0002", + "\u0002\u0002\u045b\u045c\u0003\u0002\u0002\u0002\u045c\u045d\u0003\u0002", + "\u0002\u0002\u045d\u045e\u0007\u010e\u0002\u0002\u045e\u0466\u0003\u0002", + "\u0002\u0002\u045f\u0466\u0005\u00b0Y\u0002\u0460\u0466\u0005\u0094", + "K\u0002\u0461\u0462\u0007\u010d\u0002\u0002\u0462\u0463\u0005\u0088", + "E\u0002\u0463\u0464\u0007\u010e\u0002\u0002\u0464\u0466\u0003\u0002", + "\u0002\u0002\u0465\u040a\u0003\u0002\u0002\u0002\u0465\u0417\u0003\u0002", + "\u0002\u0002\u0465\u0424\u0003\u0002\u0002\u0002\u0465\u042b\u0003\u0002", + "\u0002\u0002\u0465\u0434\u0003\u0002\u0002\u0002\u0465\u043d\u0003\u0002", + "\u0002\u0002\u0465\u0444\u0003\u0002\u0002\u0002\u0465\u0445\u0003\u0002", + "\u0002\u0002\u0465\u0446\u0003\u0002\u0002\u0002\u0465\u044a\u0003\u0002", + "\u0002\u0002\u0465\u044e\u0003\u0002\u0002\u0002\u0465\u045f\u0003\u0002", + "\u0002\u0002\u0465\u0460\u0003\u0002\u0002\u0002\u0465\u0461\u0003\u0002", + "\u0002\u0002\u0466\u046e\u0003\u0002\u0002\u0002\u0467\u0468\f\u0006", + "\u0002\u0002\u0468\u0469\u0007\u010b\u0002\u0002\u0469\u046a\u0005\u008e", + "H\u0002\u046a\u046b\u0007\u010c\u0002\u0002\u046b\u046d\u0003\u0002", + "\u0002\u0002\u046c\u0467\u0003\u0002\u0002\u0002\u046d\u0470\u0003\u0002", + "\u0002\u0002\u046e\u046c\u0003\u0002\u0002\u0002\u046e\u046f\u0003\u0002", + "\u0002\u0002\u046f\u0091\u0003\u0002\u0002\u0002\u0470\u046e\u0003\u0002", + "\u0002\u0002\u0471\u0472\u0005\u00bc_\u0002\u0472\u0093\u0003\u0002", + "\u0002\u0002\u0473\u0474\u0005\u00bc_\u0002\u0474\u0095\u0003\u0002", + "\u0002\u0002\u0475\u0478\u0005\u00b0Y\u0002\u0476\u0478\u0005\u0094", + "K\u0002\u0477\u0475\u0003\u0002\u0002\u0002\u0477\u0476\u0003\u0002", + "\u0002\u0002\u0478\u0097\u0003\u0002\u0002\u0002\u0479\u047c\u0007(", + "\u0002\u0002\u047a\u047d\u0005\u009aN\u0002\u047b\u047d\u0005\u009e", + "P\u0002\u047c\u047a\u0003\u0002\u0002\u0002\u047c\u047b\u0003\u0002", + "\u0002\u0002\u047c\u047d\u0003\u0002\u0002\u0002\u047d\u0099\u0003\u0002", + "\u0002\u0002\u047e\u0480\u0005\u009cO\u0002\u047f\u0481\u0005\u00a0", + "Q\u0002\u0480\u047f\u0003\u0002\u0002\u0002\u0480\u0481\u0003\u0002", + "\u0002\u0002\u0481\u009b\u0003\u0002\u0002\u0002\u0482\u0483\u0005\u00a2", + "R\u0002\u0483\u0484\u0005\u00b0Y\u0002\u0484\u0486\u0003\u0002\u0002", + "\u0002\u0485\u0482\u0003\u0002\u0002\u0002\u0486\u0487\u0003\u0002\u0002", + "\u0002\u0487\u0485\u0003\u0002\u0002\u0002\u0487\u0488\u0003\u0002\u0002", + "\u0002\u0488\u009d\u0003\u0002\u0002\u0002\u0489\u048c\u0005\u00a0Q", + "\u0002\u048a\u048d\u0005\u009cO\u0002\u048b\u048d\u0005\u00a0Q\u0002", + "\u048c\u048a\u0003\u0002\u0002\u0002\u048c\u048b\u0003\u0002\u0002\u0002", + "\u048c\u048d\u0003\u0002\u0002\u0002\u048d\u009f\u0003\u0002\u0002\u0002", + "\u048e\u048f\u0005\u00a2R\u0002\u048f\u0490\u0005\u00b0Y\u0002\u0490", + "\u0491\u0007c\u0002\u0002\u0491\u0492\u0005\u00b0Y\u0002\u0492\u00a1", + "\u0003\u0002\u0002\u0002\u0493\u0495\t\u0012\u0002\u0002\u0494\u0493", + "\u0003\u0002\u0002\u0002\u0494\u0495\u0003\u0002\u0002\u0002\u0495\u0496", + "\u0003\u0002\u0002\u0002\u0496\u0499\t\u0013\u0002\u0002\u0497\u0499", + "\u0007\u0120\u0002\u0002\u0498\u0494\u0003\u0002\u0002\u0002\u0498\u0497", + "\u0003\u0002\u0002\u0002\u0499\u00a3\u0003\u0002\u0002\u0002\u049a\u049c", + "\u0007\t\u0002\u0002\u049b\u049a\u0003\u0002\u0002\u0002\u049b\u049c", + "\u0003\u0002\u0002\u0002\u049c\u049d\u0003\u0002\u0002\u0002\u049d\u049f", + "\u0005\u00b2Z\u0002\u049e\u04a0\u0005\u00acW\u0002\u049f\u049e\u0003", + "\u0002\u0002\u0002\u049f\u04a0\u0003\u0002\u0002\u0002\u04a0\u00a5\u0003", + "\u0002\u0002\u0002\u04a1\u04a3\u0007\t\u0002\u0002\u04a2\u04a1\u0003", + "\u0002\u0002\u0002\u04a2\u04a3\u0003\u0002\u0002\u0002\u04a3\u04a4\u0003", + "\u0002\u0002\u0002\u04a4\u04a6\u0005\u00b2Z\u0002\u04a5\u04a7\u0005", + "\u00acW\u0002\u04a6\u04a5\u0003\u0002\u0002\u0002\u04a6\u04a7\u0003", + "\u0002\u0002\u0002\u04a7\u00a7\u0003\u0002\u0002\u0002\u04a8\u04a9\u0005", + "\u00b0Y\u0002\u04a9\u04aa\u0005\u00aaV\u0002\u04aa\u00a9\u0003\u0002", + "\u0002\u0002\u04ab\u04ac\u0007y\u0002\u0002\u04ac\u04ae\u0005\u00b0", + "Y\u0002\u04ad\u04ab\u0003\u0002\u0002\u0002\u04ae\u04af\u0003\u0002", + "\u0002\u0002\u04af\u04ad\u0003\u0002\u0002\u0002\u04af\u04b0\u0003\u0002", + "\u0002\u0002\u04b0\u04b3\u0003\u0002\u0002\u0002\u04b1\u04b3\u0003\u0002", + "\u0002\u0002\u04b2\u04ad\u0003\u0002\u0002\u0002\u04b2\u04b1\u0003\u0002", + "\u0002\u0002\u04b3\u00ab\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007\u010d", + "\u0002\u0002\u04b5\u04b6\u0005\u00aeX\u0002\u04b6\u04b7\u0007\u010e", + "\u0002\u0002\u04b7\u00ad\u0003\u0002\u0002\u0002\u04b8\u04bd\u0005\u00b0", + "Y\u0002\u04b9\u04ba\u0007\u010f\u0002\u0002\u04ba\u04bc\u0005\u00b0", + "Y\u0002\u04bb\u04b9\u0003\u0002\u0002\u0002\u04bc\u04bf\u0003\u0002", + "\u0002\u0002\u04bd\u04bb\u0003\u0002\u0002\u0002\u04bd\u04be\u0003\u0002", + "\u0002\u0002\u04be\u00af\u0003\u0002\u0002\u0002\u04bf\u04bd\u0003\u0002", + "\u0002\u0002\u04c0\u04c3\u0005\u00b2Z\u0002\u04c1\u04c3\u0005\u00e6", + "t\u0002\u04c2\u04c0\u0003\u0002\u0002\u0002\u04c2\u04c1\u0003\u0002", + "\u0002\u0002\u04c3\u00b1\u0003\u0002\u0002\u0002\u04c4\u04c9\u0005\u00b4", + "[\u0002\u04c5\u04c9\u0005\u00b6\\\u0002\u04c6\u04c9\u0005\u00e4s\u0002", + "\u04c7\u04c9\u0005\u00e8u\u0002\u04c8\u04c4\u0003\u0002\u0002\u0002", + "\u04c8\u04c5\u0003\u0002\u0002\u0002\u04c8\u04c6\u0003\u0002\u0002\u0002", + "\u04c8\u04c7\u0003\u0002\u0002\u0002\u04c9\u00b3\u0003\u0002\u0002\u0002", + "\u04ca\u04cb\t\u0014\u0002\u0002\u04cb\u00b5\u0003\u0002\u0002\u0002", + "\u04cc\u04cd\u0007\u0120\u0002\u0002\u04cd\u00b7\u0003\u0002\u0002\u0002", + "\u04ce\u04cf\u0007*\u0002\u0002\u04cf\u04d0\u0005\u0088E\u0002\u04d0", + "\u04d1\u0007+\u0002\u0002\u04d1\u04d2\u0005\u0088E\u0002\u04d2\u00b9", + "\u0003\u0002\u0002\u0002\u04d3\u04d8\u0005\u00bc_\u0002\u04d4\u04d5", + "\u0007\u010f\u0002\u0002\u04d5\u04d7\u0005\u00bc_\u0002\u04d6\u04d4", + "\u0003\u0002\u0002\u0002\u04d7\u04da\u0003\u0002\u0002\u0002\u04d8\u04d6", + "\u0003\u0002\u0002\u0002\u04d8\u04d9\u0003\u0002\u0002\u0002\u04d9\u00bb", + "\u0003\u0002\u0002\u0002\u04da\u04d8\u0003\u0002\u0002\u0002\u04db\u04df", + "\u0007\u0124\u0002\u0002\u04dc\u04de\u0007\u011e\u0002\u0002\u04dd\u04dc", + "\u0003\u0002\u0002\u0002\u04de\u04e1\u0003\u0002\u0002\u0002\u04df\u04e0", + "\u0003\u0002\u0002\u0002\u04df\u04dd\u0003\u0002\u0002\u0002\u04e0\u00bd", + "\u0003\u0002\u0002\u0002\u04e1\u04df\u0003\u0002\u0002\u0002\u04e2\u04e6", + "\t\u0015\u0002\u0002\u04e3\u04e5\t\u0016\u0002\u0002\u04e4\u04e3\u0003", + "\u0002\u0002\u0002\u04e5\u04e8\u0003\u0002\u0002\u0002\u04e6\u04e7\u0003", + "\u0002\u0002\u0002\u04e6\u04e4\u0003\u0002\u0002\u0002\u04e7\u00bf\u0003", + "\u0002\u0002\u0002\u04e8\u04e6\u0003\u0002\u0002\u0002\u04e9\u04ea\u0007", + "F\u0002\u0002\u04ea\u04eb\u0005\u00c6d\u0002\u04eb\u00c1\u0003\u0002", + "\u0002\u0002\u04ec\u04ed\u0007v\u0002\u0002\u04ed\u04ee\u0007\u001b", + "\u0002\u0002\u04ee\u04ef\u0007\u001d\u0002\u0002\u04ef\u00c3\u0003\u0002", + "\u0002\u0002\u04f0\u04f1\u0007v\u0002\u0002\u04f1\u04f2\u0007\u001d", + "\u0002\u0002\u04f2\u00c5\u0003\u0002\u0002\u0002\u04f3\u04f4\u0007\u010d", + "\u0002\u0002\u04f4\u04f9\u0005\u00c8e\u0002\u04f5\u04f6\u0007\u010f", + "\u0002\u0002\u04f6\u04f8\u0005\u00c8e\u0002\u04f7\u04f5\u0003\u0002", + "\u0002\u0002\u04f8\u04fb\u0003\u0002\u0002\u0002\u04f9\u04f7\u0003\u0002", + "\u0002\u0002\u04f9\u04fa\u0003\u0002\u0002\u0002\u04fa\u04fc\u0003\u0002", + "\u0002\u0002\u04fb\u04f9\u0003\u0002\u0002\u0002\u04fc\u04fd\u0007\u010e", + "\u0002\u0002\u04fd\u00c7\u0003\u0002\u0002\u0002\u04fe\u0503\u0005\u00ca", + "f\u0002\u04ff\u0501\u0007\u0102\u0002\u0002\u0500\u04ff\u0003\u0002", + "\u0002\u0002\u0500\u0501\u0003\u0002\u0002\u0002\u0501\u0502\u0003\u0002", + "\u0002\u0002\u0502\u0504\u0005\u00ccg\u0002\u0503\u0500\u0003\u0002", + "\u0002\u0002\u0503\u0504\u0003\u0002\u0002\u0002\u0504\u00c9\u0003\u0002", + "\u0002\u0002\u0505\u0509\u0005\u00b0Y\u0002\u0506\u0509\u0005\u0094", + "K\u0002\u0507\u0509\u0007\u0120\u0002\u0002\u0508\u0505\u0003\u0002", + "\u0002\u0002\u0508\u0506\u0003\u0002\u0002\u0002\u0508\u0507\u0003\u0002", + "\u0002\u0002\u0509\u00cb\u0003\u0002\u0002\u0002\u050a\u050f\u0007\u0121", + "\u0002\u0002\u050b\u050f\u0007\u0122\u0002\u0002\u050c\u050f\u0005\u00e0", + "q\u0002\u050d\u050f\u0007\u0120\u0002\u0002\u050e\u050a\u0003\u0002", + "\u0002\u0002\u050e\u050b\u0003\u0002\u0002\u0002\u050e\u050c\u0003\u0002", + "\u0002\u0002\u050e\u050d\u0003\u0002\u0002\u0002\u050f\u00cd\u0003\u0002", + "\u0002\u0002\u0510\u0517\u0007\u0019\u0002\u0002\u0511\u0512\u0007\u0108", + "\u0002\u0002\u0512\u0517\u0007\u0108\u0002\u0002\u0513\u0517\u0007\u0018", + "\u0002\u0002\u0514\u0515\u0007\u0107\u0002\u0002\u0515\u0517\u0007\u0107", + "\u0002\u0002\u0516\u0510\u0003\u0002\u0002\u0002\u0516\u0511\u0003\u0002", + "\u0002\u0002\u0516\u0513\u0003\u0002\u0002\u0002\u0516\u0514\u0003\u0002", + "\u0002\u0002\u0517\u00cf\u0003\u0002\u0002\u0002\u0518\u0527\u0007\u0102", + "\u0002\u0002\u0519\u0527\u0007\u0103\u0002\u0002\u051a\u0527\u0007\u0104", + "\u0002\u0002\u051b\u051c\u0007\u0104\u0002\u0002\u051c\u0527\u0007\u0102", + "\u0002\u0002\u051d\u051e\u0007\u0103\u0002\u0002\u051e\u0527\u0007\u0102", + "\u0002\u0002\u051f\u0520\u0007\u0104\u0002\u0002\u0520\u0527\u0007\u0103", + "\u0002\u0002\u0521\u0522\u0007\u0105\u0002\u0002\u0522\u0527\u0007\u0102", + "\u0002\u0002\u0523\u0524\u0007\u0104\u0002\u0002\u0524\u0525\u0007\u0102", + "\u0002\u0002\u0525\u0527\u0007\u0103\u0002\u0002\u0526\u0518\u0003\u0002", + "\u0002\u0002\u0526\u0519\u0003\u0002\u0002\u0002\u0526\u051a\u0003\u0002", + "\u0002\u0002\u0526\u051b\u0003\u0002\u0002\u0002\u0526\u051d\u0003\u0002", + "\u0002\u0002\u0526\u051f\u0003\u0002\u0002\u0002\u0526\u0521\u0003\u0002", + "\u0002\u0002\u0526\u0523\u0003\u0002\u0002\u0002\u0527\u00d1\u0003\u0002", + "\u0002\u0002\u0528\u0529\u0007\u0104\u0002\u0002\u0529\u0530\u0007\u0104", + "\u0002\u0002\u052a\u052b\u0007\u0103\u0002\u0002\u052b\u0530\u0007\u0103", + "\u0002\u0002\u052c\u0530\u0007\u0108\u0002\u0002\u052d\u0530\u0007\u0109", + "\u0002\u0002\u052e\u0530\u0007\u0107\u0002\u0002\u052f\u0528\u0003\u0002", + "\u0002\u0002\u052f\u052a\u0003\u0002\u0002\u0002\u052f\u052c\u0003\u0002", + "\u0002\u0002\u052f\u052d\u0003\u0002\u0002\u0002\u052f\u052e\u0003\u0002", + "\u0002\u0002\u0530\u00d3\u0003\u0002\u0002\u0002\u0531\u0532\t\u0017", + "\u0002\u0002\u0532\u00d5\u0003\u0002\u0002\u0002\u0533\u0534\t\u0018", + "\u0002\u0002\u0534\u00d7\u0003\u0002\u0002\u0002\u0535\u0536\u0005\u00bc", + "_\u0002\u0536\u00d9\u0003\u0002\u0002\u0002\u0537\u0544\u0005\u00dc", + "o\u0002\u0538\u0544\u0005\u00dep\u0002\u0539\u0544\u0005\u0098M\u0002", + "\u053a\u053b\u0007\u0118\u0002\u0002\u053b\u0544\u0005\u00dep\u0002", + "\u053c\u0544\u0005\u00e0q\u0002\u053d\u0544\u0007\u0122\u0002\u0002", + "\u053e\u0544\u0007\u0123\u0002\u0002\u053f\u0541\u0007\u001b\u0002\u0002", + "\u0540\u053f\u0003\u0002\u0002\u0002\u0540\u0541\u0003\u0002\u0002\u0002", + "\u0541\u0542\u0003\u0002\u0002\u0002\u0542\u0544\u0007\u0100\u0002\u0002", + "\u0543\u0537\u0003\u0002\u0002\u0002\u0543\u0538\u0003\u0002\u0002\u0002", + "\u0543\u0539\u0003\u0002\u0002\u0002\u0543\u053a\u0003\u0002\u0002\u0002", + "\u0543\u053c\u0003\u0002\u0002\u0002\u0543\u053d\u0003\u0002\u0002\u0002", + "\u0543\u053e\u0003\u0002\u0002\u0002\u0543\u0540\u0003\u0002\u0002\u0002", + "\u0544\u00db\u0003\u0002\u0002\u0002\u0545\u0546\u0007\u0120\u0002\u0002", + "\u0546\u00dd\u0003\u0002\u0002\u0002\u0547\u0548\u0007\u0121\u0002\u0002", + "\u0548\u00df\u0003\u0002\u0002\u0002\u0549\u054a\t\u000e\u0002\u0002", + "\u054a\u00e1\u0003\u0002\u0002\u0002\u054b\u054c\t\u0019\u0002\u0002", + "\u054c\u00e3\u0003\u0002\u0002\u0002\u054d\u054e\t\u001a\u0002\u0002", + "\u054e\u00e5\u0003\u0002\u0002\u0002\u054f\u0550\t\u001b\u0002\u0002", + "\u0550\u00e7\u0003\u0002\u0002\u0002\u0551\u0552\t\u001c\u0002\u0002", + "\u0552\u00e9\u0003\u0002\u0002\u0002\u009f\u00f2\u00f5\u00f7\u0100\u0110", + "\u0114\u0120\u0130\u0135\u0139\u013d\u0141\u0144\u0148\u014d\u0150\u0154", + "\u015b\u016f\u0185\u0192\u0197\u019b\u01a5\u01af\u01b3\u01b9\u01bd\u01c1", + "\u01c4\u01cd\u01d1\u01d8\u01df\u01f1\u01f5\u01fc\u0201\u0208\u020c\u0210", + "\u0214\u021c\u0220\u0228\u022c\u0237\u0240\u024d\u0250\u0254\u0257\u0259", + "\u025e\u0262\u0265\u0269\u0272\u0278\u027b\u027e\u0281\u0285\u028d\u0290", + "\u0294\u0297\u02a2\u02a7\u02aa\u02af\u02b3\u02b8\u02bb\u02c8\u02d3\u02de", + "\u02e3\u02ef\u02fb\u0307\u0313\u0320\u0325\u0331\u0336\u033b\u0343\u034b", + "\u0355\u0358\u0361\u0364\u0367\u036d\u0371\u0377\u0388\u038a\u0392\u0394", + "\u0398\u03a0\u03a9\u03af\u03bc\u03c1\u03cd\u03d2\u03d5\u03db\u03e0\u03e5", + "\u03ea\u03f0\u0405\u0407\u040f\u0413\u041c\u0420\u0430\u0439\u0451\u0458", + "\u045b\u0465\u046e\u0477\u047c\u0480\u0487\u048c\u0494\u0498\u049b\u049f", + "\u04a2\u04a6\u04af\u04b2\u04bd\u04c2\u04c8\u04d8\u04df\u04e6\u04f9\u0500", + "\u0503\u0508\u050e\u0516\u0526\u052f\u0540\u0543"].join(""); + + +var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); + +var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new antlr4.dfa.DFA(ds, index); }); + +var sharedContextCache = new antlr4.PredictionContextCache(); + +var literalNames = [ null, null, null, null, "'SELECT'", "'FROM'", "'ADD'", + "'AS'", "'ALL'", "'ANY'", "'DISTINCT'", "'WHERE'", + "'GROUP'", "'BY'", "'GROUPING'", "'SETS'", "'CUBE'", + "'ROLLUP'", "'ORDER'", "'HAVING'", "'LIMIT'", "'AT'", + "'OR'", "'AND'", "'IN'", "'NOT'", "'NO'", "'EXISTS'", + "'BETWEEN'", "'LIKE'", "'RLIKE'", "'IS'", "'TRUE'", + "'FALSE'", "'NULLS'", "'ASC'", "'DESC'", "'FOR'", "'INTERVAL'", + "'CASE'", "'WHEN'", "'THEN'", "'ELSE'", "'END'", "'JOIN'", + "'CROSS'", "'OUTER'", "'INNER'", "'LEFT'", "'SEMI'", + "'RIGHT'", "'FULL'", "'NATURAL'", "'ON'", "'PIVOT'", + "'LATERAL'", "'WINDOW'", "'OVER'", "'PARTITION'", "'RANGE'", + "'ROWS'", "'UNBOUNDED'", "'PRECEDING'", "'FOLLOWING'", + "'CURRENT'", "'FIRST'", "'AFTER'", "'LAST'", "'WITH'", + "'VALUES'", "'CREATE'", "'TABLE'", "'DIRECTORY'", "'VIEW'", + "'REPLACE'", "'INSERT'", "'DELETE'", "'INTO'", "'DESCRIBE'", + "'EXPLAIN'", "'FORMAT'", "'LOGICAL'", "'CODEGEN'", + "'COST'", "'CAST'", "'SHOW'", "'TABLES'", "'COLUMNS'", + "'COLUMN'", "'USE'", "'PARTITIONS'", "'FUNCTIONS'", + "'DROP'", "'UNION'", "'EXCEPT'", "'SETMINUS'", "'INTERSECT'", + "'TO'", "'TABLESAMPLE'", "'STRATIFY'", "'ALTER'", "'RENAME'", + "'STRUCT'", "'COMMENT'", "'SET'", "'RESET'", "'DATA'", + "'START'", "'TRANSACTION'", "'COMMIT'", "'ROLLBACK'", + "'MACRO'", "'IGNORE'", "'BOTH'", "'LEADING'", "'TRAILING'", + "'IF'", "'POSITION'", "'EXTRACT'", "'MINUS'", "'DIV'", + "'PERCENTLIT'", "'BUCKET'", "'OUT'", "'OF'", "'SORT'", + "'CLUSTER'", "'DISTRIBUTE'", "'OVERWRITE'", "'TRANSFORM'", + "'REDUCE'", "'USING'", "'SERDE'", "'SERDEPROPERTIES'", + "'RECORDREADER'", "'RECORDWRITER'", "'DELIMITED'", + "'FIELDS'", "'TERMINATED'", "'COLLECTION'", "'ITEMS'", + "'KEYS'", "'ESCAPED'", "'LINES'", "'SEPARATED'", "'FUNCTION'", + "'EXTENDED'", "'REFRESH'", "'CLEAR'", "'CACHE'", "'UNCACHE'", + "'LAZY'", "'FORMATTED'", "'GLOBAL'", "'TEMPORARY'", + "'OPTIONS'", "'UNSET'", "'TBLPROPERTIES'", "'DBPROPERTIES'", + "'BUCKETS'", "'SKEWED'", "'STORED'", "'DIRECTORIES'", + "'LOCATION'", "'EXCHANGE'", "'ARCHIVE'", "'UNARCHIVE'", + "'FILEFORMAT'", "'TOUCH'", "'COMPACT'", "'CONCATENATE'", + "'CHANGE'", "'CASCADE'", "'CONSTRAINT'", "'RESTRICT'", + "'CLUSTERED'", "'SORTED'", "'PURGE'", "'INPUTFORMAT'", + "'OUTPUTFORMAT'", "'DATABASE'", "'DATABASES'", "'DFS'", + "'TRUNCATE'", "'ANALYZE'", "'COMPUTE'", "'LIST'", "'STATISTICS'", + "'PARTITIONED'", "'EXTERNAL'", "'DEFINED'", "'REVOKE'", + "'GRANT'", "'LOCK'", "'UNLOCK'", "'MSCK'", "'REPAIR'", + "'RECOVER'", "'EXPORT'", "'IMPORT'", "'LOAD'", "'ROLE'", + "'ROLES'", "'COMPACTIONS'", "'PRINCIPALS'", "'TRANSACTIONS'", + "'INDEX'", "'INDEXES'", "'LOCKS'", "'OPTION'", "'ANTI'", + "'LOCAL'", "'INPATH'", "'WATERMARK'", "'UNNEST'", "'MATCH'", + "'NEXT'", "'WITHIN'", "'WS'", "'SYSTEM'", "'INCLUDING'", + "'EXCLUDING'", "'CONSTRAINTS'", "'GENERATED'", "'CATALOG'", + "'LANGUAGE'", "'CATALOGS'", "'VIEWS'", "'PRIMARY'", + "'KEY'", "'PERIOD'", "'SYSTEM_TIME'", "'STRING'", "'ARRAY'", + "'MAP'", "'CHAR'", "'VARCHAR'", "'BINARY'", "'VARBINARY'", + "'BYTES'", "'DECIMAL'", "'TINYINT'", "'SMALLINT'", + "'INT'", "'BIGINT'", "'FLOAT'", "'DOUBLE'", "'DATE'", + "'TIME'", "'TIMESTAMP'", "'MULTISET'", "'BOOLEAN'", + "'RAW'", "'ROW'", "'NULL'", "'DATETIME'", "'='", "'>'", + "'<'", "'!'", "'~'", "'|'", "'&'", "'^'", "'.'", "'['", + "']'", "'('", "')'", "','", "';'", "'@'", "'''", "'\"'", + "'`'", "':'", "'*'", "'_'", "'-'", "'+'", "'%'", "'||'", + "'--'", "'/'" ]; + +var symbolicNames = [ null, "SPACE", "COMMENT_INPUT", "LINE_COMMENT", "SELECT", + "FROM", "ADD", "AS", "ALL", "ANY", "DISTINCT", "WHERE", + "GROUP", "BY", "GROUPING", "SETS", "CUBE", "ROLLUP", + "ORDER", "HAVING", "LIMIT", "AT", "OR", "AND", "IN", + "NOT", "NO", "EXISTS", "BETWEEN", "LIKE", "RLIKE", + "IS", "TRUE", "FALSE", "NULLS", "ASC", "DESC", "FOR", + "INTERVAL", "CASE", "WHEN", "THEN", "ELSE", "END", + "JOIN", "CROSS", "OUTER", "INNER", "LEFT", "SEMI", + "RIGHT", "FULL", "NATURAL", "ON", "PIVOT", "LATERAL", + "WINDOW", "OVER", "PARTITION", "RANGE", "ROWS", "UNBOUNDED", + "PRECEDING", "FOLLOWING", "CURRENT", "FIRST", "AFTER", + "LAST", "WITH", "VALUES", "CREATE", "TABLE", "DIRECTORY", + "VIEW", "REPLACE", "INSERT", "DELETE", "INTO", "DESCRIBE", + "EXPLAIN", "FORMAT", "LOGICAL", "CODEGEN", "COST", + "CAST", "SHOW", "TABLES", "COLUMNS", "COLUMN", "USE", + "PARTITIONS", "FUNCTIONS", "DROP", "UNION", "EXCEPT", + "SETMINUS", "INTERSECT", "TO", "TABLESAMPLE", "STRATIFY", + "ALTER", "RENAME", "STRUCT", "COMMENT", "SET", "RESET", + "DATA", "START", "TRANSACTION", "COMMIT", "ROLLBACK", + "MACRO", "IGNORE", "BOTH", "LEADING", "TRAILING", + "IF", "POSITION", "EXTRACT", "MINUS", "DIV", "PERCENTLIT", + "BUCKET", "OUT", "OF", "SORT", "CLUSTER", "DISTRIBUTE", + "OVERWRITE", "TRANSFORM", "REDUCE", "USING", "SERDE", + "SERDEPROPERTIES", "RECORDREADER", "RECORDWRITER", + "DELIMITED", "FIELDS", "TERMINATED", "COLLECTION", + "ITEMS", "KEYS", "ESCAPED", "LINES", "SEPARATED", + "FUNCTION", "EXTENDED", "REFRESH", "CLEAR", "CACHE", + "UNCACHE", "LAZY", "FORMATTED", "GLOBAL", "TEMPORARY", + "OPTIONS", "UNSET", "TBLPROPERTIES", "DBPROPERTIES", + "BUCKETS", "SKEWED", "STORED", "DIRECTORIES", "LOCATION", + "EXCHANGE", "ARCHIVE", "UNARCHIVE", "FILEFORMAT", + "TOUCH", "COMPACT", "CONCATENATE", "CHANGE", "CASCADE", + "CONSTRAINT", "RESTRICT", "CLUSTERED", "SORTED", "PURGE", + "INPUTFORMAT", "OUTPUTFORMAT", "DATABASE", "DATABASES", + "DFS", "TRUNCATE", "ANALYZE", "COMPUTE", "LIST", "STATISTICS", + "PARTITIONED", "EXTERNAL", "DEFINED", "REVOKE", "GRANT", + "LOCK", "UNLOCK", "MSCK", "REPAIR", "RECOVER", "EXPORT", + "IMPORT", "LOAD", "ROLE", "ROLES", "COMPACTIONS", + "PRINCIPALS", "TRANSACTIONS", "INDEX", "INDEXES", + "LOCKS", "OPTION", "ANTI", "LOCAL", "INPATH", "WATERMARK", + "UNNEST", "MATCH", "NEXT", "WITHIN", "WS", "SYSTEM", + "INCLUDING", "EXCLUDING", "CONSTRAINTS", "GENERATED", + "CATALOG", "LANGUAGE", "CATALOGS", "VIEWS", "PRIMARY", + "KEY", "PERIOD", "SYSTEM_TIME", "STRING", "ARRAY", + "MAP", "CHAR", "VARCHAR", "BINARY", "VARBINARY", "BYTES", + "DECIMAL", "TINYINT", "SMALLINT", "INT", "BIGINT", + "FLOAT", "DOUBLE", "DATE", "TIME", "TIMESTAMP", "MULTISET", + "BOOLEAN", "RAW", "ROW", "NULL", "DATETIME", "EQUAL_SYMBOL", + "GREATER_SYMBOL", "LESS_SYMBOL", "EXCLAMATION_SYMBOL", + "BIT_NOT_OP", "BIT_OR_OP", "BIT_AND_OP", "BIT_XOR_OP", + "DOT", "LS_BRACKET", "RS_BRACKET", "LR_BRACKET", "RR_BRACKET", + "COMMA", "SEMICOLON", "AT_SIGN", "SINGLE_QUOTE_SYMB", + "DOUBLE_QUOTE_SYMB", "REVERSE_QUOTE_SYMB", "COLON_SYMB", + "ASTERISK_SIGN", "UNDERLINE_SIGN", "HYPNEN_SIGN", + "ADD_SIGN", "PENCENT_SIGN", "DOUBLE_VERTICAL_SIGN", + "DOUBLE_HYPNEN_SIGN", "SLASH_SIGN", "DOT_ID", "PLUS_DOT_ID", + "STRING_LITERAL", "DIG_LITERAL", "REAL_LITERAL", "BIT_STRING", + "ID_LITERAL", "PLUS_ID_LITERAL" ]; + +var ruleNames = [ "program", "statement", "sqlStatements", "sqlStatement", + "emptyStatement", "ddlStatement", "dmlStatement", "describeStatement", + "explainStatement", "useStatement", "showStatememt", + "createTable", "columnOptionDefinition", "columnName", + "columnNameList", "columnType", "lengthOneDimension", + "commentSpec", "watermarkDefinition", "tableConstraint", + "selfDefinitionClause", "partitionDefinition", "transformList", + "transform", "transformArgument", "likeDefinition", "likeOption", + "createCatalog", "createDatabase", "createView", "createFunction", + "alterTable", "renameDefinition", "setKeyValueDefinition", + "alterDatabase", "alterFunction", "dropTable", "dropDatabase", + "dropView", "dropFunction", "insertStatement", "insertPartitionDefinition", + "valuesDefinition", "valuesRowDefinition", "queryStatement", + "valuesCaluse", "selectStatement", "selectClause", "projectItemDefinition", + "fromClause", "tableExpression", "tableReference", "tablePrimary", + "joinCondition", "whereClause", "groupByClause", "groupItemDefinition", + "havingClause", "orderByCaluse", "orderItemDefition", + "limitClause", "windowClause", "namedWindow", "windowSpec", + "sortItem", "windowFrame", "frameBound", "expression", + "booleanExpression", "predicate", "valueExpression", + "primaryExpression", "functionName", "dereferenceDefinition", + "qualifiedName", "interval", "errorCapturingMultiUnitsInterval", + "multiUnitsInterval", "errorCapturingUnitToUnitInterval", + "unitToUnitInterval", "intervalValue", "columnAlias", + "tableAlias", "errorCapturingIdentifier", "errorCapturingIdentifierExtra", + "identifierList", "identifierSeq", "identifier", "strictIdentifier", + "unquotedIdentifier", "quotedIdentifier", "whenClause", + "uidList", "uid", "plusUid", "withOption", "ifNotExists", + "ifExists", "tablePropertyList", "tableProperty", "tablePropertyKey", + "tablePropertyValue", "logicalOperator", "comparisonOperator", + "bitOperator", "mathOperator", "unaryOperator", "fullColumnName", + "constant", "stringLiteral", "decimalLiteral", "booleanLiteral", + "setQuantifier", "ansiNonReserved", "strictNonReserved", + "nonReserved" ]; + +function FlinkSqlParser (input) { + antlr4.Parser.call(this, input); + this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); + this.ruleNames = ruleNames; + this.literalNames = literalNames; + this.symbolicNames = symbolicNames; + return this; +} + +FlinkSqlParser.prototype = Object.create(antlr4.Parser.prototype); +FlinkSqlParser.prototype.constructor = FlinkSqlParser; + +Object.defineProperty(FlinkSqlParser.prototype, "atn", { + get : function() { + return atn; + } +}); + +FlinkSqlParser.EOF = antlr4.Token.EOF; +FlinkSqlParser.SPACE = 1; +FlinkSqlParser.COMMENT_INPUT = 2; +FlinkSqlParser.LINE_COMMENT = 3; +FlinkSqlParser.SELECT = 4; +FlinkSqlParser.FROM = 5; +FlinkSqlParser.ADD = 6; +FlinkSqlParser.AS = 7; +FlinkSqlParser.ALL = 8; +FlinkSqlParser.ANY = 9; +FlinkSqlParser.DISTINCT = 10; +FlinkSqlParser.WHERE = 11; +FlinkSqlParser.GROUP = 12; +FlinkSqlParser.BY = 13; +FlinkSqlParser.GROUPING = 14; +FlinkSqlParser.SETS = 15; +FlinkSqlParser.CUBE = 16; +FlinkSqlParser.ROLLUP = 17; +FlinkSqlParser.ORDER = 18; +FlinkSqlParser.HAVING = 19; +FlinkSqlParser.LIMIT = 20; +FlinkSqlParser.AT = 21; +FlinkSqlParser.OR = 22; +FlinkSqlParser.AND = 23; +FlinkSqlParser.IN = 24; +FlinkSqlParser.NOT = 25; +FlinkSqlParser.NO = 26; +FlinkSqlParser.EXISTS = 27; +FlinkSqlParser.BETWEEN = 28; +FlinkSqlParser.LIKE = 29; +FlinkSqlParser.RLIKE = 30; +FlinkSqlParser.IS = 31; +FlinkSqlParser.TRUE = 32; +FlinkSqlParser.FALSE = 33; +FlinkSqlParser.NULLS = 34; +FlinkSqlParser.ASC = 35; +FlinkSqlParser.DESC = 36; +FlinkSqlParser.FOR = 37; +FlinkSqlParser.INTERVAL = 38; +FlinkSqlParser.CASE = 39; +FlinkSqlParser.WHEN = 40; +FlinkSqlParser.THEN = 41; +FlinkSqlParser.ELSE = 42; +FlinkSqlParser.END = 43; +FlinkSqlParser.JOIN = 44; +FlinkSqlParser.CROSS = 45; +FlinkSqlParser.OUTER = 46; +FlinkSqlParser.INNER = 47; +FlinkSqlParser.LEFT = 48; +FlinkSqlParser.SEMI = 49; +FlinkSqlParser.RIGHT = 50; +FlinkSqlParser.FULL = 51; +FlinkSqlParser.NATURAL = 52; +FlinkSqlParser.ON = 53; +FlinkSqlParser.PIVOT = 54; +FlinkSqlParser.LATERAL = 55; +FlinkSqlParser.WINDOW = 56; +FlinkSqlParser.OVER = 57; +FlinkSqlParser.PARTITION = 58; +FlinkSqlParser.RANGE = 59; +FlinkSqlParser.ROWS = 60; +FlinkSqlParser.UNBOUNDED = 61; +FlinkSqlParser.PRECEDING = 62; +FlinkSqlParser.FOLLOWING = 63; +FlinkSqlParser.CURRENT = 64; +FlinkSqlParser.FIRST = 65; +FlinkSqlParser.AFTER = 66; +FlinkSqlParser.LAST = 67; +FlinkSqlParser.WITH = 68; +FlinkSqlParser.VALUES = 69; +FlinkSqlParser.CREATE = 70; +FlinkSqlParser.TABLE = 71; +FlinkSqlParser.DIRECTORY = 72; +FlinkSqlParser.VIEW = 73; +FlinkSqlParser.REPLACE = 74; +FlinkSqlParser.INSERT = 75; +FlinkSqlParser.DELETE = 76; +FlinkSqlParser.INTO = 77; +FlinkSqlParser.DESCRIBE = 78; +FlinkSqlParser.EXPLAIN = 79; +FlinkSqlParser.FORMAT = 80; +FlinkSqlParser.LOGICAL = 81; +FlinkSqlParser.CODEGEN = 82; +FlinkSqlParser.COST = 83; +FlinkSqlParser.CAST = 84; +FlinkSqlParser.SHOW = 85; +FlinkSqlParser.TABLES = 86; +FlinkSqlParser.COLUMNS = 87; +FlinkSqlParser.COLUMN = 88; +FlinkSqlParser.USE = 89; +FlinkSqlParser.PARTITIONS = 90; +FlinkSqlParser.FUNCTIONS = 91; +FlinkSqlParser.DROP = 92; +FlinkSqlParser.UNION = 93; +FlinkSqlParser.EXCEPT = 94; +FlinkSqlParser.SETMINUS = 95; +FlinkSqlParser.INTERSECT = 96; +FlinkSqlParser.TO = 97; +FlinkSqlParser.TABLESAMPLE = 98; +FlinkSqlParser.STRATIFY = 99; +FlinkSqlParser.ALTER = 100; +FlinkSqlParser.RENAME = 101; +FlinkSqlParser.STRUCT = 102; +FlinkSqlParser.COMMENT = 103; +FlinkSqlParser.SET = 104; +FlinkSqlParser.RESET = 105; +FlinkSqlParser.DATA = 106; +FlinkSqlParser.START = 107; +FlinkSqlParser.TRANSACTION = 108; +FlinkSqlParser.COMMIT = 109; +FlinkSqlParser.ROLLBACK = 110; +FlinkSqlParser.MACRO = 111; +FlinkSqlParser.IGNORE = 112; +FlinkSqlParser.BOTH = 113; +FlinkSqlParser.LEADING = 114; +FlinkSqlParser.TRAILING = 115; +FlinkSqlParser.IF = 116; +FlinkSqlParser.POSITION = 117; +FlinkSqlParser.EXTRACT = 118; +FlinkSqlParser.MINUS = 119; +FlinkSqlParser.DIV = 120; +FlinkSqlParser.PERCENTLIT = 121; +FlinkSqlParser.BUCKET = 122; +FlinkSqlParser.OUT = 123; +FlinkSqlParser.OF = 124; +FlinkSqlParser.SORT = 125; +FlinkSqlParser.CLUSTER = 126; +FlinkSqlParser.DISTRIBUTE = 127; +FlinkSqlParser.OVERWRITE = 128; +FlinkSqlParser.TRANSFORM = 129; +FlinkSqlParser.REDUCE = 130; +FlinkSqlParser.USING = 131; +FlinkSqlParser.SERDE = 132; +FlinkSqlParser.SERDEPROPERTIES = 133; +FlinkSqlParser.RECORDREADER = 134; +FlinkSqlParser.RECORDWRITER = 135; +FlinkSqlParser.DELIMITED = 136; +FlinkSqlParser.FIELDS = 137; +FlinkSqlParser.TERMINATED = 138; +FlinkSqlParser.COLLECTION = 139; +FlinkSqlParser.ITEMS = 140; +FlinkSqlParser.KEYS = 141; +FlinkSqlParser.ESCAPED = 142; +FlinkSqlParser.LINES = 143; +FlinkSqlParser.SEPARATED = 144; +FlinkSqlParser.FUNCTION = 145; +FlinkSqlParser.EXTENDED = 146; +FlinkSqlParser.REFRESH = 147; +FlinkSqlParser.CLEAR = 148; +FlinkSqlParser.CACHE = 149; +FlinkSqlParser.UNCACHE = 150; +FlinkSqlParser.LAZY = 151; +FlinkSqlParser.FORMATTED = 152; +FlinkSqlParser.GLOBAL = 153; +FlinkSqlParser.TEMPORARY = 154; +FlinkSqlParser.OPTIONS = 155; +FlinkSqlParser.UNSET = 156; +FlinkSqlParser.TBLPROPERTIES = 157; +FlinkSqlParser.DBPROPERTIES = 158; +FlinkSqlParser.BUCKETS = 159; +FlinkSqlParser.SKEWED = 160; +FlinkSqlParser.STORED = 161; +FlinkSqlParser.DIRECTORIES = 162; +FlinkSqlParser.LOCATION = 163; +FlinkSqlParser.EXCHANGE = 164; +FlinkSqlParser.ARCHIVE = 165; +FlinkSqlParser.UNARCHIVE = 166; +FlinkSqlParser.FILEFORMAT = 167; +FlinkSqlParser.TOUCH = 168; +FlinkSqlParser.COMPACT = 169; +FlinkSqlParser.CONCATENATE = 170; +FlinkSqlParser.CHANGE = 171; +FlinkSqlParser.CASCADE = 172; +FlinkSqlParser.CONSTRAINT = 173; +FlinkSqlParser.RESTRICT = 174; +FlinkSqlParser.CLUSTERED = 175; +FlinkSqlParser.SORTED = 176; +FlinkSqlParser.PURGE = 177; +FlinkSqlParser.INPUTFORMAT = 178; +FlinkSqlParser.OUTPUTFORMAT = 179; +FlinkSqlParser.DATABASE = 180; +FlinkSqlParser.DATABASES = 181; +FlinkSqlParser.DFS = 182; +FlinkSqlParser.TRUNCATE = 183; +FlinkSqlParser.ANALYZE = 184; +FlinkSqlParser.COMPUTE = 185; +FlinkSqlParser.LIST = 186; +FlinkSqlParser.STATISTICS = 187; +FlinkSqlParser.PARTITIONED = 188; +FlinkSqlParser.EXTERNAL = 189; +FlinkSqlParser.DEFINED = 190; +FlinkSqlParser.REVOKE = 191; +FlinkSqlParser.GRANT = 192; +FlinkSqlParser.LOCK = 193; +FlinkSqlParser.UNLOCK = 194; +FlinkSqlParser.MSCK = 195; +FlinkSqlParser.REPAIR = 196; +FlinkSqlParser.RECOVER = 197; +FlinkSqlParser.EXPORT = 198; +FlinkSqlParser.IMPORT = 199; +FlinkSqlParser.LOAD = 200; +FlinkSqlParser.ROLE = 201; +FlinkSqlParser.ROLES = 202; +FlinkSqlParser.COMPACTIONS = 203; +FlinkSqlParser.PRINCIPALS = 204; +FlinkSqlParser.TRANSACTIONS = 205; +FlinkSqlParser.INDEX = 206; +FlinkSqlParser.INDEXES = 207; +FlinkSqlParser.LOCKS = 208; +FlinkSqlParser.OPTION = 209; +FlinkSqlParser.ANTI = 210; +FlinkSqlParser.LOCAL = 211; +FlinkSqlParser.INPATH = 212; +FlinkSqlParser.WATERMARK = 213; +FlinkSqlParser.UNNEST = 214; +FlinkSqlParser.MATCH = 215; +FlinkSqlParser.NEXT = 216; +FlinkSqlParser.WITHIN = 217; +FlinkSqlParser.WS = 218; +FlinkSqlParser.SYSTEM = 219; +FlinkSqlParser.INCLUDING = 220; +FlinkSqlParser.EXCLUDING = 221; +FlinkSqlParser.CONSTRAINTS = 222; +FlinkSqlParser.GENERATED = 223; +FlinkSqlParser.CATALOG = 224; +FlinkSqlParser.LANGUAGE = 225; +FlinkSqlParser.CATALOGS = 226; +FlinkSqlParser.VIEWS = 227; +FlinkSqlParser.PRIMARY = 228; +FlinkSqlParser.KEY = 229; +FlinkSqlParser.PERIOD = 230; +FlinkSqlParser.SYSTEM_TIME = 231; +FlinkSqlParser.STRING = 232; +FlinkSqlParser.ARRAY = 233; +FlinkSqlParser.MAP = 234; +FlinkSqlParser.CHAR = 235; +FlinkSqlParser.VARCHAR = 236; +FlinkSqlParser.BINARY = 237; +FlinkSqlParser.VARBINARY = 238; +FlinkSqlParser.BYTES = 239; +FlinkSqlParser.DECIMAL = 240; +FlinkSqlParser.TINYINT = 241; +FlinkSqlParser.SMALLINT = 242; +FlinkSqlParser.INT = 243; +FlinkSqlParser.BIGINT = 244; +FlinkSqlParser.FLOAT = 245; +FlinkSqlParser.DOUBLE = 246; +FlinkSqlParser.DATE = 247; +FlinkSqlParser.TIME = 248; +FlinkSqlParser.TIMESTAMP = 249; +FlinkSqlParser.MULTISET = 250; +FlinkSqlParser.BOOLEAN = 251; +FlinkSqlParser.RAW = 252; +FlinkSqlParser.ROW = 253; +FlinkSqlParser.NULL = 254; +FlinkSqlParser.DATETIME = 255; +FlinkSqlParser.EQUAL_SYMBOL = 256; +FlinkSqlParser.GREATER_SYMBOL = 257; +FlinkSqlParser.LESS_SYMBOL = 258; +FlinkSqlParser.EXCLAMATION_SYMBOL = 259; +FlinkSqlParser.BIT_NOT_OP = 260; +FlinkSqlParser.BIT_OR_OP = 261; +FlinkSqlParser.BIT_AND_OP = 262; +FlinkSqlParser.BIT_XOR_OP = 263; +FlinkSqlParser.DOT = 264; +FlinkSqlParser.LS_BRACKET = 265; +FlinkSqlParser.RS_BRACKET = 266; +FlinkSqlParser.LR_BRACKET = 267; +FlinkSqlParser.RR_BRACKET = 268; +FlinkSqlParser.COMMA = 269; +FlinkSqlParser.SEMICOLON = 270; +FlinkSqlParser.AT_SIGN = 271; +FlinkSqlParser.SINGLE_QUOTE_SYMB = 272; +FlinkSqlParser.DOUBLE_QUOTE_SYMB = 273; +FlinkSqlParser.REVERSE_QUOTE_SYMB = 274; +FlinkSqlParser.COLON_SYMB = 275; +FlinkSqlParser.ASTERISK_SIGN = 276; +FlinkSqlParser.UNDERLINE_SIGN = 277; +FlinkSqlParser.HYPNEN_SIGN = 278; +FlinkSqlParser.ADD_SIGN = 279; +FlinkSqlParser.PENCENT_SIGN = 280; +FlinkSqlParser.DOUBLE_VERTICAL_SIGN = 281; +FlinkSqlParser.DOUBLE_HYPNEN_SIGN = 282; +FlinkSqlParser.SLASH_SIGN = 283; +FlinkSqlParser.DOT_ID = 284; +FlinkSqlParser.PLUS_DOT_ID = 285; +FlinkSqlParser.STRING_LITERAL = 286; +FlinkSqlParser.DIG_LITERAL = 287; +FlinkSqlParser.REAL_LITERAL = 288; +FlinkSqlParser.BIT_STRING = 289; +FlinkSqlParser.ID_LITERAL = 290; +FlinkSqlParser.PLUS_ID_LITERAL = 291; + +FlinkSqlParser.RULE_program = 0; +FlinkSqlParser.RULE_statement = 1; +FlinkSqlParser.RULE_sqlStatements = 2; +FlinkSqlParser.RULE_sqlStatement = 3; +FlinkSqlParser.RULE_emptyStatement = 4; +FlinkSqlParser.RULE_ddlStatement = 5; +FlinkSqlParser.RULE_dmlStatement = 6; +FlinkSqlParser.RULE_describeStatement = 7; +FlinkSqlParser.RULE_explainStatement = 8; +FlinkSqlParser.RULE_useStatement = 9; +FlinkSqlParser.RULE_showStatememt = 10; +FlinkSqlParser.RULE_createTable = 11; +FlinkSqlParser.RULE_columnOptionDefinition = 12; +FlinkSqlParser.RULE_columnName = 13; +FlinkSqlParser.RULE_columnNameList = 14; +FlinkSqlParser.RULE_columnType = 15; +FlinkSqlParser.RULE_lengthOneDimension = 16; +FlinkSqlParser.RULE_commentSpec = 17; +FlinkSqlParser.RULE_watermarkDefinition = 18; +FlinkSqlParser.RULE_tableConstraint = 19; +FlinkSqlParser.RULE_selfDefinitionClause = 20; +FlinkSqlParser.RULE_partitionDefinition = 21; +FlinkSqlParser.RULE_transformList = 22; +FlinkSqlParser.RULE_transform = 23; +FlinkSqlParser.RULE_transformArgument = 24; +FlinkSqlParser.RULE_likeDefinition = 25; +FlinkSqlParser.RULE_likeOption = 26; +FlinkSqlParser.RULE_createCatalog = 27; +FlinkSqlParser.RULE_createDatabase = 28; +FlinkSqlParser.RULE_createView = 29; +FlinkSqlParser.RULE_createFunction = 30; +FlinkSqlParser.RULE_alterTable = 31; +FlinkSqlParser.RULE_renameDefinition = 32; +FlinkSqlParser.RULE_setKeyValueDefinition = 33; +FlinkSqlParser.RULE_alterDatabase = 34; +FlinkSqlParser.RULE_alterFunction = 35; +FlinkSqlParser.RULE_dropTable = 36; +FlinkSqlParser.RULE_dropDatabase = 37; +FlinkSqlParser.RULE_dropView = 38; +FlinkSqlParser.RULE_dropFunction = 39; +FlinkSqlParser.RULE_insertStatement = 40; +FlinkSqlParser.RULE_insertPartitionDefinition = 41; +FlinkSqlParser.RULE_valuesDefinition = 42; +FlinkSqlParser.RULE_valuesRowDefinition = 43; +FlinkSqlParser.RULE_queryStatement = 44; +FlinkSqlParser.RULE_valuesCaluse = 45; +FlinkSqlParser.RULE_selectStatement = 46; +FlinkSqlParser.RULE_selectClause = 47; +FlinkSqlParser.RULE_projectItemDefinition = 48; +FlinkSqlParser.RULE_fromClause = 49; +FlinkSqlParser.RULE_tableExpression = 50; +FlinkSqlParser.RULE_tableReference = 51; +FlinkSqlParser.RULE_tablePrimary = 52; +FlinkSqlParser.RULE_joinCondition = 53; +FlinkSqlParser.RULE_whereClause = 54; +FlinkSqlParser.RULE_groupByClause = 55; +FlinkSqlParser.RULE_groupItemDefinition = 56; +FlinkSqlParser.RULE_havingClause = 57; +FlinkSqlParser.RULE_orderByCaluse = 58; +FlinkSqlParser.RULE_orderItemDefition = 59; +FlinkSqlParser.RULE_limitClause = 60; +FlinkSqlParser.RULE_windowClause = 61; +FlinkSqlParser.RULE_namedWindow = 62; +FlinkSqlParser.RULE_windowSpec = 63; +FlinkSqlParser.RULE_sortItem = 64; +FlinkSqlParser.RULE_windowFrame = 65; +FlinkSqlParser.RULE_frameBound = 66; +FlinkSqlParser.RULE_expression = 67; +FlinkSqlParser.RULE_booleanExpression = 68; +FlinkSqlParser.RULE_predicate = 69; +FlinkSqlParser.RULE_valueExpression = 70; +FlinkSqlParser.RULE_primaryExpression = 71; +FlinkSqlParser.RULE_functionName = 72; +FlinkSqlParser.RULE_dereferenceDefinition = 73; +FlinkSqlParser.RULE_qualifiedName = 74; +FlinkSqlParser.RULE_interval = 75; +FlinkSqlParser.RULE_errorCapturingMultiUnitsInterval = 76; +FlinkSqlParser.RULE_multiUnitsInterval = 77; +FlinkSqlParser.RULE_errorCapturingUnitToUnitInterval = 78; +FlinkSqlParser.RULE_unitToUnitInterval = 79; +FlinkSqlParser.RULE_intervalValue = 80; +FlinkSqlParser.RULE_columnAlias = 81; +FlinkSqlParser.RULE_tableAlias = 82; +FlinkSqlParser.RULE_errorCapturingIdentifier = 83; +FlinkSqlParser.RULE_errorCapturingIdentifierExtra = 84; +FlinkSqlParser.RULE_identifierList = 85; +FlinkSqlParser.RULE_identifierSeq = 86; +FlinkSqlParser.RULE_identifier = 87; +FlinkSqlParser.RULE_strictIdentifier = 88; +FlinkSqlParser.RULE_unquotedIdentifier = 89; +FlinkSqlParser.RULE_quotedIdentifier = 90; +FlinkSqlParser.RULE_whenClause = 91; +FlinkSqlParser.RULE_uidList = 92; +FlinkSqlParser.RULE_uid = 93; +FlinkSqlParser.RULE_plusUid = 94; +FlinkSqlParser.RULE_withOption = 95; +FlinkSqlParser.RULE_ifNotExists = 96; +FlinkSqlParser.RULE_ifExists = 97; +FlinkSqlParser.RULE_tablePropertyList = 98; +FlinkSqlParser.RULE_tableProperty = 99; +FlinkSqlParser.RULE_tablePropertyKey = 100; +FlinkSqlParser.RULE_tablePropertyValue = 101; +FlinkSqlParser.RULE_logicalOperator = 102; +FlinkSqlParser.RULE_comparisonOperator = 103; +FlinkSqlParser.RULE_bitOperator = 104; +FlinkSqlParser.RULE_mathOperator = 105; +FlinkSqlParser.RULE_unaryOperator = 106; +FlinkSqlParser.RULE_fullColumnName = 107; +FlinkSqlParser.RULE_constant = 108; +FlinkSqlParser.RULE_stringLiteral = 109; +FlinkSqlParser.RULE_decimalLiteral = 110; +FlinkSqlParser.RULE_booleanLiteral = 111; +FlinkSqlParser.RULE_setQuantifier = 112; +FlinkSqlParser.RULE_ansiNonReserved = 113; +FlinkSqlParser.RULE_strictNonReserved = 114; +FlinkSqlParser.RULE_nonReserved = 115; + + +function ProgramContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_program; + return this; +} + +ProgramContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ProgramContext.prototype.constructor = ProgramContext; + +ProgramContext.prototype.statement = function() { + return this.getTypedRuleContext(StatementContext,0); +}; + +ProgramContext.prototype.EOF = function() { + return this.getToken(FlinkSqlParser.EOF, 0); +}; + +ProgramContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterProgram(this); + } +}; + +ProgramContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitProgram(this); + } +}; + +ProgramContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitProgram(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ProgramContext = ProgramContext; + +FlinkSqlParser.prototype.program = function() { + + var localctx = new ProgramContext(this, this._ctx, this.state); + this.enterRule(localctx, 0, FlinkSqlParser.RULE_program); + try { + this.enterOuterAlt(localctx, 1); + this.state = 232; + this.statement(); + this.state = 233; + this.match(FlinkSqlParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_statement; + return this; +} + +StatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StatementContext.prototype.constructor = StatementContext; + +StatementContext.prototype.sqlStatements = function() { + return this.getTypedRuleContext(SqlStatementsContext,0); +}; + +StatementContext.prototype.EOF = function() { + return this.getToken(FlinkSqlParser.EOF, 0); +}; + +StatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterStatement(this); + } +}; + +StatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitStatement(this); + } +}; + +StatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.StatementContext = StatementContext; + +FlinkSqlParser.prototype.statement = function() { + + var localctx = new StatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 2, FlinkSqlParser.RULE_statement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 235; + this.sqlStatements(); + this.state = 236; + this.match(FlinkSqlParser.EOF); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SqlStatementsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_sqlStatements; + return this; +} + +SqlStatementsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SqlStatementsContext.prototype.constructor = SqlStatementsContext; + +SqlStatementsContext.prototype.sqlStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SqlStatementContext); + } else { + return this.getTypedRuleContext(SqlStatementContext,i); + } +}; + +SqlStatementsContext.prototype.emptyStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(EmptyStatementContext); + } else { + return this.getTypedRuleContext(EmptyStatementContext,i); + } +}; + +SqlStatementsContext.prototype.SEMICOLON = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.SEMICOLON); + } else { + return this.getToken(FlinkSqlParser.SEMICOLON, i); + } +}; + + +SqlStatementsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSqlStatements(this); + } +}; + +SqlStatementsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSqlStatements(this); + } +}; + +SqlStatementsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSqlStatements(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SqlStatementsContext = SqlStatementsContext; + +FlinkSqlParser.prototype.sqlStatements = function() { + + var localctx = new SqlStatementsContext(this, this._ctx, this.state); + this.enterRule(localctx, 4, FlinkSqlParser.RULE_sqlStatements); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 245; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.SELECT || ((((_la - 69)) & ~0x1f) == 0 && ((1 << (_la - 69)) & ((1 << (FlinkSqlParser.VALUES - 69)) | (1 << (FlinkSqlParser.CREATE - 69)) | (1 << (FlinkSqlParser.INSERT - 69)) | (1 << (FlinkSqlParser.DESCRIBE - 69)) | (1 << (FlinkSqlParser.EXPLAIN - 69)) | (1 << (FlinkSqlParser.SHOW - 69)) | (1 << (FlinkSqlParser.USE - 69)) | (1 << (FlinkSqlParser.DROP - 69)) | (1 << (FlinkSqlParser.ALTER - 69)))) !== 0) || _la===FlinkSqlParser.LR_BRACKET || _la===FlinkSqlParser.SEMICOLON) { + this.state = 243; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.SELECT: + case FlinkSqlParser.VALUES: + case FlinkSqlParser.CREATE: + case FlinkSqlParser.INSERT: + case FlinkSqlParser.DESCRIBE: + case FlinkSqlParser.EXPLAIN: + case FlinkSqlParser.SHOW: + case FlinkSqlParser.USE: + case FlinkSqlParser.DROP: + case FlinkSqlParser.ALTER: + case FlinkSqlParser.LR_BRACKET: + this.state = 238; + this.sqlStatement(); + this.state = 240; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,0,this._ctx); + if(la_===1) { + this.state = 239; + this.match(FlinkSqlParser.SEMICOLON); + + } + break; + case FlinkSqlParser.SEMICOLON: + this.state = 242; + this.emptyStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 247; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SqlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_sqlStatement; + return this; +} + +SqlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SqlStatementContext.prototype.constructor = SqlStatementContext; + +SqlStatementContext.prototype.ddlStatement = function() { + return this.getTypedRuleContext(DdlStatementContext,0); +}; + +SqlStatementContext.prototype.dmlStatement = function() { + return this.getTypedRuleContext(DmlStatementContext,0); +}; + +SqlStatementContext.prototype.describeStatement = function() { + return this.getTypedRuleContext(DescribeStatementContext,0); +}; + +SqlStatementContext.prototype.explainStatement = function() { + return this.getTypedRuleContext(ExplainStatementContext,0); +}; + +SqlStatementContext.prototype.useStatement = function() { + return this.getTypedRuleContext(UseStatementContext,0); +}; + +SqlStatementContext.prototype.showStatememt = function() { + return this.getTypedRuleContext(ShowStatememtContext,0); +}; + +SqlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSqlStatement(this); + } +}; + +SqlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSqlStatement(this); + } +}; + +SqlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSqlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SqlStatementContext = SqlStatementContext; + +FlinkSqlParser.prototype.sqlStatement = function() { + + var localctx = new SqlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 6, FlinkSqlParser.RULE_sqlStatement); + try { + this.state = 254; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.CREATE: + case FlinkSqlParser.DROP: + case FlinkSqlParser.ALTER: + this.enterOuterAlt(localctx, 1); + this.state = 248; + this.ddlStatement(); + break; + case FlinkSqlParser.SELECT: + case FlinkSqlParser.VALUES: + case FlinkSqlParser.INSERT: + case FlinkSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 2); + this.state = 249; + this.dmlStatement(); + break; + case FlinkSqlParser.DESCRIBE: + this.enterOuterAlt(localctx, 3); + this.state = 250; + this.describeStatement(); + break; + case FlinkSqlParser.EXPLAIN: + this.enterOuterAlt(localctx, 4); + this.state = 251; + this.explainStatement(); + break; + case FlinkSqlParser.USE: + this.enterOuterAlt(localctx, 5); + this.state = 252; + this.useStatement(); + break; + case FlinkSqlParser.SHOW: + this.enterOuterAlt(localctx, 6); + this.state = 253; + this.showStatememt(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function EmptyStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_emptyStatement; + return this; +} + +EmptyStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +EmptyStatementContext.prototype.constructor = EmptyStatementContext; + +EmptyStatementContext.prototype.SEMICOLON = function() { + return this.getToken(FlinkSqlParser.SEMICOLON, 0); +}; + +EmptyStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterEmptyStatement(this); + } +}; + +EmptyStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitEmptyStatement(this); + } +}; + +EmptyStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitEmptyStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.EmptyStatementContext = EmptyStatementContext; + +FlinkSqlParser.prototype.emptyStatement = function() { + + var localctx = new EmptyStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 8, FlinkSqlParser.RULE_emptyStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 256; + this.match(FlinkSqlParser.SEMICOLON); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DdlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_ddlStatement; + return this; +} + +DdlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DdlStatementContext.prototype.constructor = DdlStatementContext; + +DdlStatementContext.prototype.createTable = function() { + return this.getTypedRuleContext(CreateTableContext,0); +}; + +DdlStatementContext.prototype.createDatabase = function() { + return this.getTypedRuleContext(CreateDatabaseContext,0); +}; + +DdlStatementContext.prototype.createView = function() { + return this.getTypedRuleContext(CreateViewContext,0); +}; + +DdlStatementContext.prototype.createFunction = function() { + return this.getTypedRuleContext(CreateFunctionContext,0); +}; + +DdlStatementContext.prototype.createCatalog = function() { + return this.getTypedRuleContext(CreateCatalogContext,0); +}; + +DdlStatementContext.prototype.alterTable = function() { + return this.getTypedRuleContext(AlterTableContext,0); +}; + +DdlStatementContext.prototype.alterDatabase = function() { + return this.getTypedRuleContext(AlterDatabaseContext,0); +}; + +DdlStatementContext.prototype.alterFunction = function() { + return this.getTypedRuleContext(AlterFunctionContext,0); +}; + +DdlStatementContext.prototype.dropTable = function() { + return this.getTypedRuleContext(DropTableContext,0); +}; + +DdlStatementContext.prototype.dropDatabase = function() { + return this.getTypedRuleContext(DropDatabaseContext,0); +}; + +DdlStatementContext.prototype.dropView = function() { + return this.getTypedRuleContext(DropViewContext,0); +}; + +DdlStatementContext.prototype.dropFunction = function() { + return this.getTypedRuleContext(DropFunctionContext,0); +}; + +DdlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDdlStatement(this); + } +}; + +DdlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDdlStatement(this); + } +}; + +DdlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDdlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DdlStatementContext = DdlStatementContext; + +FlinkSqlParser.prototype.ddlStatement = function() { + + var localctx = new DdlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 10, FlinkSqlParser.RULE_ddlStatement); + try { + this.state = 270; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,4,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 258; + this.createTable(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 259; + this.createDatabase(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 260; + this.createView(); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 261; + this.createFunction(); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 262; + this.createCatalog(); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 263; + this.alterTable(); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 264; + this.alterDatabase(); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 265; + this.alterFunction(); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 266; + this.dropTable(); + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 267; + this.dropDatabase(); + break; + + case 11: + this.enterOuterAlt(localctx, 11); + this.state = 268; + this.dropView(); + break; + + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 269; + this.dropFunction(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DmlStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dmlStatement; + return this; +} + +DmlStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DmlStatementContext.prototype.constructor = DmlStatementContext; + +DmlStatementContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +DmlStatementContext.prototype.insertStatement = function() { + return this.getTypedRuleContext(InsertStatementContext,0); +}; + +DmlStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDmlStatement(this); + } +}; + +DmlStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDmlStatement(this); + } +}; + +DmlStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDmlStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DmlStatementContext = DmlStatementContext; + +FlinkSqlParser.prototype.dmlStatement = function() { + + var localctx = new DmlStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 12, FlinkSqlParser.RULE_dmlStatement); + try { + this.state = 274; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.SELECT: + case FlinkSqlParser.VALUES: + case FlinkSqlParser.LR_BRACKET: + this.enterOuterAlt(localctx, 1); + this.state = 272; + this.queryStatement(0); + break; + case FlinkSqlParser.INSERT: + this.enterOuterAlt(localctx, 2); + this.state = 273; + this.insertStatement(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DescribeStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_describeStatement; + return this; +} + +DescribeStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DescribeStatementContext.prototype.constructor = DescribeStatementContext; + +DescribeStatementContext.prototype.DESCRIBE = function() { + return this.getToken(FlinkSqlParser.DESCRIBE, 0); +}; + +DescribeStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DescribeStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDescribeStatement(this); + } +}; + +DescribeStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDescribeStatement(this); + } +}; + +DescribeStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDescribeStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DescribeStatementContext = DescribeStatementContext; + +FlinkSqlParser.prototype.describeStatement = function() { + + var localctx = new DescribeStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 14, FlinkSqlParser.RULE_describeStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 276; + this.match(FlinkSqlParser.DESCRIBE); + this.state = 277; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExplainStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_explainStatement; + return this; +} + +ExplainStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExplainStatementContext.prototype.constructor = ExplainStatementContext; + +ExplainStatementContext.prototype.EXPLAIN = function() { + return this.getToken(FlinkSqlParser.EXPLAIN, 0); +}; + +ExplainStatementContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +ExplainStatementContext.prototype.FOR = function() { + return this.getToken(FlinkSqlParser.FOR, 0); +}; + +ExplainStatementContext.prototype.dmlStatement = function() { + return this.getTypedRuleContext(DmlStatementContext,0); +}; + +ExplainStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterExplainStatement(this); + } +}; + +ExplainStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitExplainStatement(this); + } +}; + +ExplainStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitExplainStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ExplainStatementContext = ExplainStatementContext; + +FlinkSqlParser.prototype.explainStatement = function() { + + var localctx = new ExplainStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 16, FlinkSqlParser.RULE_explainStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 279; + this.match(FlinkSqlParser.EXPLAIN); + this.state = 280; + this.identifier(); + this.state = 281; + this.match(FlinkSqlParser.FOR); + this.state = 282; + this.dmlStatement(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UseStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_useStatement; + return this; +} + +UseStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UseStatementContext.prototype.constructor = UseStatementContext; + +UseStatementContext.prototype.USE = function() { + return this.getToken(FlinkSqlParser.USE, 0); +}; + +UseStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +UseStatementContext.prototype.CATALOG = function() { + return this.getToken(FlinkSqlParser.CATALOG, 0); +}; + +UseStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUseStatement(this); + } +}; + +UseStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUseStatement(this); + } +}; + +UseStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUseStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UseStatementContext = UseStatementContext; + +FlinkSqlParser.prototype.useStatement = function() { + + var localctx = new UseStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 18, FlinkSqlParser.RULE_useStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 284; + this.match(FlinkSqlParser.USE); + this.state = 286; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.CATALOG) { + this.state = 285; + this.match(FlinkSqlParser.CATALOG); + } + + this.state = 288; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ShowStatememtContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_showStatememt; + return this; +} + +ShowStatememtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ShowStatememtContext.prototype.constructor = ShowStatememtContext; + +ShowStatememtContext.prototype.SHOW = function() { + return this.getToken(FlinkSqlParser.SHOW, 0); +}; + +ShowStatememtContext.prototype.CATALOGS = function() { + return this.getToken(FlinkSqlParser.CATALOGS, 0); +}; + +ShowStatememtContext.prototype.DATABASES = function() { + return this.getToken(FlinkSqlParser.DATABASES, 0); +}; + +ShowStatememtContext.prototype.TABLES = function() { + return this.getToken(FlinkSqlParser.TABLES, 0); +}; + +ShowStatememtContext.prototype.FUNCTIONS = function() { + return this.getToken(FlinkSqlParser.FUNCTIONS, 0); +}; + +ShowStatememtContext.prototype.VIEWS = function() { + return this.getToken(FlinkSqlParser.VIEWS, 0); +}; + +ShowStatememtContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterShowStatememt(this); + } +}; + +ShowStatememtContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitShowStatememt(this); + } +}; + +ShowStatememtContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitShowStatememt(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ShowStatememtContext = ShowStatememtContext; + +FlinkSqlParser.prototype.showStatememt = function() { + + var localctx = new ShowStatememtContext(this, this._ctx, this.state); + this.enterRule(localctx, 20, FlinkSqlParser.RULE_showStatememt); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 290; + this.match(FlinkSqlParser.SHOW); + this.state = 291; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.TABLES || _la===FlinkSqlParser.FUNCTIONS || _la===FlinkSqlParser.DATABASES || _la===FlinkSqlParser.CATALOGS || _la===FlinkSqlParser.VIEWS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_createTable; + return this; +} + +CreateTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateTableContext.prototype.constructor = CreateTableContext; + +CreateTableContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +CreateTableContext.prototype.TABLE = function() { + return this.getToken(FlinkSqlParser.TABLE, 0); +}; + +CreateTableContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateTableContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +CreateTableContext.prototype.columnOptionDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ColumnOptionDefinitionContext); + } else { + return this.getTypedRuleContext(ColumnOptionDefinitionContext,i); + } +}; + +CreateTableContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +CreateTableContext.prototype.withOption = function() { + return this.getTypedRuleContext(WithOptionContext,0); +}; + +CreateTableContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +CreateTableContext.prototype.watermarkDefinition = function() { + return this.getTypedRuleContext(WatermarkDefinitionContext,0); +}; + +CreateTableContext.prototype.tableConstraint = function() { + return this.getTypedRuleContext(TableConstraintContext,0); +}; + +CreateTableContext.prototype.selfDefinitionClause = function() { + return this.getTypedRuleContext(SelfDefinitionClauseContext,0); +}; + +CreateTableContext.prototype.commentSpec = function() { + return this.getTypedRuleContext(CommentSpecContext,0); +}; + +CreateTableContext.prototype.partitionDefinition = function() { + return this.getTypedRuleContext(PartitionDefinitionContext,0); +}; + +CreateTableContext.prototype.likeDefinition = function() { + return this.getTypedRuleContext(LikeDefinitionContext,0); +}; + +CreateTableContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCreateTable(this); + } +}; + +CreateTableContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCreateTable(this); + } +}; + +CreateTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCreateTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CreateTableContext = CreateTableContext; + +FlinkSqlParser.prototype.createTable = function() { + + var localctx = new CreateTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 22, FlinkSqlParser.RULE_createTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 293; + this.match(FlinkSqlParser.CREATE); + this.state = 294; + this.match(FlinkSqlParser.TABLE); + this.state = 295; + this.uid(); + this.state = 296; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 297; + this.columnOptionDefinition(); + this.state = 302; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,7,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 298; + this.match(FlinkSqlParser.COMMA); + this.state = 299; + this.columnOptionDefinition(); + } + this.state = 304; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,7,this._ctx); + } + + this.state = 307; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,8,this._ctx); + if(la_===1) { + this.state = 305; + this.match(FlinkSqlParser.COMMA); + this.state = 306; + this.watermarkDefinition(); + + } + this.state = 311; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); + if(la_===1) { + this.state = 309; + this.match(FlinkSqlParser.COMMA); + this.state = 310; + this.tableConstraint(); + + } + this.state = 315; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.COMMA) { + this.state = 313; + this.match(FlinkSqlParser.COMMA); + this.state = 314; + this.selfDefinitionClause(); + } + + this.state = 317; + this.match(FlinkSqlParser.RR_BRACKET); + this.state = 319; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.COMMENT) { + this.state = 318; + this.commentSpec(); + } + + this.state = 322; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.PARTITIONED) { + this.state = 321; + this.partitionDefinition(); + } + + this.state = 324; + this.withOption(); + this.state = 326; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.LIKE) { + this.state = 325; + this.likeDefinition(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnOptionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_columnOptionDefinition; + return this; +} + +ColumnOptionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnOptionDefinitionContext.prototype.constructor = ColumnOptionDefinitionContext; + +ColumnOptionDefinitionContext.prototype.columnName = function() { + return this.getTypedRuleContext(ColumnNameContext,0); +}; + +ColumnOptionDefinitionContext.prototype.columnType = function() { + return this.getTypedRuleContext(ColumnTypeContext,0); +}; + +ColumnOptionDefinitionContext.prototype.lengthOneDimension = function() { + return this.getTypedRuleContext(LengthOneDimensionContext,0); +}; + +ColumnOptionDefinitionContext.prototype.columnAlias = function() { + return this.getTypedRuleContext(ColumnAliasContext,0); +}; + +ColumnOptionDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnOptionDefinition(this); + } +}; + +ColumnOptionDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnOptionDefinition(this); + } +}; + +ColumnOptionDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnOptionDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ColumnOptionDefinitionContext = ColumnOptionDefinitionContext; + +FlinkSqlParser.prototype.columnOptionDefinition = function() { + + var localctx = new ColumnOptionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 24, FlinkSqlParser.RULE_columnOptionDefinition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 328; + this.columnName(); + this.state = 329; + this.columnType(); + this.state = 331; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.LR_BRACKET) { + this.state = 330; + this.lengthOneDimension(); + } + + this.state = 334; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << FlinkSqlParser.SELECT) | (1 << FlinkSqlParser.FROM) | (1 << FlinkSqlParser.ADD) | (1 << FlinkSqlParser.AS) | (1 << FlinkSqlParser.ALL) | (1 << FlinkSqlParser.ANY) | (1 << FlinkSqlParser.DISTINCT) | (1 << FlinkSqlParser.WHERE) | (1 << FlinkSqlParser.GROUP) | (1 << FlinkSqlParser.BY) | (1 << FlinkSqlParser.GROUPING) | (1 << FlinkSqlParser.SETS) | (1 << FlinkSqlParser.CUBE) | (1 << FlinkSqlParser.ROLLUP) | (1 << FlinkSqlParser.ORDER) | (1 << FlinkSqlParser.HAVING) | (1 << FlinkSqlParser.LIMIT) | (1 << FlinkSqlParser.AT) | (1 << FlinkSqlParser.OR) | (1 << FlinkSqlParser.AND) | (1 << FlinkSqlParser.IN) | (1 << FlinkSqlParser.NOT) | (1 << FlinkSqlParser.NO) | (1 << FlinkSqlParser.EXISTS) | (1 << FlinkSqlParser.BETWEEN) | (1 << FlinkSqlParser.LIKE) | (1 << FlinkSqlParser.RLIKE) | (1 << FlinkSqlParser.IS))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (FlinkSqlParser.TRUE - 32)) | (1 << (FlinkSqlParser.FALSE - 32)) | (1 << (FlinkSqlParser.NULLS - 32)) | (1 << (FlinkSqlParser.ASC - 32)) | (1 << (FlinkSqlParser.DESC - 32)) | (1 << (FlinkSqlParser.FOR - 32)) | (1 << (FlinkSqlParser.INTERVAL - 32)) | (1 << (FlinkSqlParser.CASE - 32)) | (1 << (FlinkSqlParser.WHEN - 32)) | (1 << (FlinkSqlParser.THEN - 32)) | (1 << (FlinkSqlParser.ELSE - 32)) | (1 << (FlinkSqlParser.END - 32)) | (1 << (FlinkSqlParser.OUTER - 32)) | (1 << (FlinkSqlParser.SEMI - 32)) | (1 << (FlinkSqlParser.PIVOT - 32)) | (1 << (FlinkSqlParser.LATERAL - 32)) | (1 << (FlinkSqlParser.WINDOW - 32)) | (1 << (FlinkSqlParser.OVER - 32)) | (1 << (FlinkSqlParser.PARTITION - 32)) | (1 << (FlinkSqlParser.RANGE - 32)) | (1 << (FlinkSqlParser.ROWS - 32)) | (1 << (FlinkSqlParser.UNBOUNDED - 32)) | (1 << (FlinkSqlParser.PRECEDING - 32)) | (1 << (FlinkSqlParser.FOLLOWING - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (FlinkSqlParser.CURRENT - 64)) | (1 << (FlinkSqlParser.FIRST - 64)) | (1 << (FlinkSqlParser.AFTER - 64)) | (1 << (FlinkSqlParser.LAST - 64)) | (1 << (FlinkSqlParser.WITH - 64)) | (1 << (FlinkSqlParser.VALUES - 64)) | (1 << (FlinkSqlParser.CREATE - 64)) | (1 << (FlinkSqlParser.TABLE - 64)) | (1 << (FlinkSqlParser.DIRECTORY - 64)) | (1 << (FlinkSqlParser.VIEW - 64)) | (1 << (FlinkSqlParser.REPLACE - 64)) | (1 << (FlinkSqlParser.INSERT - 64)) | (1 << (FlinkSqlParser.DELETE - 64)) | (1 << (FlinkSqlParser.INTO - 64)) | (1 << (FlinkSqlParser.DESCRIBE - 64)) | (1 << (FlinkSqlParser.EXPLAIN - 64)) | (1 << (FlinkSqlParser.FORMAT - 64)) | (1 << (FlinkSqlParser.LOGICAL - 64)) | (1 << (FlinkSqlParser.CODEGEN - 64)) | (1 << (FlinkSqlParser.COST - 64)) | (1 << (FlinkSqlParser.CAST - 64)) | (1 << (FlinkSqlParser.SHOW - 64)) | (1 << (FlinkSqlParser.TABLES - 64)) | (1 << (FlinkSqlParser.COLUMNS - 64)) | (1 << (FlinkSqlParser.COLUMN - 64)) | (1 << (FlinkSqlParser.USE - 64)) | (1 << (FlinkSqlParser.PARTITIONS - 64)) | (1 << (FlinkSqlParser.FUNCTIONS - 64)) | (1 << (FlinkSqlParser.DROP - 64)) | (1 << (FlinkSqlParser.SETMINUS - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (FlinkSqlParser.TO - 97)) | (1 << (FlinkSqlParser.TABLESAMPLE - 97)) | (1 << (FlinkSqlParser.STRATIFY - 97)) | (1 << (FlinkSqlParser.ALTER - 97)) | (1 << (FlinkSqlParser.RENAME - 97)) | (1 << (FlinkSqlParser.STRUCT - 97)) | (1 << (FlinkSqlParser.COMMENT - 97)) | (1 << (FlinkSqlParser.SET - 97)) | (1 << (FlinkSqlParser.RESET - 97)) | (1 << (FlinkSqlParser.DATA - 97)) | (1 << (FlinkSqlParser.START - 97)) | (1 << (FlinkSqlParser.TRANSACTION - 97)) | (1 << (FlinkSqlParser.COMMIT - 97)) | (1 << (FlinkSqlParser.ROLLBACK - 97)) | (1 << (FlinkSqlParser.MACRO - 97)) | (1 << (FlinkSqlParser.IGNORE - 97)) | (1 << (FlinkSqlParser.BOTH - 97)) | (1 << (FlinkSqlParser.LEADING - 97)) | (1 << (FlinkSqlParser.TRAILING - 97)) | (1 << (FlinkSqlParser.IF - 97)) | (1 << (FlinkSqlParser.POSITION - 97)) | (1 << (FlinkSqlParser.EXTRACT - 97)) | (1 << (FlinkSqlParser.MINUS - 97)) | (1 << (FlinkSqlParser.DIV - 97)) | (1 << (FlinkSqlParser.PERCENTLIT - 97)) | (1 << (FlinkSqlParser.BUCKET - 97)) | (1 << (FlinkSqlParser.OUT - 97)) | (1 << (FlinkSqlParser.OF - 97)) | (1 << (FlinkSqlParser.SORT - 97)) | (1 << (FlinkSqlParser.CLUSTER - 97)) | (1 << (FlinkSqlParser.DISTRIBUTE - 97)) | (1 << (FlinkSqlParser.OVERWRITE - 97)))) !== 0) || ((((_la - 129)) & ~0x1f) == 0 && ((1 << (_la - 129)) & ((1 << (FlinkSqlParser.TRANSFORM - 129)) | (1 << (FlinkSqlParser.REDUCE - 129)) | (1 << (FlinkSqlParser.SERDE - 129)) | (1 << (FlinkSqlParser.SERDEPROPERTIES - 129)) | (1 << (FlinkSqlParser.RECORDREADER - 129)) | (1 << (FlinkSqlParser.RECORDWRITER - 129)) | (1 << (FlinkSqlParser.DELIMITED - 129)) | (1 << (FlinkSqlParser.FIELDS - 129)) | (1 << (FlinkSqlParser.TERMINATED - 129)) | (1 << (FlinkSqlParser.COLLECTION - 129)) | (1 << (FlinkSqlParser.ITEMS - 129)) | (1 << (FlinkSqlParser.KEYS - 129)) | (1 << (FlinkSqlParser.ESCAPED - 129)) | (1 << (FlinkSqlParser.LINES - 129)) | (1 << (FlinkSqlParser.SEPARATED - 129)) | (1 << (FlinkSqlParser.FUNCTION - 129)) | (1 << (FlinkSqlParser.EXTENDED - 129)) | (1 << (FlinkSqlParser.REFRESH - 129)) | (1 << (FlinkSqlParser.CLEAR - 129)) | (1 << (FlinkSqlParser.CACHE - 129)) | (1 << (FlinkSqlParser.UNCACHE - 129)) | (1 << (FlinkSqlParser.LAZY - 129)) | (1 << (FlinkSqlParser.FORMATTED - 129)) | (1 << (FlinkSqlParser.GLOBAL - 129)) | (1 << (FlinkSqlParser.TEMPORARY - 129)) | (1 << (FlinkSqlParser.OPTIONS - 129)) | (1 << (FlinkSqlParser.UNSET - 129)) | (1 << (FlinkSqlParser.TBLPROPERTIES - 129)) | (1 << (FlinkSqlParser.DBPROPERTIES - 129)) | (1 << (FlinkSqlParser.BUCKETS - 129)) | (1 << (FlinkSqlParser.SKEWED - 129)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (FlinkSqlParser.STORED - 161)) | (1 << (FlinkSqlParser.DIRECTORIES - 161)) | (1 << (FlinkSqlParser.LOCATION - 161)) | (1 << (FlinkSqlParser.EXCHANGE - 161)) | (1 << (FlinkSqlParser.ARCHIVE - 161)) | (1 << (FlinkSqlParser.UNARCHIVE - 161)) | (1 << (FlinkSqlParser.FILEFORMAT - 161)) | (1 << (FlinkSqlParser.TOUCH - 161)) | (1 << (FlinkSqlParser.COMPACT - 161)) | (1 << (FlinkSqlParser.CONCATENATE - 161)) | (1 << (FlinkSqlParser.CHANGE - 161)) | (1 << (FlinkSqlParser.CASCADE - 161)) | (1 << (FlinkSqlParser.CONSTRAINT - 161)) | (1 << (FlinkSqlParser.RESTRICT - 161)) | (1 << (FlinkSqlParser.CLUSTERED - 161)) | (1 << (FlinkSqlParser.SORTED - 161)) | (1 << (FlinkSqlParser.PURGE - 161)) | (1 << (FlinkSqlParser.INPUTFORMAT - 161)) | (1 << (FlinkSqlParser.OUTPUTFORMAT - 161)) | (1 << (FlinkSqlParser.DATABASE - 161)) | (1 << (FlinkSqlParser.DATABASES - 161)) | (1 << (FlinkSqlParser.DFS - 161)) | (1 << (FlinkSqlParser.TRUNCATE - 161)) | (1 << (FlinkSqlParser.ANALYZE - 161)) | (1 << (FlinkSqlParser.COMPUTE - 161)) | (1 << (FlinkSqlParser.LIST - 161)) | (1 << (FlinkSqlParser.STATISTICS - 161)) | (1 << (FlinkSqlParser.PARTITIONED - 161)) | (1 << (FlinkSqlParser.EXTERNAL - 161)) | (1 << (FlinkSqlParser.DEFINED - 161)) | (1 << (FlinkSqlParser.REVOKE - 161)) | (1 << (FlinkSqlParser.GRANT - 161)))) !== 0) || ((((_la - 193)) & ~0x1f) == 0 && ((1 << (_la - 193)) & ((1 << (FlinkSqlParser.LOCK - 193)) | (1 << (FlinkSqlParser.UNLOCK - 193)) | (1 << (FlinkSqlParser.MSCK - 193)) | (1 << (FlinkSqlParser.REPAIR - 193)) | (1 << (FlinkSqlParser.RECOVER - 193)) | (1 << (FlinkSqlParser.EXPORT - 193)) | (1 << (FlinkSqlParser.IMPORT - 193)) | (1 << (FlinkSqlParser.LOAD - 193)) | (1 << (FlinkSqlParser.ROLE - 193)) | (1 << (FlinkSqlParser.ROLES - 193)) | (1 << (FlinkSqlParser.COMPACTIONS - 193)) | (1 << (FlinkSqlParser.PRINCIPALS - 193)) | (1 << (FlinkSqlParser.TRANSACTIONS - 193)) | (1 << (FlinkSqlParser.INDEX - 193)) | (1 << (FlinkSqlParser.INDEXES - 193)) | (1 << (FlinkSqlParser.LOCKS - 193)) | (1 << (FlinkSqlParser.OPTION - 193)) | (1 << (FlinkSqlParser.ANTI - 193)) | (1 << (FlinkSqlParser.LOCAL - 193)) | (1 << (FlinkSqlParser.INPATH - 193)) | (1 << (FlinkSqlParser.WATERMARK - 193)) | (1 << (FlinkSqlParser.UNNEST - 193)) | (1 << (FlinkSqlParser.MATCH - 193)) | (1 << (FlinkSqlParser.NEXT - 193)) | (1 << (FlinkSqlParser.WITHIN - 193)) | (1 << (FlinkSqlParser.WS - 193)) | (1 << (FlinkSqlParser.SYSTEM - 193)) | (1 << (FlinkSqlParser.INCLUDING - 193)) | (1 << (FlinkSqlParser.EXCLUDING - 193)) | (1 << (FlinkSqlParser.CONSTRAINTS - 193)) | (1 << (FlinkSqlParser.GENERATED - 193)) | (1 << (FlinkSqlParser.CATALOG - 193)))) !== 0) || ((((_la - 225)) & ~0x1f) == 0 && ((1 << (_la - 225)) & ((1 << (FlinkSqlParser.LANGUAGE - 225)) | (1 << (FlinkSqlParser.CATALOGS - 225)) | (1 << (FlinkSqlParser.VIEWS - 225)) | (1 << (FlinkSqlParser.PRIMARY - 225)) | (1 << (FlinkSqlParser.KEY - 225)) | (1 << (FlinkSqlParser.PERIOD - 225)) | (1 << (FlinkSqlParser.SYSTEM_TIME - 225)) | (1 << (FlinkSqlParser.STRING - 225)) | (1 << (FlinkSqlParser.ARRAY - 225)) | (1 << (FlinkSqlParser.MAP - 225)) | (1 << (FlinkSqlParser.CHAR - 225)) | (1 << (FlinkSqlParser.VARCHAR - 225)) | (1 << (FlinkSqlParser.BINARY - 225)) | (1 << (FlinkSqlParser.VARBINARY - 225)) | (1 << (FlinkSqlParser.BYTES - 225)) | (1 << (FlinkSqlParser.DECIMAL - 225)) | (1 << (FlinkSqlParser.TINYINT - 225)) | (1 << (FlinkSqlParser.SMALLINT - 225)) | (1 << (FlinkSqlParser.INT - 225)) | (1 << (FlinkSqlParser.BIGINT - 225)) | (1 << (FlinkSqlParser.FLOAT - 225)) | (1 << (FlinkSqlParser.DOUBLE - 225)) | (1 << (FlinkSqlParser.DATE - 225)) | (1 << (FlinkSqlParser.TIME - 225)) | (1 << (FlinkSqlParser.TIMESTAMP - 225)) | (1 << (FlinkSqlParser.MULTISET - 225)) | (1 << (FlinkSqlParser.BOOLEAN - 225)) | (1 << (FlinkSqlParser.RAW - 225)) | (1 << (FlinkSqlParser.ROW - 225)) | (1 << (FlinkSqlParser.NULL - 225)) | (1 << (FlinkSqlParser.DATETIME - 225)))) !== 0) || ((((_la - 286)) & ~0x1f) == 0 && ((1 << (_la - 286)) & ((1 << (FlinkSqlParser.STRING_LITERAL - 286)) | (1 << (FlinkSqlParser.DIG_LITERAL - 286)) | (1 << (FlinkSqlParser.ID_LITERAL - 286)))) !== 0)) { + this.state = 333; + this.columnAlias(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_columnName; + return this; +} + +ColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnNameContext.prototype.constructor = ColumnNameContext; + +ColumnNameContext.prototype.plusUid = function() { + return this.getTypedRuleContext(PlusUidContext,0); +}; + +ColumnNameContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ColumnNameContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnName(this); + } +}; + +ColumnNameContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnName(this); + } +}; + +ColumnNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ColumnNameContext = ColumnNameContext; + +FlinkSqlParser.prototype.columnName = function() { + + var localctx = new ColumnNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 26, FlinkSqlParser.RULE_columnName); + try { + this.state = 338; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,16,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 336; + this.plusUid(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 337; + this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnNameListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_columnNameList; + return this; +} + +ColumnNameListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnNameListContext.prototype.constructor = ColumnNameListContext; + +ColumnNameListContext.prototype.columnName = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ColumnNameContext); + } else { + return this.getTypedRuleContext(ColumnNameContext,i); + } +}; + +ColumnNameListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +ColumnNameListContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnNameList(this); + } +}; + +ColumnNameListContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnNameList(this); + } +}; + +ColumnNameListContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnNameList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ColumnNameListContext = ColumnNameListContext; + +FlinkSqlParser.prototype.columnNameList = function() { + + var localctx = new ColumnNameListContext(this, this._ctx, this.state); + this.enterRule(localctx, 28, FlinkSqlParser.RULE_columnNameList); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 340; + this.columnName(); + this.state = 345; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 341; + this.match(FlinkSqlParser.COMMA); + this.state = 342; + this.columnName(); + this.state = 347; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnTypeContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_columnType; + this.typeName = null; // Token + return this; +} + +ColumnTypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnTypeContext.prototype.constructor = ColumnTypeContext; + +ColumnTypeContext.prototype.CHAR = function() { + return this.getToken(FlinkSqlParser.CHAR, 0); +}; + +ColumnTypeContext.prototype.VARCHAR = function() { + return this.getToken(FlinkSqlParser.VARCHAR, 0); +}; + +ColumnTypeContext.prototype.STRING = function() { + return this.getToken(FlinkSqlParser.STRING, 0); +}; + +ColumnTypeContext.prototype.BINARY = function() { + return this.getToken(FlinkSqlParser.BINARY, 0); +}; + +ColumnTypeContext.prototype.VARBINARY = function() { + return this.getToken(FlinkSqlParser.VARBINARY, 0); +}; + +ColumnTypeContext.prototype.BYTES = function() { + return this.getToken(FlinkSqlParser.BYTES, 0); +}; + +ColumnTypeContext.prototype.DECIMAL = function() { + return this.getToken(FlinkSqlParser.DECIMAL, 0); +}; + +ColumnTypeContext.prototype.TINYINT = function() { + return this.getToken(FlinkSqlParser.TINYINT, 0); +}; + +ColumnTypeContext.prototype.SMALLINT = function() { + return this.getToken(FlinkSqlParser.SMALLINT, 0); +}; + +ColumnTypeContext.prototype.INT = function() { + return this.getToken(FlinkSqlParser.INT, 0); +}; + +ColumnTypeContext.prototype.BIGINT = function() { + return this.getToken(FlinkSqlParser.BIGINT, 0); +}; + +ColumnTypeContext.prototype.FLOAT = function() { + return this.getToken(FlinkSqlParser.FLOAT, 0); +}; + +ColumnTypeContext.prototype.DOUBLE = function() { + return this.getToken(FlinkSqlParser.DOUBLE, 0); +}; + +ColumnTypeContext.prototype.DATE = function() { + return this.getToken(FlinkSqlParser.DATE, 0); +}; + +ColumnTypeContext.prototype.TIME = function() { + return this.getToken(FlinkSqlParser.TIME, 0); +}; + +ColumnTypeContext.prototype.TIMESTAMP = function() { + return this.getToken(FlinkSqlParser.TIMESTAMP, 0); +}; + +ColumnTypeContext.prototype.ARRAY = function() { + return this.getToken(FlinkSqlParser.ARRAY, 0); +}; + +ColumnTypeContext.prototype.MAP = function() { + return this.getToken(FlinkSqlParser.MAP, 0); +}; + +ColumnTypeContext.prototype.MULTISET = function() { + return this.getToken(FlinkSqlParser.MULTISET, 0); +}; + +ColumnTypeContext.prototype.ROW = function() { + return this.getToken(FlinkSqlParser.ROW, 0); +}; + +ColumnTypeContext.prototype.BOOLEAN = function() { + return this.getToken(FlinkSqlParser.BOOLEAN, 0); +}; + +ColumnTypeContext.prototype.RAW = function() { + return this.getToken(FlinkSqlParser.RAW, 0); +}; + +ColumnTypeContext.prototype.NULL = function() { + return this.getToken(FlinkSqlParser.NULL, 0); +}; + +ColumnTypeContext.prototype.DATETIME = function() { + return this.getToken(FlinkSqlParser.DATETIME, 0); +}; + +ColumnTypeContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnType(this); + } +}; + +ColumnTypeContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnType(this); + } +}; + +ColumnTypeContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnType(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ColumnTypeContext = ColumnTypeContext; + +FlinkSqlParser.prototype.columnType = function() { + + var localctx = new ColumnTypeContext(this, this._ctx, this.state); + this.enterRule(localctx, 30, FlinkSqlParser.RULE_columnType); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 348; + localctx.typeName = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 232)) & ~0x1f) == 0 && ((1 << (_la - 232)) & ((1 << (FlinkSqlParser.STRING - 232)) | (1 << (FlinkSqlParser.ARRAY - 232)) | (1 << (FlinkSqlParser.MAP - 232)) | (1 << (FlinkSqlParser.CHAR - 232)) | (1 << (FlinkSqlParser.VARCHAR - 232)) | (1 << (FlinkSqlParser.BINARY - 232)) | (1 << (FlinkSqlParser.VARBINARY - 232)) | (1 << (FlinkSqlParser.BYTES - 232)) | (1 << (FlinkSqlParser.DECIMAL - 232)) | (1 << (FlinkSqlParser.TINYINT - 232)) | (1 << (FlinkSqlParser.SMALLINT - 232)) | (1 << (FlinkSqlParser.INT - 232)) | (1 << (FlinkSqlParser.BIGINT - 232)) | (1 << (FlinkSqlParser.FLOAT - 232)) | (1 << (FlinkSqlParser.DOUBLE - 232)) | (1 << (FlinkSqlParser.DATE - 232)) | (1 << (FlinkSqlParser.TIME - 232)) | (1 << (FlinkSqlParser.TIMESTAMP - 232)) | (1 << (FlinkSqlParser.MULTISET - 232)) | (1 << (FlinkSqlParser.BOOLEAN - 232)) | (1 << (FlinkSqlParser.RAW - 232)) | (1 << (FlinkSqlParser.ROW - 232)) | (1 << (FlinkSqlParser.NULL - 232)) | (1 << (FlinkSqlParser.DATETIME - 232)))) !== 0))) { + localctx.typeName = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LengthOneDimensionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_lengthOneDimension; + return this; +} + +LengthOneDimensionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LengthOneDimensionContext.prototype.constructor = LengthOneDimensionContext; + +LengthOneDimensionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +LengthOneDimensionContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +LengthOneDimensionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +LengthOneDimensionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLengthOneDimension(this); + } +}; + +LengthOneDimensionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLengthOneDimension(this); + } +}; + +LengthOneDimensionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLengthOneDimension(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.LengthOneDimensionContext = LengthOneDimensionContext; + +FlinkSqlParser.prototype.lengthOneDimension = function() { + + var localctx = new LengthOneDimensionContext(this, this._ctx, this.state); + this.enterRule(localctx, 32, FlinkSqlParser.RULE_lengthOneDimension); + try { + this.enterOuterAlt(localctx, 1); + this.state = 350; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 351; + this.decimalLiteral(); + this.state = 352; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CommentSpecContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_commentSpec; + return this; +} + +CommentSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CommentSpecContext.prototype.constructor = CommentSpecContext; + +CommentSpecContext.prototype.COMMENT = function() { + return this.getToken(FlinkSqlParser.COMMENT, 0); +}; + +CommentSpecContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +CommentSpecContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCommentSpec(this); + } +}; + +CommentSpecContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCommentSpec(this); + } +}; + +CommentSpecContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCommentSpec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CommentSpecContext = CommentSpecContext; + +FlinkSqlParser.prototype.commentSpec = function() { + + var localctx = new CommentSpecContext(this, this._ctx, this.state); + this.enterRule(localctx, 34, FlinkSqlParser.RULE_commentSpec); + try { + this.enterOuterAlt(localctx, 1); + this.state = 354; + this.match(FlinkSqlParser.COMMENT); + this.state = 355; + this.match(FlinkSqlParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WatermarkDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_watermarkDefinition; + return this; +} + +WatermarkDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WatermarkDefinitionContext.prototype.constructor = WatermarkDefinitionContext; + +WatermarkDefinitionContext.prototype.WATERMARK = function() { + return this.getToken(FlinkSqlParser.WATERMARK, 0); +}; + +WatermarkDefinitionContext.prototype.FOR = function() { + return this.getToken(FlinkSqlParser.FOR, 0); +}; + +WatermarkDefinitionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +WatermarkDefinitionContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +WatermarkDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWatermarkDefinition(this); + } +}; + +WatermarkDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWatermarkDefinition(this); + } +}; + +WatermarkDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWatermarkDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WatermarkDefinitionContext = WatermarkDefinitionContext; + +FlinkSqlParser.prototype.watermarkDefinition = function() { + + var localctx = new WatermarkDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 36, FlinkSqlParser.RULE_watermarkDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 357; + this.match(FlinkSqlParser.WATERMARK); + this.state = 358; + this.match(FlinkSqlParser.FOR); + this.state = 359; + this.expression(); + this.state = 360; + this.match(FlinkSqlParser.AS); + this.state = 361; + this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableConstraintContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tableConstraint; + return this; +} + +TableConstraintContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableConstraintContext.prototype.constructor = TableConstraintContext; + +TableConstraintContext.prototype.PRIMARY = function() { + return this.getToken(FlinkSqlParser.PRIMARY, 0); +}; + +TableConstraintContext.prototype.KEY = function() { + return this.getToken(FlinkSqlParser.KEY, 0); +}; + +TableConstraintContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +TableConstraintContext.prototype.columnNameList = function() { + return this.getTypedRuleContext(ColumnNameListContext,0); +}; + +TableConstraintContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +TableConstraintContext.prototype.CONSTRAINT = function() { + return this.getToken(FlinkSqlParser.CONSTRAINT, 0); +}; + +TableConstraintContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +TableConstraintContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTableConstraint(this); + } +}; + +TableConstraintContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTableConstraint(this); + } +}; + +TableConstraintContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTableConstraint(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TableConstraintContext = TableConstraintContext; + +FlinkSqlParser.prototype.tableConstraint = function() { + + var localctx = new TableConstraintContext(this, this._ctx, this.state); + this.enterRule(localctx, 38, FlinkSqlParser.RULE_tableConstraint); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 365; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.CONSTRAINT) { + this.state = 363; + this.match(FlinkSqlParser.CONSTRAINT); + this.state = 364; + this.identifier(); + } + + this.state = 367; + this.match(FlinkSqlParser.PRIMARY); + this.state = 368; + this.match(FlinkSqlParser.KEY); + this.state = 369; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 370; + this.columnNameList(); + this.state = 371; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelfDefinitionClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_selfDefinitionClause; + return this; +} + +SelfDefinitionClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelfDefinitionClauseContext.prototype.constructor = SelfDefinitionClauseContext; + +SelfDefinitionClauseContext.prototype.PERIOD = function() { + return this.getToken(FlinkSqlParser.PERIOD, 0); +}; + +SelfDefinitionClauseContext.prototype.FOR = function() { + return this.getToken(FlinkSqlParser.FOR, 0); +}; + +SelfDefinitionClauseContext.prototype.SYSTEM_TIME = function() { + return this.getToken(FlinkSqlParser.SYSTEM_TIME, 0); +}; + +SelfDefinitionClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSelfDefinitionClause(this); + } +}; + +SelfDefinitionClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSelfDefinitionClause(this); + } +}; + +SelfDefinitionClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSelfDefinitionClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SelfDefinitionClauseContext = SelfDefinitionClauseContext; + +FlinkSqlParser.prototype.selfDefinitionClause = function() { + + var localctx = new SelfDefinitionClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 40, FlinkSqlParser.RULE_selfDefinitionClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 373; + this.match(FlinkSqlParser.PERIOD); + this.state = 374; + this.match(FlinkSqlParser.FOR); + this.state = 375; + this.match(FlinkSqlParser.SYSTEM_TIME); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PartitionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_partitionDefinition; + return this; +} + +PartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PartitionDefinitionContext.prototype.constructor = PartitionDefinitionContext; + +PartitionDefinitionContext.prototype.PARTITIONED = function() { + return this.getToken(FlinkSqlParser.PARTITIONED, 0); +}; + +PartitionDefinitionContext.prototype.BY = function() { + return this.getToken(FlinkSqlParser.BY, 0); +}; + +PartitionDefinitionContext.prototype.transformList = function() { + return this.getTypedRuleContext(TransformListContext,0); +}; + +PartitionDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterPartitionDefinition(this); + } +}; + +PartitionDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitPartitionDefinition(this); + } +}; + +PartitionDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitPartitionDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.PartitionDefinitionContext = PartitionDefinitionContext; + +FlinkSqlParser.prototype.partitionDefinition = function() { + + var localctx = new PartitionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 42, FlinkSqlParser.RULE_partitionDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 377; + this.match(FlinkSqlParser.PARTITIONED); + this.state = 378; + this.match(FlinkSqlParser.BY); + this.state = 379; + this.transformList(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransformListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_transformList; + return this; +} + +TransformListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransformListContext.prototype.constructor = TransformListContext; + +TransformListContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +TransformListContext.prototype.transform = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TransformContext); + } else { + return this.getTypedRuleContext(TransformContext,i); + } +}; + +TransformListContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +TransformListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +TransformListContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTransformList(this); + } +}; + +TransformListContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTransformList(this); + } +}; + +TransformListContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTransformList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TransformListContext = TransformListContext; + +FlinkSqlParser.prototype.transformList = function() { + + var localctx = new TransformListContext(this, this._ctx, this.state); + this.enterRule(localctx, 44, FlinkSqlParser.RULE_transformList); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 381; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 382; + this.transform(); + this.state = 387; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 383; + this.match(FlinkSqlParser.COMMA); + this.state = 384; + this.transform(); + this.state = 389; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 390; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransformContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_transform; + return this; +} + +TransformContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransformContext.prototype.constructor = TransformContext; + + + +TransformContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function IdentityTransformContext(parser, ctx) { + TransformContext.call(this, parser); + TransformContext.prototype.copyFrom.call(this, ctx); + return this; +} + +IdentityTransformContext.prototype = Object.create(TransformContext.prototype); +IdentityTransformContext.prototype.constructor = IdentityTransformContext; + +FlinkSqlParser.IdentityTransformContext = IdentityTransformContext; + +IdentityTransformContext.prototype.qualifiedName = function() { + return this.getTypedRuleContext(QualifiedNameContext,0); +}; +IdentityTransformContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIdentityTransform(this); + } +}; + +IdentityTransformContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIdentityTransform(this); + } +}; + +IdentityTransformContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIdentityTransform(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ApplyTransformContext(parser, ctx) { + TransformContext.call(this, parser); + this.transformName = null; // IdentifierContext; + TransformContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ApplyTransformContext.prototype = Object.create(TransformContext.prototype); +ApplyTransformContext.prototype.constructor = ApplyTransformContext; + +FlinkSqlParser.ApplyTransformContext = ApplyTransformContext; + +ApplyTransformContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +ApplyTransformContext.prototype.transformArgument = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TransformArgumentContext); + } else { + return this.getTypedRuleContext(TransformArgumentContext,i); + } +}; + +ApplyTransformContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +ApplyTransformContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +ApplyTransformContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + +ApplyTransformContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterApplyTransform(this); + } +}; + +ApplyTransformContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitApplyTransform(this); + } +}; + +ApplyTransformContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitApplyTransform(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.TransformContext = TransformContext; + +FlinkSqlParser.prototype.transform = function() { + + var localctx = new TransformContext(this, this._ctx, this.state); + this.enterRule(localctx, 46, FlinkSqlParser.RULE_transform); + var _la = 0; // Token type + try { + this.state = 405; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,21,this._ctx); + switch(la_) { + case 1: + localctx = new IdentityTransformContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 392; + this.qualifiedName(); + break; + + case 2: + localctx = new ApplyTransformContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 393; + localctx.transformName = this.identifier(); + this.state = 394; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 395; + this.transformArgument(); + this.state = 400; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 396; + this.match(FlinkSqlParser.COMMA); + this.state = 397; + this.transformArgument(); + this.state = 402; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 403; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TransformArgumentContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_transformArgument; + return this; +} + +TransformArgumentContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TransformArgumentContext.prototype.constructor = TransformArgumentContext; + +TransformArgumentContext.prototype.qualifiedName = function() { + return this.getTypedRuleContext(QualifiedNameContext,0); +}; + +TransformArgumentContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; + +TransformArgumentContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTransformArgument(this); + } +}; + +TransformArgumentContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTransformArgument(this); + } +}; + +TransformArgumentContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTransformArgument(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TransformArgumentContext = TransformArgumentContext; + +FlinkSqlParser.prototype.transformArgument = function() { + + var localctx = new TransformArgumentContext(this, this._ctx, this.state); + this.enterRule(localctx, 48, FlinkSqlParser.RULE_transformArgument); + try { + this.state = 409; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,22,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 407; + this.qualifiedName(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 408; + this.constant(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LikeDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_likeDefinition; + return this; +} + +LikeDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LikeDefinitionContext.prototype.constructor = LikeDefinitionContext; + +LikeDefinitionContext.prototype.LIKE = function() { + return this.getToken(FlinkSqlParser.LIKE, 0); +}; + +LikeDefinitionContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +LikeDefinitionContext.prototype.likeOption = function() { + return this.getTypedRuleContext(LikeOptionContext,0); +}; + +LikeDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLikeDefinition(this); + } +}; + +LikeDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLikeDefinition(this); + } +}; + +LikeDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLikeDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.LikeDefinitionContext = LikeDefinitionContext; + +FlinkSqlParser.prototype.likeDefinition = function() { + + var localctx = new LikeDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 50, FlinkSqlParser.RULE_likeDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 411; + this.match(FlinkSqlParser.LIKE); + this.state = 412; + this.identifier(); + this.state = 413; + this.likeOption(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LikeOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_likeOption; + return this; +} + +LikeOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LikeOptionContext.prototype.constructor = LikeOptionContext; + +LikeOptionContext.prototype.INCLUDING = function() { + return this.getToken(FlinkSqlParser.INCLUDING, 0); +}; + +LikeOptionContext.prototype.EXCLUDING = function() { + return this.getToken(FlinkSqlParser.EXCLUDING, 0); +}; + +LikeOptionContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +LikeOptionContext.prototype.CONSTRAINTS = function() { + return this.getToken(FlinkSqlParser.CONSTRAINTS, 0); +}; + +LikeOptionContext.prototype.GENERATED = function() { + return this.getToken(FlinkSqlParser.GENERATED, 0); +}; + +LikeOptionContext.prototype.OPTIONS = function() { + return this.getToken(FlinkSqlParser.OPTIONS, 0); +}; + +LikeOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLikeOption(this); + } +}; + +LikeOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLikeOption(this); + } +}; + +LikeOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLikeOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.LikeOptionContext = LikeOptionContext; + +FlinkSqlParser.prototype.likeOption = function() { + + var localctx = new LikeOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 52, FlinkSqlParser.RULE_likeOption); + var _la = 0; // Token type + try { + this.state = 419; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,23,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 415; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.INCLUDING || _la===FlinkSqlParser.EXCLUDING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 416; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ALL || _la===FlinkSqlParser.CONSTRAINTS)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 417; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.INCLUDING || _la===FlinkSqlParser.EXCLUDING)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 418; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.OPTIONS || _la===FlinkSqlParser.GENERATED)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateCatalogContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_createCatalog; + return this; +} + +CreateCatalogContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateCatalogContext.prototype.constructor = CreateCatalogContext; + +CreateCatalogContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +CreateCatalogContext.prototype.CATALOG = function() { + return this.getToken(FlinkSqlParser.CATALOG, 0); +}; + +CreateCatalogContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateCatalogContext.prototype.withOption = function() { + return this.getTypedRuleContext(WithOptionContext,0); +}; + +CreateCatalogContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCreateCatalog(this); + } +}; + +CreateCatalogContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCreateCatalog(this); + } +}; + +CreateCatalogContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCreateCatalog(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CreateCatalogContext = CreateCatalogContext; + +FlinkSqlParser.prototype.createCatalog = function() { + + var localctx = new CreateCatalogContext(this, this._ctx, this.state); + this.enterRule(localctx, 54, FlinkSqlParser.RULE_createCatalog); + try { + this.enterOuterAlt(localctx, 1); + this.state = 421; + this.match(FlinkSqlParser.CREATE); + this.state = 422; + this.match(FlinkSqlParser.CATALOG); + this.state = 423; + this.uid(); + this.state = 424; + this.withOption(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_createDatabase; + return this; +} + +CreateDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateDatabaseContext.prototype.constructor = CreateDatabaseContext; + +CreateDatabaseContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +CreateDatabaseContext.prototype.DATABASE = function() { + return this.getToken(FlinkSqlParser.DATABASE, 0); +}; + +CreateDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateDatabaseContext.prototype.withOption = function() { + return this.getTypedRuleContext(WithOptionContext,0); +}; + +CreateDatabaseContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateDatabaseContext.prototype.commentSpec = function() { + return this.getTypedRuleContext(CommentSpecContext,0); +}; + +CreateDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCreateDatabase(this); + } +}; + +CreateDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCreateDatabase(this); + } +}; + +CreateDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCreateDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CreateDatabaseContext = CreateDatabaseContext; + +FlinkSqlParser.prototype.createDatabase = function() { + + var localctx = new CreateDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 56, FlinkSqlParser.RULE_createDatabase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 426; + this.match(FlinkSqlParser.CREATE); + this.state = 427; + this.match(FlinkSqlParser.DATABASE); + this.state = 429; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 428; + this.ifNotExists(); + } + + this.state = 431; + this.uid(); + this.state = 433; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.COMMENT) { + this.state = 432; + this.commentSpec(); + } + + this.state = 435; + this.withOption(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateViewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_createView; + return this; +} + +CreateViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateViewContext.prototype.constructor = CreateViewContext; + +CreateViewContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +CreateViewContext.prototype.VIEW = function() { + return this.getToken(FlinkSqlParser.VIEW, 0); +}; + +CreateViewContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateViewContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +CreateViewContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +CreateViewContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +CreateViewContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateViewContext.prototype.columnNameList = function() { + return this.getTypedRuleContext(ColumnNameListContext,0); +}; + +CreateViewContext.prototype.commentSpec = function() { + return this.getTypedRuleContext(CommentSpecContext,0); +}; + +CreateViewContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCreateView(this); + } +}; + +CreateViewContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCreateView(this); + } +}; + +CreateViewContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCreateView(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CreateViewContext = CreateViewContext; + +FlinkSqlParser.prototype.createView = function() { + + var localctx = new CreateViewContext(this, this._ctx, this.state); + this.enterRule(localctx, 58, FlinkSqlParser.RULE_createView); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 437; + this.match(FlinkSqlParser.CREATE); + this.state = 439; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.TEMPORARY) { + this.state = 438; + this.match(FlinkSqlParser.TEMPORARY); + } + + this.state = 441; + this.match(FlinkSqlParser.VIEW); + this.state = 443; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 442; + this.ifNotExists(); + } + + this.state = 445; + this.uid(); + this.state = 447; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,28,this._ctx); + if(la_===1) { + this.state = 446; + this.columnNameList(); + + } + this.state = 450; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.COMMENT) { + this.state = 449; + this.commentSpec(); + } + + this.state = 452; + this.match(FlinkSqlParser.AS); + this.state = 453; + this.queryStatement(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function CreateFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_createFunction; + return this; +} + +CreateFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +CreateFunctionContext.prototype.constructor = CreateFunctionContext; + +CreateFunctionContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +CreateFunctionContext.prototype.FUNCTION = function() { + return this.getToken(FlinkSqlParser.FUNCTION, 0); +}; + +CreateFunctionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +CreateFunctionContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +CreateFunctionContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; + +CreateFunctionContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +CreateFunctionContext.prototype.SYSTEM = function() { + return this.getToken(FlinkSqlParser.SYSTEM, 0); +}; + +CreateFunctionContext.prototype.ifNotExists = function() { + return this.getTypedRuleContext(IfNotExistsContext,0); +}; + +CreateFunctionContext.prototype.LANGUAGE = function() { + return this.getToken(FlinkSqlParser.LANGUAGE, 0); +}; + +CreateFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCreateFunction(this); + } +}; + +CreateFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCreateFunction(this); + } +}; + +CreateFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCreateFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.CreateFunctionContext = CreateFunctionContext; + +FlinkSqlParser.prototype.createFunction = function() { + + var localctx = new CreateFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 60, FlinkSqlParser.RULE_createFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 455; + this.match(FlinkSqlParser.CREATE); + this.state = 459; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); + switch(la_) { + case 1: + this.state = 456; + this.match(FlinkSqlParser.TEMPORARY); + break; + + case 2: + this.state = 457; + this.match(FlinkSqlParser.TEMPORARY); + this.state = 458; + this.match(FlinkSqlParser.SYSTEM); + break; + + } + this.state = 461; + this.match(FlinkSqlParser.FUNCTION); + this.state = 463; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 462; + this.ifNotExists(); + } + + this.state = 465; + this.uid(); + this.state = 466; + this.match(FlinkSqlParser.AS); + this.state = 467; + this.identifier(); + this.state = 470; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.LANGUAGE) { + this.state = 468; + this.match(FlinkSqlParser.LANGUAGE); + this.state = 469; + this.identifier(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_alterTable; + return this; +} + +AlterTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterTableContext.prototype.constructor = AlterTableContext; + +AlterTableContext.prototype.ALTER = function() { + return this.getToken(FlinkSqlParser.ALTER, 0); +}; + +AlterTableContext.prototype.TABLE = function() { + return this.getToken(FlinkSqlParser.TABLE, 0); +}; + +AlterTableContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterTableContext.prototype.renameDefinition = function() { + return this.getTypedRuleContext(RenameDefinitionContext,0); +}; + +AlterTableContext.prototype.setKeyValueDefinition = function() { + return this.getTypedRuleContext(SetKeyValueDefinitionContext,0); +}; + +AlterTableContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterAlterTable(this); + } +}; + +AlterTableContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitAlterTable(this); + } +}; + +AlterTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitAlterTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.AlterTableContext = AlterTableContext; + +FlinkSqlParser.prototype.alterTable = function() { + + var localctx = new AlterTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 62, FlinkSqlParser.RULE_alterTable); + try { + this.enterOuterAlt(localctx, 1); + this.state = 472; + this.match(FlinkSqlParser.ALTER); + this.state = 473; + this.match(FlinkSqlParser.TABLE); + this.state = 474; + this.uid(); + this.state = 477; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.RENAME: + this.state = 475; + this.renameDefinition(); + break; + case FlinkSqlParser.SET: + this.state = 476; + this.setKeyValueDefinition(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function RenameDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_renameDefinition; + return this; +} + +RenameDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +RenameDefinitionContext.prototype.constructor = RenameDefinitionContext; + +RenameDefinitionContext.prototype.RENAME = function() { + return this.getToken(FlinkSqlParser.RENAME, 0); +}; + +RenameDefinitionContext.prototype.TO = function() { + return this.getToken(FlinkSqlParser.TO, 0); +}; + +RenameDefinitionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +RenameDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterRenameDefinition(this); + } +}; + +RenameDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitRenameDefinition(this); + } +}; + +RenameDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitRenameDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.RenameDefinitionContext = RenameDefinitionContext; + +FlinkSqlParser.prototype.renameDefinition = function() { + + var localctx = new RenameDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 64, FlinkSqlParser.RULE_renameDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 479; + this.match(FlinkSqlParser.RENAME); + this.state = 480; + this.match(FlinkSqlParser.TO); + this.state = 481; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetKeyValueDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_setKeyValueDefinition; + return this; +} + +SetKeyValueDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetKeyValueDefinitionContext.prototype.constructor = SetKeyValueDefinitionContext; + +SetKeyValueDefinitionContext.prototype.SET = function() { + return this.getToken(FlinkSqlParser.SET, 0); +}; + +SetKeyValueDefinitionContext.prototype.tablePropertyList = function() { + return this.getTypedRuleContext(TablePropertyListContext,0); +}; + +SetKeyValueDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSetKeyValueDefinition(this); + } +}; + +SetKeyValueDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSetKeyValueDefinition(this); + } +}; + +SetKeyValueDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSetKeyValueDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SetKeyValueDefinitionContext = SetKeyValueDefinitionContext; + +FlinkSqlParser.prototype.setKeyValueDefinition = function() { + + var localctx = new SetKeyValueDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 66, FlinkSqlParser.RULE_setKeyValueDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 483; + this.match(FlinkSqlParser.SET); + this.state = 484; + this.tablePropertyList(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_alterDatabase; + return this; +} + +AlterDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterDatabaseContext.prototype.constructor = AlterDatabaseContext; + +AlterDatabaseContext.prototype.ALTER = function() { + return this.getToken(FlinkSqlParser.ALTER, 0); +}; + +AlterDatabaseContext.prototype.DATABASE = function() { + return this.getToken(FlinkSqlParser.DATABASE, 0); +}; + +AlterDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterDatabaseContext.prototype.setKeyValueDefinition = function() { + return this.getTypedRuleContext(SetKeyValueDefinitionContext,0); +}; + +AlterDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterAlterDatabase(this); + } +}; + +AlterDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitAlterDatabase(this); + } +}; + +AlterDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitAlterDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.AlterDatabaseContext = AlterDatabaseContext; + +FlinkSqlParser.prototype.alterDatabase = function() { + + var localctx = new AlterDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 68, FlinkSqlParser.RULE_alterDatabase); + try { + this.enterOuterAlt(localctx, 1); + this.state = 486; + this.match(FlinkSqlParser.ALTER); + this.state = 487; + this.match(FlinkSqlParser.DATABASE); + this.state = 488; + this.uid(); + this.state = 489; + this.setKeyValueDefinition(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AlterFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_alterFunction; + return this; +} + +AlterFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AlterFunctionContext.prototype.constructor = AlterFunctionContext; + +AlterFunctionContext.prototype.ALTER = function() { + return this.getToken(FlinkSqlParser.ALTER, 0); +}; + +AlterFunctionContext.prototype.FUNCTION = function() { + return this.getToken(FlinkSqlParser.FUNCTION, 0); +}; + +AlterFunctionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +AlterFunctionContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +AlterFunctionContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; + +AlterFunctionContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +AlterFunctionContext.prototype.SYSTEM = function() { + return this.getToken(FlinkSqlParser.SYSTEM, 0); +}; + +AlterFunctionContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +AlterFunctionContext.prototype.LANGUAGE = function() { + return this.getToken(FlinkSqlParser.LANGUAGE, 0); +}; + +AlterFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterAlterFunction(this); + } +}; + +AlterFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitAlterFunction(this); + } +}; + +AlterFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitAlterFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.AlterFunctionContext = AlterFunctionContext; + +FlinkSqlParser.prototype.alterFunction = function() { + + var localctx = new AlterFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 70, FlinkSqlParser.RULE_alterFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 491; + this.match(FlinkSqlParser.ALTER); + this.state = 495; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,34,this._ctx); + switch(la_) { + case 1: + this.state = 492; + this.match(FlinkSqlParser.TEMPORARY); + break; + + case 2: + this.state = 493; + this.match(FlinkSqlParser.TEMPORARY); + this.state = 494; + this.match(FlinkSqlParser.SYSTEM); + break; + + } + this.state = 497; + this.match(FlinkSqlParser.FUNCTION); + this.state = 499; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 498; + this.ifExists(); + } + + this.state = 501; + this.uid(); + this.state = 502; + this.match(FlinkSqlParser.AS); + this.state = 503; + this.identifier(); + this.state = 506; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.LANGUAGE) { + this.state = 504; + this.match(FlinkSqlParser.LANGUAGE); + this.state = 505; + this.identifier(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropTableContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dropTable; + return this; +} + +DropTableContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropTableContext.prototype.constructor = DropTableContext; + +DropTableContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +DropTableContext.prototype.TABLE = function() { + return this.getToken(FlinkSqlParser.TABLE, 0); +}; + +DropTableContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropTableContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropTableContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDropTable(this); + } +}; + +DropTableContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDropTable(this); + } +}; + +DropTableContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDropTable(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DropTableContext = DropTableContext; + +FlinkSqlParser.prototype.dropTable = function() { + + var localctx = new DropTableContext(this, this._ctx, this.state); + this.enterRule(localctx, 72, FlinkSqlParser.RULE_dropTable); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 508; + this.match(FlinkSqlParser.DROP); + this.state = 509; + this.match(FlinkSqlParser.TABLE); + this.state = 511; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 510; + this.ifExists(); + } + + this.state = 513; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropDatabaseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dropDatabase; + this.dropType = null; // Token + return this; +} + +DropDatabaseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropDatabaseContext.prototype.constructor = DropDatabaseContext; + +DropDatabaseContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +DropDatabaseContext.prototype.DATABASE = function() { + return this.getToken(FlinkSqlParser.DATABASE, 0); +}; + +DropDatabaseContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropDatabaseContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropDatabaseContext.prototype.RESTRICT = function() { + return this.getToken(FlinkSqlParser.RESTRICT, 0); +}; + +DropDatabaseContext.prototype.CASCADE = function() { + return this.getToken(FlinkSqlParser.CASCADE, 0); +}; + +DropDatabaseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDropDatabase(this); + } +}; + +DropDatabaseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDropDatabase(this); + } +}; + +DropDatabaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDropDatabase(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DropDatabaseContext = DropDatabaseContext; + +FlinkSqlParser.prototype.dropDatabase = function() { + + var localctx = new DropDatabaseContext(this, this._ctx, this.state); + this.enterRule(localctx, 74, FlinkSqlParser.RULE_dropDatabase); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 515; + this.match(FlinkSqlParser.DROP); + this.state = 516; + this.match(FlinkSqlParser.DATABASE); + this.state = 518; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 517; + this.ifExists(); + } + + this.state = 520; + this.uid(); + this.state = 522; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.CASCADE || _la===FlinkSqlParser.RESTRICT) { + this.state = 521; + localctx.dropType = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.CASCADE || _la===FlinkSqlParser.RESTRICT)) { + localctx.dropType = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropViewContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dropView; + return this; +} + +DropViewContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropViewContext.prototype.constructor = DropViewContext; + +DropViewContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +DropViewContext.prototype.VIEW = function() { + return this.getToken(FlinkSqlParser.VIEW, 0); +}; + +DropViewContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropViewContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +DropViewContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropViewContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDropView(this); + } +}; + +DropViewContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDropView(this); + } +}; + +DropViewContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDropView(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DropViewContext = DropViewContext; + +FlinkSqlParser.prototype.dropView = function() { + + var localctx = new DropViewContext(this, this._ctx, this.state); + this.enterRule(localctx, 76, FlinkSqlParser.RULE_dropView); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 524; + this.match(FlinkSqlParser.DROP); + this.state = 526; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.TEMPORARY) { + this.state = 525; + this.match(FlinkSqlParser.TEMPORARY); + } + + this.state = 528; + this.match(FlinkSqlParser.VIEW); + this.state = 530; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 529; + this.ifExists(); + } + + this.state = 532; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DropFunctionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dropFunction; + return this; +} + +DropFunctionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DropFunctionContext.prototype.constructor = DropFunctionContext; + +DropFunctionContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +DropFunctionContext.prototype.FUNCTION = function() { + return this.getToken(FlinkSqlParser.FUNCTION, 0); +}; + +DropFunctionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DropFunctionContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +DropFunctionContext.prototype.SYSTEM = function() { + return this.getToken(FlinkSqlParser.SYSTEM, 0); +}; + +DropFunctionContext.prototype.ifExists = function() { + return this.getTypedRuleContext(IfExistsContext,0); +}; + +DropFunctionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDropFunction(this); + } +}; + +DropFunctionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDropFunction(this); + } +}; + +DropFunctionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDropFunction(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DropFunctionContext = DropFunctionContext; + +FlinkSqlParser.prototype.dropFunction = function() { + + var localctx = new DropFunctionContext(this, this._ctx, this.state); + this.enterRule(localctx, 78, FlinkSqlParser.RULE_dropFunction); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 534; + this.match(FlinkSqlParser.DROP); + this.state = 538; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,42,this._ctx); + if(la_===1) { + this.state = 535; + this.match(FlinkSqlParser.TEMPORARY); + + } else if(la_===2) { + this.state = 536; + this.match(FlinkSqlParser.TEMPORARY); + this.state = 537; + this.match(FlinkSqlParser.SYSTEM); + + } + this.state = 540; + this.match(FlinkSqlParser.FUNCTION); + this.state = 542; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IF) { + this.state = 541; + this.ifExists(); + } + + this.state = 544; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function InsertStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_insertStatement; + return this; +} + +InsertStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +InsertStatementContext.prototype.constructor = InsertStatementContext; + +InsertStatementContext.prototype.INSERT = function() { + return this.getToken(FlinkSqlParser.INSERT, 0); +}; + +InsertStatementContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +InsertStatementContext.prototype.INTO = function() { + return this.getToken(FlinkSqlParser.INTO, 0); +}; + +InsertStatementContext.prototype.OVERWRITE = function() { + return this.getToken(FlinkSqlParser.OVERWRITE, 0); +}; + +InsertStatementContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +InsertStatementContext.prototype.valuesDefinition = function() { + return this.getTypedRuleContext(ValuesDefinitionContext,0); +}; + +InsertStatementContext.prototype.insertPartitionDefinition = function() { + return this.getTypedRuleContext(InsertPartitionDefinitionContext,0); +}; + +InsertStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterInsertStatement(this); + } +}; + +InsertStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitInsertStatement(this); + } +}; + +InsertStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitInsertStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.InsertStatementContext = InsertStatementContext; + +FlinkSqlParser.prototype.insertStatement = function() { + + var localctx = new InsertStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 80, FlinkSqlParser.RULE_insertStatement); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 546; + this.match(FlinkSqlParser.INSERT); + this.state = 547; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.INTO || _la===FlinkSqlParser.OVERWRITE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 548; + this.uid(); + this.state = 554; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,45,this._ctx); + switch(la_) { + case 1: + this.state = 550; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.PARTITION) { + this.state = 549; + this.insertPartitionDefinition(); + } + + this.state = 552; + this.queryStatement(0); + break; + + case 2: + this.state = 553; + this.valuesDefinition(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function InsertPartitionDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_insertPartitionDefinition; + return this; +} + +InsertPartitionDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +InsertPartitionDefinitionContext.prototype.constructor = InsertPartitionDefinitionContext; + +InsertPartitionDefinitionContext.prototype.PARTITION = function() { + return this.getToken(FlinkSqlParser.PARTITION, 0); +}; + +InsertPartitionDefinitionContext.prototype.tablePropertyList = function() { + return this.getTypedRuleContext(TablePropertyListContext,0); +}; + +InsertPartitionDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterInsertPartitionDefinition(this); + } +}; + +InsertPartitionDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitInsertPartitionDefinition(this); + } +}; + +InsertPartitionDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitInsertPartitionDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.InsertPartitionDefinitionContext = InsertPartitionDefinitionContext; + +FlinkSqlParser.prototype.insertPartitionDefinition = function() { + + var localctx = new InsertPartitionDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 82, FlinkSqlParser.RULE_insertPartitionDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 556; + this.match(FlinkSqlParser.PARTITION); + this.state = 557; + this.tablePropertyList(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ValuesDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_valuesDefinition; + return this; +} + +ValuesDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ValuesDefinitionContext.prototype.constructor = ValuesDefinitionContext; + +ValuesDefinitionContext.prototype.VALUES = function() { + return this.getToken(FlinkSqlParser.VALUES, 0); +}; + +ValuesDefinitionContext.prototype.valuesRowDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ValuesRowDefinitionContext); + } else { + return this.getTypedRuleContext(ValuesRowDefinitionContext,i); + } +}; + +ValuesDefinitionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +ValuesDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterValuesDefinition(this); + } +}; + +ValuesDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitValuesDefinition(this); + } +}; + +ValuesDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitValuesDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ValuesDefinitionContext = ValuesDefinitionContext; + +FlinkSqlParser.prototype.valuesDefinition = function() { + + var localctx = new ValuesDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 84, FlinkSqlParser.RULE_valuesDefinition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 559; + this.match(FlinkSqlParser.VALUES); + this.state = 560; + this.valuesRowDefinition(); + this.state = 565; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 561; + this.match(FlinkSqlParser.COMMA); + this.state = 562; + this.valuesRowDefinition(); + this.state = 567; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ValuesRowDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_valuesRowDefinition; + return this; +} + +ValuesRowDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ValuesRowDefinitionContext.prototype.constructor = ValuesRowDefinitionContext; + +ValuesRowDefinitionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +ValuesRowDefinitionContext.prototype.constant = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ConstantContext); + } else { + return this.getTypedRuleContext(ConstantContext,i); + } +}; + +ValuesRowDefinitionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +ValuesRowDefinitionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +ValuesRowDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterValuesRowDefinition(this); + } +}; + +ValuesRowDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitValuesRowDefinition(this); + } +}; + +ValuesRowDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitValuesRowDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ValuesRowDefinitionContext = ValuesRowDefinitionContext; + +FlinkSqlParser.prototype.valuesRowDefinition = function() { + + var localctx = new ValuesRowDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 86, FlinkSqlParser.RULE_valuesRowDefinition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 568; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 569; + this.constant(); + this.state = 574; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 570; + this.match(FlinkSqlParser.COMMA); + this.state = 571; + this.constant(); + this.state = 576; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 577; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QueryStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_queryStatement; + this.left = null; // QueryStatementContext + this.operator = null; // Token + this.right = null; // QueryStatementContext + return this; +} + +QueryStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QueryStatementContext.prototype.constructor = QueryStatementContext; + +QueryStatementContext.prototype.valuesCaluse = function() { + return this.getTypedRuleContext(ValuesCaluseContext,0); +}; + +QueryStatementContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +QueryStatementContext.prototype.queryStatement = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(QueryStatementContext); + } else { + return this.getTypedRuleContext(QueryStatementContext,i); + } +}; + +QueryStatementContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +QueryStatementContext.prototype.selectClause = function() { + return this.getTypedRuleContext(SelectClauseContext,0); +}; + +QueryStatementContext.prototype.orderByCaluse = function() { + return this.getTypedRuleContext(OrderByCaluseContext,0); +}; + +QueryStatementContext.prototype.limitClause = function() { + return this.getTypedRuleContext(LimitClauseContext,0); +}; + +QueryStatementContext.prototype.selectStatement = function() { + return this.getTypedRuleContext(SelectStatementContext,0); +}; + +QueryStatementContext.prototype.INTERSECT = function() { + return this.getToken(FlinkSqlParser.INTERSECT, 0); +}; + +QueryStatementContext.prototype.UNION = function() { + return this.getToken(FlinkSqlParser.UNION, 0); +}; + +QueryStatementContext.prototype.EXCEPT = function() { + return this.getToken(FlinkSqlParser.EXCEPT, 0); +}; + +QueryStatementContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +QueryStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterQueryStatement(this); + } +}; + +QueryStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitQueryStatement(this); + } +}; + +QueryStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitQueryStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.prototype.queryStatement = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new QueryStatementContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 88; + this.enterRecursionRule(localctx, 88, FlinkSqlParser.RULE_queryStatement, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 599; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,52,this._ctx); + switch(la_) { + case 1: + this.state = 580; + this.valuesCaluse(); + break; + + case 2: + this.state = 581; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 582; + this.queryStatement(0); + this.state = 583; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 3: + this.state = 585; + this.selectClause(); + this.state = 587; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); + if(la_===1) { + this.state = 586; + this.orderByCaluse(); + + } + this.state = 590; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,49,this._ctx); + if(la_===1) { + this.state = 589; + this.limitClause(); + + } + break; + + case 4: + this.state = 592; + this.selectStatement(); + this.state = 594; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,50,this._ctx); + if(la_===1) { + this.state = 593; + this.orderByCaluse(); + + } + this.state = 597; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); + if(la_===1) { + this.state = 596; + this.limitClause(); + + } + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 615; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,56,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new QueryStatementContext(this, _parentctx, _parentState); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_queryStatement); + this.state = 601; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 602; + localctx.operator = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (FlinkSqlParser.UNION - 93)) | (1 << (FlinkSqlParser.EXCEPT - 93)) | (1 << (FlinkSqlParser.INTERSECT - 93)))) !== 0))) { + localctx.operator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 604; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.ALL) { + this.state = 603; + this.match(FlinkSqlParser.ALL); + } + + this.state = 606; + localctx.right = this.queryStatement(0); + this.state = 608; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,54,this._ctx); + if(la_===1) { + this.state = 607; + this.orderByCaluse(); + + } + this.state = 611; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,55,this._ctx); + if(la_===1) { + this.state = 610; + this.limitClause(); + + } + } + this.state = 617; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,56,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function ValuesCaluseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_valuesCaluse; + return this; +} + +ValuesCaluseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ValuesCaluseContext.prototype.constructor = ValuesCaluseContext; + +ValuesCaluseContext.prototype.VALUES = function() { + return this.getToken(FlinkSqlParser.VALUES, 0); +}; + +ValuesCaluseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ValuesCaluseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +ValuesCaluseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterValuesCaluse(this); + } +}; + +ValuesCaluseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitValuesCaluse(this); + } +}; + +ValuesCaluseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitValuesCaluse(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ValuesCaluseContext = ValuesCaluseContext; + +FlinkSqlParser.prototype.valuesCaluse = function() { + + var localctx = new ValuesCaluseContext(this, this._ctx, this.state); + this.enterRule(localctx, 90, FlinkSqlParser.RULE_valuesCaluse); + try { + this.enterOuterAlt(localctx, 1); + this.state = 618; + this.match(FlinkSqlParser.VALUES); + this.state = 619; + this.expression(); + this.state = 624; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,57,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 620; + this.match(FlinkSqlParser.COMMA); + this.state = 621; + this.expression(); + } + this.state = 626; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,57,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectStatementContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_selectStatement; + return this; +} + +SelectStatementContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectStatementContext.prototype.constructor = SelectStatementContext; + +SelectStatementContext.prototype.selectClause = function() { + return this.getTypedRuleContext(SelectClauseContext,0); +}; + +SelectStatementContext.prototype.fromClause = function() { + return this.getTypedRuleContext(FromClauseContext,0); +}; + +SelectStatementContext.prototype.whereClause = function() { + return this.getTypedRuleContext(WhereClauseContext,0); +}; + +SelectStatementContext.prototype.groupByClause = function() { + return this.getTypedRuleContext(GroupByClauseContext,0); +}; + +SelectStatementContext.prototype.havingClause = function() { + return this.getTypedRuleContext(HavingClauseContext,0); +}; + +SelectStatementContext.prototype.windowClause = function() { + return this.getTypedRuleContext(WindowClauseContext,0); +}; + +SelectStatementContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSelectStatement(this); + } +}; + +SelectStatementContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSelectStatement(this); + } +}; + +SelectStatementContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSelectStatement(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SelectStatementContext = SelectStatementContext; + +FlinkSqlParser.prototype.selectStatement = function() { + + var localctx = new SelectStatementContext(this, this._ctx, this.state); + this.enterRule(localctx, 92, FlinkSqlParser.RULE_selectStatement); + try { + this.enterOuterAlt(localctx, 1); + this.state = 627; + this.selectClause(); + this.state = 628; + this.fromClause(); + this.state = 630; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,58,this._ctx); + if(la_===1) { + this.state = 629; + this.whereClause(); + + } + this.state = 633; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,59,this._ctx); + if(la_===1) { + this.state = 632; + this.groupByClause(); + + } + this.state = 636; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,60,this._ctx); + if(la_===1) { + this.state = 635; + this.havingClause(); + + } + this.state = 639; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,61,this._ctx); + if(la_===1) { + this.state = 638; + this.windowClause(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SelectClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_selectClause; + return this; +} + +SelectClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SelectClauseContext.prototype.constructor = SelectClauseContext; + +SelectClauseContext.prototype.SELECT = function() { + return this.getToken(FlinkSqlParser.SELECT, 0); +}; + +SelectClauseContext.prototype.ASTERISK_SIGN = function() { + return this.getToken(FlinkSqlParser.ASTERISK_SIGN, 0); +}; + +SelectClauseContext.prototype.projectItemDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ProjectItemDefinitionContext); + } else { + return this.getTypedRuleContext(ProjectItemDefinitionContext,i); + } +}; + +SelectClauseContext.prototype.setQuantifier = function() { + return this.getTypedRuleContext(SetQuantifierContext,0); +}; + +SelectClauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +SelectClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSelectClause(this); + } +}; + +SelectClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSelectClause(this); + } +}; + +SelectClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSelectClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SelectClauseContext = SelectClauseContext; + +FlinkSqlParser.prototype.selectClause = function() { + + var localctx = new SelectClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 94, FlinkSqlParser.RULE_selectClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 641; + this.match(FlinkSqlParser.SELECT); + this.state = 643; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,62,this._ctx); + if(la_===1) { + this.state = 642; + this.setQuantifier(); + + } + this.state = 654; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,64,this._ctx); + switch(la_) { + case 1: + this.state = 645; + this.match(FlinkSqlParser.ASTERISK_SIGN); + break; + + case 2: + this.state = 646; + this.projectItemDefinition(); + this.state = 651; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,63,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 647; + this.match(FlinkSqlParser.COMMA); + this.state = 648; + this.projectItemDefinition(); + } + this.state = 653; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,63,this._ctx); + } + + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ProjectItemDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_projectItemDefinition; + return this; +} + +ProjectItemDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ProjectItemDefinitionContext.prototype.constructor = ProjectItemDefinitionContext; + +ProjectItemDefinitionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +ProjectItemDefinitionContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +ProjectItemDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterProjectItemDefinition(this); + } +}; + +ProjectItemDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitProjectItemDefinition(this); + } +}; + +ProjectItemDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitProjectItemDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ProjectItemDefinitionContext = ProjectItemDefinitionContext; + +FlinkSqlParser.prototype.projectItemDefinition = function() { + + var localctx = new ProjectItemDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 96, FlinkSqlParser.RULE_projectItemDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 656; + this.expression(); + this.state = 661; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,66,this._ctx); + if(la_===1) { + this.state = 658; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,65,this._ctx); + if(la_===1) { + this.state = 657; + this.match(FlinkSqlParser.AS); + + } + this.state = 660; + this.expression(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FromClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_fromClause; + return this; +} + +FromClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FromClauseContext.prototype.constructor = FromClauseContext; + +FromClauseContext.prototype.FROM = function() { + return this.getToken(FlinkSqlParser.FROM, 0); +}; + +FromClauseContext.prototype.tableExpression = function() { + return this.getTypedRuleContext(TableExpressionContext,0); +}; + +FromClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFromClause(this); + } +}; + +FromClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFromClause(this); + } +}; + +FromClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFromClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.FromClauseContext = FromClauseContext; + +FlinkSqlParser.prototype.fromClause = function() { + + var localctx = new FromClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 98, FlinkSqlParser.RULE_fromClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 663; + this.match(FlinkSqlParser.FROM); + this.state = 664; + this.tableExpression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tableExpression; + return this; +} + +TableExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableExpressionContext.prototype.constructor = TableExpressionContext; + +TableExpressionContext.prototype.tableReference = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableReferenceContext); + } else { + return this.getTypedRuleContext(TableReferenceContext,i); + } +}; + +TableExpressionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +TableExpressionContext.prototype.tableExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TableExpressionContext); + } else { + return this.getTypedRuleContext(TableExpressionContext,i); + } +}; + +TableExpressionContext.prototype.JOIN = function() { + return this.getToken(FlinkSqlParser.JOIN, 0); +}; + +TableExpressionContext.prototype.NATURAL = function() { + return this.getToken(FlinkSqlParser.NATURAL, 0); +}; + +TableExpressionContext.prototype.joinCondition = function() { + return this.getTypedRuleContext(JoinConditionContext,0); +}; + +TableExpressionContext.prototype.LEFT = function() { + return this.getToken(FlinkSqlParser.LEFT, 0); +}; + +TableExpressionContext.prototype.RIGHT = function() { + return this.getToken(FlinkSqlParser.RIGHT, 0); +}; + +TableExpressionContext.prototype.FULL = function() { + return this.getToken(FlinkSqlParser.FULL, 0); +}; + +TableExpressionContext.prototype.INNER = function() { + return this.getToken(FlinkSqlParser.INNER, 0); +}; + +TableExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTableExpression(this); + } +}; + +TableExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTableExpression(this); + } +}; + +TableExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTableExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.prototype.tableExpression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new TableExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 100; + this.enterRecursionRule(localctx, 100, FlinkSqlParser.RULE_tableExpression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 667; + this.tableReference(); + this.state = 672; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,67,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 668; + this.match(FlinkSqlParser.COMMA); + this.state = 669; + this.tableReference(); + } + this.state = 674; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,67,this._ctx); + } + + this._ctx.stop = this._input.LT(-1); + this.state = 689; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,71,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new TableExpressionContext(this, _parentctx, _parentState); + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_tableExpression); + this.state = 675; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 677; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NATURAL) { + this.state = 676; + this.match(FlinkSqlParser.NATURAL); + } + + this.state = 680; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(((((_la - 47)) & ~0x1f) == 0 && ((1 << (_la - 47)) & ((1 << (FlinkSqlParser.INNER - 47)) | (1 << (FlinkSqlParser.LEFT - 47)) | (1 << (FlinkSqlParser.RIGHT - 47)) | (1 << (FlinkSqlParser.FULL - 47)))) !== 0)) { + this.state = 679; + _la = this._input.LA(1); + if(!(((((_la - 47)) & ~0x1f) == 0 && ((1 << (_la - 47)) & ((1 << (FlinkSqlParser.INNER - 47)) | (1 << (FlinkSqlParser.LEFT - 47)) | (1 << (FlinkSqlParser.RIGHT - 47)) | (1 << (FlinkSqlParser.FULL - 47)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 682; + this.match(FlinkSqlParser.JOIN); + this.state = 683; + this.tableExpression(0); + this.state = 685; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,70,this._ctx); + if(la_===1) { + this.state = 684; + this.joinCondition(); + + } + } + this.state = 691; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,71,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function TableReferenceContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tableReference; + return this; +} + +TableReferenceContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableReferenceContext.prototype.constructor = TableReferenceContext; + +TableReferenceContext.prototype.tablePrimary = function() { + return this.getTypedRuleContext(TablePrimaryContext,0); +}; + +TableReferenceContext.prototype.tableAlias = function() { + return this.getTypedRuleContext(TableAliasContext,0); +}; + +TableReferenceContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTableReference(this); + } +}; + +TableReferenceContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTableReference(this); + } +}; + +TableReferenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTableReference(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TableReferenceContext = TableReferenceContext; + +FlinkSqlParser.prototype.tableReference = function() { + + var localctx = new TableReferenceContext(this, this._ctx, this.state); + this.enterRule(localctx, 102, FlinkSqlParser.RULE_tableReference); + try { + this.enterOuterAlt(localctx, 1); + this.state = 692; + this.tablePrimary(); + this.state = 694; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,72,this._ctx); + if(la_===1) { + this.state = 693; + this.tableAlias(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePrimaryContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tablePrimary; + return this; +} + +TablePrimaryContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePrimaryContext.prototype.constructor = TablePrimaryContext; + +TablePrimaryContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +TablePrimaryContext.prototype.TABLE = function() { + return this.getToken(FlinkSqlParser.TABLE, 0); +}; + +TablePrimaryContext.prototype.LATERAL = function() { + return this.getToken(FlinkSqlParser.LATERAL, 0); +}; + +TablePrimaryContext.prototype.LR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.LR_BRACKET); + } else { + return this.getToken(FlinkSqlParser.LR_BRACKET, i); + } +}; + + +TablePrimaryContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +TablePrimaryContext.prototype.RR_BRACKET = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.RR_BRACKET); + } else { + return this.getToken(FlinkSqlParser.RR_BRACKET, i); + } +}; + + +TablePrimaryContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +TablePrimaryContext.prototype.UNNEST = function() { + return this.getToken(FlinkSqlParser.UNNEST, 0); +}; + +TablePrimaryContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTablePrimary(this); + } +}; + +TablePrimaryContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTablePrimary(this); + } +}; + +TablePrimaryContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTablePrimary(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TablePrimaryContext = TablePrimaryContext; + +FlinkSqlParser.prototype.tablePrimary = function() { + + var localctx = new TablePrimaryContext(this, this._ctx, this.state); + this.enterRule(localctx, 104, FlinkSqlParser.RULE_tablePrimary); + var _la = 0; // Token type + try { + this.state = 721; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,75,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 697; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,73,this._ctx); + if(la_===1) { + this.state = 696; + this.match(FlinkSqlParser.TABLE); + + } + this.state = 699; + this.expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 700; + this.match(FlinkSqlParser.LATERAL); + this.state = 701; + this.match(FlinkSqlParser.TABLE); + this.state = 702; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 703; + this.uid(); + this.state = 704; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 705; + this.expression(); + this.state = 710; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 706; + this.match(FlinkSqlParser.COMMA); + this.state = 707; + this.expression(); + this.state = 712; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 713; + this.match(FlinkSqlParser.RR_BRACKET); + this.state = 714; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 716; + this.match(FlinkSqlParser.UNNEST); + this.state = 717; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 718; + this.expression(); + this.state = 719; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function JoinConditionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_joinCondition; + return this; +} + +JoinConditionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +JoinConditionContext.prototype.constructor = JoinConditionContext; + +JoinConditionContext.prototype.ON = function() { + return this.getToken(FlinkSqlParser.ON, 0); +}; + +JoinConditionContext.prototype.booleanExpression = function() { + return this.getTypedRuleContext(BooleanExpressionContext,0); +}; + +JoinConditionContext.prototype.USING = function() { + return this.getToken(FlinkSqlParser.USING, 0); +}; + +JoinConditionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +JoinConditionContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +JoinConditionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +JoinConditionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +JoinConditionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterJoinCondition(this); + } +}; + +JoinConditionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitJoinCondition(this); + } +}; + +JoinConditionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitJoinCondition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.JoinConditionContext = JoinConditionContext; + +FlinkSqlParser.prototype.joinCondition = function() { + + var localctx = new JoinConditionContext(this, this._ctx, this.state); + this.enterRule(localctx, 106, FlinkSqlParser.RULE_joinCondition); + var _la = 0; // Token type + try { + this.state = 737; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.ON: + this.enterOuterAlt(localctx, 1); + this.state = 723; + this.match(FlinkSqlParser.ON); + this.state = 724; + this.booleanExpression(0); + break; + case FlinkSqlParser.USING: + this.enterOuterAlt(localctx, 2); + this.state = 725; + this.match(FlinkSqlParser.USING); + this.state = 726; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 727; + this.uid(); + this.state = 732; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 728; + this.match(FlinkSqlParser.COMMA); + this.state = 729; + this.uid(); + this.state = 734; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 735; + this.match(FlinkSqlParser.RR_BRACKET); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WhereClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_whereClause; + return this; +} + +WhereClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WhereClauseContext.prototype.constructor = WhereClauseContext; + +WhereClauseContext.prototype.WHERE = function() { + return this.getToken(FlinkSqlParser.WHERE, 0); +}; + +WhereClauseContext.prototype.booleanExpression = function() { + return this.getTypedRuleContext(BooleanExpressionContext,0); +}; + +WhereClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWhereClause(this); + } +}; + +WhereClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWhereClause(this); + } +}; + +WhereClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWhereClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WhereClauseContext = WhereClauseContext; + +FlinkSqlParser.prototype.whereClause = function() { + + var localctx = new WhereClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 108, FlinkSqlParser.RULE_whereClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 739; + this.match(FlinkSqlParser.WHERE); + this.state = 740; + this.booleanExpression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GroupByClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_groupByClause; + return this; +} + +GroupByClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GroupByClauseContext.prototype.constructor = GroupByClauseContext; + +GroupByClauseContext.prototype.GROUP = function() { + return this.getToken(FlinkSqlParser.GROUP, 0); +}; + +GroupByClauseContext.prototype.BY = function() { + return this.getToken(FlinkSqlParser.BY, 0); +}; + +GroupByClauseContext.prototype.groupItemDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(GroupItemDefinitionContext); + } else { + return this.getTypedRuleContext(GroupItemDefinitionContext,i); + } +}; + +GroupByClauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +GroupByClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterGroupByClause(this); + } +}; + +GroupByClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitGroupByClause(this); + } +}; + +GroupByClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitGroupByClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.GroupByClauseContext = GroupByClauseContext; + +FlinkSqlParser.prototype.groupByClause = function() { + + var localctx = new GroupByClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 110, FlinkSqlParser.RULE_groupByClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 742; + this.match(FlinkSqlParser.GROUP); + this.state = 743; + this.match(FlinkSqlParser.BY); + this.state = 744; + this.groupItemDefinition(); + this.state = 749; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,78,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 745; + this.match(FlinkSqlParser.COMMA); + this.state = 746; + this.groupItemDefinition(); + } + this.state = 751; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,78,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function GroupItemDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_groupItemDefinition; + return this; +} + +GroupItemDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +GroupItemDefinitionContext.prototype.constructor = GroupItemDefinitionContext; + +GroupItemDefinitionContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +GroupItemDefinitionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +GroupItemDefinitionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +GroupItemDefinitionContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +GroupItemDefinitionContext.prototype.CUBE = function() { + return this.getToken(FlinkSqlParser.CUBE, 0); +}; + +GroupItemDefinitionContext.prototype.ROLLUP = function() { + return this.getToken(FlinkSqlParser.ROLLUP, 0); +}; + +GroupItemDefinitionContext.prototype.GROUPING = function() { + return this.getToken(FlinkSqlParser.GROUPING, 0); +}; + +GroupItemDefinitionContext.prototype.SETS = function() { + return this.getToken(FlinkSqlParser.SETS, 0); +}; + +GroupItemDefinitionContext.prototype.groupItemDefinition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(GroupItemDefinitionContext); + } else { + return this.getTypedRuleContext(GroupItemDefinitionContext,i); + } +}; + +GroupItemDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterGroupItemDefinition(this); + } +}; + +GroupItemDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitGroupItemDefinition(this); + } +}; + +GroupItemDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitGroupItemDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.GroupItemDefinitionContext = GroupItemDefinitionContext; + +FlinkSqlParser.prototype.groupItemDefinition = function() { + + var localctx = new GroupItemDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 112, FlinkSqlParser.RULE_groupItemDefinition); + var _la = 0; // Token type + try { + this.state = 803; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,83,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 752; + this.expression(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 753; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 754; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 755; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 756; + this.expression(); + this.state = 761; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 757; + this.match(FlinkSqlParser.COMMA); + this.state = 758; + this.expression(); + this.state = 763; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 764; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 766; + this.match(FlinkSqlParser.CUBE); + this.state = 767; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 768; + this.expression(); + this.state = 773; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 769; + this.match(FlinkSqlParser.COMMA); + this.state = 770; + this.expression(); + this.state = 775; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 776; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 778; + this.match(FlinkSqlParser.ROLLUP); + this.state = 779; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 780; + this.expression(); + this.state = 785; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 781; + this.match(FlinkSqlParser.COMMA); + this.state = 782; + this.expression(); + this.state = 787; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 788; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 790; + this.match(FlinkSqlParser.GROUPING); + this.state = 791; + this.match(FlinkSqlParser.SETS); + this.state = 792; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 793; + this.groupItemDefinition(); + this.state = 798; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 794; + this.match(FlinkSqlParser.COMMA); + this.state = 795; + this.groupItemDefinition(); + this.state = 800; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 801; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function HavingClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_havingClause; + return this; +} + +HavingClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +HavingClauseContext.prototype.constructor = HavingClauseContext; + +HavingClauseContext.prototype.HAVING = function() { + return this.getToken(FlinkSqlParser.HAVING, 0); +}; + +HavingClauseContext.prototype.booleanExpression = function() { + return this.getTypedRuleContext(BooleanExpressionContext,0); +}; + +HavingClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterHavingClause(this); + } +}; + +HavingClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitHavingClause(this); + } +}; + +HavingClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitHavingClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.HavingClauseContext = HavingClauseContext; + +FlinkSqlParser.prototype.havingClause = function() { + + var localctx = new HavingClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 114, FlinkSqlParser.RULE_havingClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 805; + this.match(FlinkSqlParser.HAVING); + this.state = 806; + this.booleanExpression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OrderByCaluseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_orderByCaluse; + return this; +} + +OrderByCaluseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OrderByCaluseContext.prototype.constructor = OrderByCaluseContext; + +OrderByCaluseContext.prototype.ORDER = function() { + return this.getToken(FlinkSqlParser.ORDER, 0); +}; + +OrderByCaluseContext.prototype.BY = function() { + return this.getToken(FlinkSqlParser.BY, 0); +}; + +OrderByCaluseContext.prototype.orderItemDefition = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(OrderItemDefitionContext); + } else { + return this.getTypedRuleContext(OrderItemDefitionContext,i); + } +}; + +OrderByCaluseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +OrderByCaluseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterOrderByCaluse(this); + } +}; + +OrderByCaluseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitOrderByCaluse(this); + } +}; + +OrderByCaluseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitOrderByCaluse(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.OrderByCaluseContext = OrderByCaluseContext; + +FlinkSqlParser.prototype.orderByCaluse = function() { + + var localctx = new OrderByCaluseContext(this, this._ctx, this.state); + this.enterRule(localctx, 116, FlinkSqlParser.RULE_orderByCaluse); + try { + this.enterOuterAlt(localctx, 1); + this.state = 808; + this.match(FlinkSqlParser.ORDER); + this.state = 809; + this.match(FlinkSqlParser.BY); + this.state = 810; + this.orderItemDefition(); + this.state = 815; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,84,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 811; + this.match(FlinkSqlParser.COMMA); + this.state = 812; + this.orderItemDefition(); + } + this.state = 817; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,84,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function OrderItemDefitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_orderItemDefition; + return this; +} + +OrderItemDefitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +OrderItemDefitionContext.prototype.constructor = OrderItemDefitionContext; + +OrderItemDefitionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +OrderItemDefitionContext.prototype.ASC = function() { + return this.getToken(FlinkSqlParser.ASC, 0); +}; + +OrderItemDefitionContext.prototype.DESC = function() { + return this.getToken(FlinkSqlParser.DESC, 0); +}; + +OrderItemDefitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterOrderItemDefition(this); + } +}; + +OrderItemDefitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitOrderItemDefition(this); + } +}; + +OrderItemDefitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitOrderItemDefition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.OrderItemDefitionContext = OrderItemDefitionContext; + +FlinkSqlParser.prototype.orderItemDefition = function() { + + var localctx = new OrderItemDefitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 118, FlinkSqlParser.RULE_orderItemDefition); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 818; + this.expression(); + this.state = 820; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,85,this._ctx); + if(la_===1) { + this.state = 819; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ASC || _la===FlinkSqlParser.DESC)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LimitClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_limitClause; + this.limit = null; // ExpressionContext + return this; +} + +LimitClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LimitClauseContext.prototype.constructor = LimitClauseContext; + +LimitClauseContext.prototype.LIMIT = function() { + return this.getToken(FlinkSqlParser.LIMIT, 0); +}; + +LimitClauseContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +LimitClauseContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +LimitClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLimitClause(this); + } +}; + +LimitClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLimitClause(this); + } +}; + +LimitClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLimitClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.LimitClauseContext = LimitClauseContext; + +FlinkSqlParser.prototype.limitClause = function() { + + var localctx = new LimitClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 120, FlinkSqlParser.RULE_limitClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 822; + this.match(FlinkSqlParser.LIMIT); + this.state = 825; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,86,this._ctx); + switch(la_) { + case 1: + this.state = 823; + this.match(FlinkSqlParser.ALL); + break; + + case 2: + this.state = 824; + localctx.limit = this.expression(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WindowClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_windowClause; + return this; +} + +WindowClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WindowClauseContext.prototype.constructor = WindowClauseContext; + +WindowClauseContext.prototype.WINDOW = function() { + return this.getToken(FlinkSqlParser.WINDOW, 0); +}; + +WindowClauseContext.prototype.namedWindow = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(NamedWindowContext); + } else { + return this.getTypedRuleContext(NamedWindowContext,i); + } +}; + +WindowClauseContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +WindowClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWindowClause(this); + } +}; + +WindowClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWindowClause(this); + } +}; + +WindowClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWindowClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WindowClauseContext = WindowClauseContext; + +FlinkSqlParser.prototype.windowClause = function() { + + var localctx = new WindowClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 122, FlinkSqlParser.RULE_windowClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 827; + this.match(FlinkSqlParser.WINDOW); + this.state = 828; + this.namedWindow(); + this.state = 833; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,87,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + this.state = 829; + this.match(FlinkSqlParser.COMMA); + this.state = 830; + this.namedWindow(); + } + this.state = 835; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,87,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function NamedWindowContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_namedWindow; + this.name = null; // ErrorCapturingIdentifierContext + return this; +} + +NamedWindowContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +NamedWindowContext.prototype.constructor = NamedWindowContext; + +NamedWindowContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +NamedWindowContext.prototype.windowSpec = function() { + return this.getTypedRuleContext(WindowSpecContext,0); +}; + +NamedWindowContext.prototype.errorCapturingIdentifier = function() { + return this.getTypedRuleContext(ErrorCapturingIdentifierContext,0); +}; + +NamedWindowContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterNamedWindow(this); + } +}; + +NamedWindowContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitNamedWindow(this); + } +}; + +NamedWindowContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitNamedWindow(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.NamedWindowContext = NamedWindowContext; + +FlinkSqlParser.prototype.namedWindow = function() { + + var localctx = new NamedWindowContext(this, this._ctx, this.state); + this.enterRule(localctx, 124, FlinkSqlParser.RULE_namedWindow); + try { + this.enterOuterAlt(localctx, 1); + this.state = 836; + localctx.name = this.errorCapturingIdentifier(); + this.state = 837; + this.match(FlinkSqlParser.AS); + this.state = 838; + this.windowSpec(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WindowSpecContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_windowSpec; + this.name = null; // ErrorCapturingIdentifierContext + return this; +} + +WindowSpecContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WindowSpecContext.prototype.constructor = WindowSpecContext; + +WindowSpecContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +WindowSpecContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +WindowSpecContext.prototype.ORDER = function() { + return this.getToken(FlinkSqlParser.ORDER, 0); +}; + +WindowSpecContext.prototype.BY = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.BY); + } else { + return this.getToken(FlinkSqlParser.BY, i); + } +}; + + +WindowSpecContext.prototype.sortItem = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(SortItemContext); + } else { + return this.getTypedRuleContext(SortItemContext,i); + } +}; + +WindowSpecContext.prototype.PARTITION = function() { + return this.getToken(FlinkSqlParser.PARTITION, 0); +}; + +WindowSpecContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +WindowSpecContext.prototype.windowFrame = function() { + return this.getTypedRuleContext(WindowFrameContext,0); +}; + +WindowSpecContext.prototype.errorCapturingIdentifier = function() { + return this.getTypedRuleContext(ErrorCapturingIdentifierContext,0); +}; + +WindowSpecContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +WindowSpecContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWindowSpec(this); + } +}; + +WindowSpecContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWindowSpec(this); + } +}; + +WindowSpecContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWindowSpec(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WindowSpecContext = WindowSpecContext; + +FlinkSqlParser.prototype.windowSpec = function() { + + var localctx = new WindowSpecContext(this, this._ctx, this.state); + this.enterRule(localctx, 126, FlinkSqlParser.RULE_windowSpec); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 841; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << FlinkSqlParser.SELECT) | (1 << FlinkSqlParser.FROM) | (1 << FlinkSqlParser.ADD) | (1 << FlinkSqlParser.AS) | (1 << FlinkSqlParser.ALL) | (1 << FlinkSqlParser.ANY) | (1 << FlinkSqlParser.DISTINCT) | (1 << FlinkSqlParser.WHERE) | (1 << FlinkSqlParser.GROUP) | (1 << FlinkSqlParser.BY) | (1 << FlinkSqlParser.GROUPING) | (1 << FlinkSqlParser.SETS) | (1 << FlinkSqlParser.CUBE) | (1 << FlinkSqlParser.ROLLUP) | (1 << FlinkSqlParser.ORDER) | (1 << FlinkSqlParser.HAVING) | (1 << FlinkSqlParser.LIMIT) | (1 << FlinkSqlParser.AT) | (1 << FlinkSqlParser.OR) | (1 << FlinkSqlParser.AND) | (1 << FlinkSqlParser.IN) | (1 << FlinkSqlParser.NOT) | (1 << FlinkSqlParser.NO) | (1 << FlinkSqlParser.EXISTS) | (1 << FlinkSqlParser.BETWEEN) | (1 << FlinkSqlParser.LIKE) | (1 << FlinkSqlParser.RLIKE) | (1 << FlinkSqlParser.IS))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (FlinkSqlParser.TRUE - 32)) | (1 << (FlinkSqlParser.FALSE - 32)) | (1 << (FlinkSqlParser.NULLS - 32)) | (1 << (FlinkSqlParser.ASC - 32)) | (1 << (FlinkSqlParser.DESC - 32)) | (1 << (FlinkSqlParser.FOR - 32)) | (1 << (FlinkSqlParser.INTERVAL - 32)) | (1 << (FlinkSqlParser.CASE - 32)) | (1 << (FlinkSqlParser.WHEN - 32)) | (1 << (FlinkSqlParser.THEN - 32)) | (1 << (FlinkSqlParser.ELSE - 32)) | (1 << (FlinkSqlParser.END - 32)) | (1 << (FlinkSqlParser.JOIN - 32)) | (1 << (FlinkSqlParser.CROSS - 32)) | (1 << (FlinkSqlParser.OUTER - 32)) | (1 << (FlinkSqlParser.INNER - 32)) | (1 << (FlinkSqlParser.LEFT - 32)) | (1 << (FlinkSqlParser.SEMI - 32)) | (1 << (FlinkSqlParser.RIGHT - 32)) | (1 << (FlinkSqlParser.FULL - 32)) | (1 << (FlinkSqlParser.NATURAL - 32)) | (1 << (FlinkSqlParser.ON - 32)) | (1 << (FlinkSqlParser.PIVOT - 32)) | (1 << (FlinkSqlParser.LATERAL - 32)) | (1 << (FlinkSqlParser.WINDOW - 32)) | (1 << (FlinkSqlParser.OVER - 32)) | (1 << (FlinkSqlParser.PARTITION - 32)) | (1 << (FlinkSqlParser.RANGE - 32)) | (1 << (FlinkSqlParser.ROWS - 32)) | (1 << (FlinkSqlParser.UNBOUNDED - 32)) | (1 << (FlinkSqlParser.PRECEDING - 32)) | (1 << (FlinkSqlParser.FOLLOWING - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (FlinkSqlParser.CURRENT - 64)) | (1 << (FlinkSqlParser.FIRST - 64)) | (1 << (FlinkSqlParser.AFTER - 64)) | (1 << (FlinkSqlParser.LAST - 64)) | (1 << (FlinkSqlParser.WITH - 64)) | (1 << (FlinkSqlParser.VALUES - 64)) | (1 << (FlinkSqlParser.CREATE - 64)) | (1 << (FlinkSqlParser.TABLE - 64)) | (1 << (FlinkSqlParser.DIRECTORY - 64)) | (1 << (FlinkSqlParser.VIEW - 64)) | (1 << (FlinkSqlParser.REPLACE - 64)) | (1 << (FlinkSqlParser.INSERT - 64)) | (1 << (FlinkSqlParser.DELETE - 64)) | (1 << (FlinkSqlParser.INTO - 64)) | (1 << (FlinkSqlParser.DESCRIBE - 64)) | (1 << (FlinkSqlParser.EXPLAIN - 64)) | (1 << (FlinkSqlParser.FORMAT - 64)) | (1 << (FlinkSqlParser.LOGICAL - 64)) | (1 << (FlinkSqlParser.CODEGEN - 64)) | (1 << (FlinkSqlParser.COST - 64)) | (1 << (FlinkSqlParser.CAST - 64)) | (1 << (FlinkSqlParser.SHOW - 64)) | (1 << (FlinkSqlParser.TABLES - 64)) | (1 << (FlinkSqlParser.COLUMNS - 64)) | (1 << (FlinkSqlParser.COLUMN - 64)) | (1 << (FlinkSqlParser.USE - 64)) | (1 << (FlinkSqlParser.PARTITIONS - 64)) | (1 << (FlinkSqlParser.FUNCTIONS - 64)) | (1 << (FlinkSqlParser.DROP - 64)) | (1 << (FlinkSqlParser.UNION - 64)) | (1 << (FlinkSqlParser.EXCEPT - 64)) | (1 << (FlinkSqlParser.SETMINUS - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (FlinkSqlParser.INTERSECT - 96)) | (1 << (FlinkSqlParser.TO - 96)) | (1 << (FlinkSqlParser.TABLESAMPLE - 96)) | (1 << (FlinkSqlParser.STRATIFY - 96)) | (1 << (FlinkSqlParser.ALTER - 96)) | (1 << (FlinkSqlParser.RENAME - 96)) | (1 << (FlinkSqlParser.STRUCT - 96)) | (1 << (FlinkSqlParser.COMMENT - 96)) | (1 << (FlinkSqlParser.SET - 96)) | (1 << (FlinkSqlParser.RESET - 96)) | (1 << (FlinkSqlParser.DATA - 96)) | (1 << (FlinkSqlParser.START - 96)) | (1 << (FlinkSqlParser.TRANSACTION - 96)) | (1 << (FlinkSqlParser.COMMIT - 96)) | (1 << (FlinkSqlParser.ROLLBACK - 96)) | (1 << (FlinkSqlParser.MACRO - 96)) | (1 << (FlinkSqlParser.IGNORE - 96)) | (1 << (FlinkSqlParser.BOTH - 96)) | (1 << (FlinkSqlParser.LEADING - 96)) | (1 << (FlinkSqlParser.TRAILING - 96)) | (1 << (FlinkSqlParser.IF - 96)) | (1 << (FlinkSqlParser.POSITION - 96)) | (1 << (FlinkSqlParser.EXTRACT - 96)) | (1 << (FlinkSqlParser.MINUS - 96)) | (1 << (FlinkSqlParser.DIV - 96)) | (1 << (FlinkSqlParser.PERCENTLIT - 96)) | (1 << (FlinkSqlParser.BUCKET - 96)) | (1 << (FlinkSqlParser.OUT - 96)) | (1 << (FlinkSqlParser.OF - 96)) | (1 << (FlinkSqlParser.SORT - 96)) | (1 << (FlinkSqlParser.CLUSTER - 96)) | (1 << (FlinkSqlParser.DISTRIBUTE - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (FlinkSqlParser.OVERWRITE - 128)) | (1 << (FlinkSqlParser.TRANSFORM - 128)) | (1 << (FlinkSqlParser.REDUCE - 128)) | (1 << (FlinkSqlParser.USING - 128)) | (1 << (FlinkSqlParser.SERDE - 128)) | (1 << (FlinkSqlParser.SERDEPROPERTIES - 128)) | (1 << (FlinkSqlParser.RECORDREADER - 128)) | (1 << (FlinkSqlParser.RECORDWRITER - 128)) | (1 << (FlinkSqlParser.DELIMITED - 128)) | (1 << (FlinkSqlParser.FIELDS - 128)) | (1 << (FlinkSqlParser.TERMINATED - 128)) | (1 << (FlinkSqlParser.COLLECTION - 128)) | (1 << (FlinkSqlParser.ITEMS - 128)) | (1 << (FlinkSqlParser.KEYS - 128)) | (1 << (FlinkSqlParser.ESCAPED - 128)) | (1 << (FlinkSqlParser.LINES - 128)) | (1 << (FlinkSqlParser.SEPARATED - 128)) | (1 << (FlinkSqlParser.FUNCTION - 128)) | (1 << (FlinkSqlParser.EXTENDED - 128)) | (1 << (FlinkSqlParser.REFRESH - 128)) | (1 << (FlinkSqlParser.CLEAR - 128)) | (1 << (FlinkSqlParser.CACHE - 128)) | (1 << (FlinkSqlParser.UNCACHE - 128)) | (1 << (FlinkSqlParser.LAZY - 128)) | (1 << (FlinkSqlParser.FORMATTED - 128)) | (1 << (FlinkSqlParser.GLOBAL - 128)) | (1 << (FlinkSqlParser.TEMPORARY - 128)) | (1 << (FlinkSqlParser.OPTIONS - 128)) | (1 << (FlinkSqlParser.UNSET - 128)) | (1 << (FlinkSqlParser.TBLPROPERTIES - 128)) | (1 << (FlinkSqlParser.DBPROPERTIES - 128)) | (1 << (FlinkSqlParser.BUCKETS - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (FlinkSqlParser.SKEWED - 160)) | (1 << (FlinkSqlParser.STORED - 160)) | (1 << (FlinkSqlParser.DIRECTORIES - 160)) | (1 << (FlinkSqlParser.LOCATION - 160)) | (1 << (FlinkSqlParser.EXCHANGE - 160)) | (1 << (FlinkSqlParser.ARCHIVE - 160)) | (1 << (FlinkSqlParser.UNARCHIVE - 160)) | (1 << (FlinkSqlParser.FILEFORMAT - 160)) | (1 << (FlinkSqlParser.TOUCH - 160)) | (1 << (FlinkSqlParser.COMPACT - 160)) | (1 << (FlinkSqlParser.CONCATENATE - 160)) | (1 << (FlinkSqlParser.CHANGE - 160)) | (1 << (FlinkSqlParser.CASCADE - 160)) | (1 << (FlinkSqlParser.CONSTRAINT - 160)) | (1 << (FlinkSqlParser.RESTRICT - 160)) | (1 << (FlinkSqlParser.CLUSTERED - 160)) | (1 << (FlinkSqlParser.SORTED - 160)) | (1 << (FlinkSqlParser.PURGE - 160)) | (1 << (FlinkSqlParser.INPUTFORMAT - 160)) | (1 << (FlinkSqlParser.OUTPUTFORMAT - 160)) | (1 << (FlinkSqlParser.DATABASE - 160)) | (1 << (FlinkSqlParser.DATABASES - 160)) | (1 << (FlinkSqlParser.DFS - 160)) | (1 << (FlinkSqlParser.TRUNCATE - 160)) | (1 << (FlinkSqlParser.ANALYZE - 160)) | (1 << (FlinkSqlParser.COMPUTE - 160)) | (1 << (FlinkSqlParser.LIST - 160)) | (1 << (FlinkSqlParser.STATISTICS - 160)) | (1 << (FlinkSqlParser.PARTITIONED - 160)) | (1 << (FlinkSqlParser.EXTERNAL - 160)) | (1 << (FlinkSqlParser.DEFINED - 160)) | (1 << (FlinkSqlParser.REVOKE - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (FlinkSqlParser.GRANT - 192)) | (1 << (FlinkSqlParser.LOCK - 192)) | (1 << (FlinkSqlParser.UNLOCK - 192)) | (1 << (FlinkSqlParser.MSCK - 192)) | (1 << (FlinkSqlParser.REPAIR - 192)) | (1 << (FlinkSqlParser.RECOVER - 192)) | (1 << (FlinkSqlParser.EXPORT - 192)) | (1 << (FlinkSqlParser.IMPORT - 192)) | (1 << (FlinkSqlParser.LOAD - 192)) | (1 << (FlinkSqlParser.ROLE - 192)) | (1 << (FlinkSqlParser.ROLES - 192)) | (1 << (FlinkSqlParser.COMPACTIONS - 192)) | (1 << (FlinkSqlParser.PRINCIPALS - 192)) | (1 << (FlinkSqlParser.TRANSACTIONS - 192)) | (1 << (FlinkSqlParser.INDEX - 192)) | (1 << (FlinkSqlParser.INDEXES - 192)) | (1 << (FlinkSqlParser.LOCKS - 192)) | (1 << (FlinkSqlParser.OPTION - 192)) | (1 << (FlinkSqlParser.ANTI - 192)) | (1 << (FlinkSqlParser.LOCAL - 192)) | (1 << (FlinkSqlParser.INPATH - 192)) | (1 << (FlinkSqlParser.WATERMARK - 192)) | (1 << (FlinkSqlParser.UNNEST - 192)) | (1 << (FlinkSqlParser.MATCH - 192)) | (1 << (FlinkSqlParser.NEXT - 192)) | (1 << (FlinkSqlParser.WITHIN - 192)) | (1 << (FlinkSqlParser.WS - 192)) | (1 << (FlinkSqlParser.SYSTEM - 192)) | (1 << (FlinkSqlParser.INCLUDING - 192)) | (1 << (FlinkSqlParser.EXCLUDING - 192)) | (1 << (FlinkSqlParser.CONSTRAINTS - 192)) | (1 << (FlinkSqlParser.GENERATED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (FlinkSqlParser.CATALOG - 224)) | (1 << (FlinkSqlParser.LANGUAGE - 224)) | (1 << (FlinkSqlParser.CATALOGS - 224)) | (1 << (FlinkSqlParser.VIEWS - 224)) | (1 << (FlinkSqlParser.PRIMARY - 224)) | (1 << (FlinkSqlParser.KEY - 224)) | (1 << (FlinkSqlParser.PERIOD - 224)) | (1 << (FlinkSqlParser.SYSTEM_TIME - 224)) | (1 << (FlinkSqlParser.STRING - 224)) | (1 << (FlinkSqlParser.ARRAY - 224)) | (1 << (FlinkSqlParser.MAP - 224)) | (1 << (FlinkSqlParser.CHAR - 224)) | (1 << (FlinkSqlParser.VARCHAR - 224)) | (1 << (FlinkSqlParser.BINARY - 224)) | (1 << (FlinkSqlParser.VARBINARY - 224)) | (1 << (FlinkSqlParser.BYTES - 224)) | (1 << (FlinkSqlParser.DECIMAL - 224)) | (1 << (FlinkSqlParser.TINYINT - 224)) | (1 << (FlinkSqlParser.SMALLINT - 224)) | (1 << (FlinkSqlParser.INT - 224)) | (1 << (FlinkSqlParser.BIGINT - 224)) | (1 << (FlinkSqlParser.FLOAT - 224)) | (1 << (FlinkSqlParser.DOUBLE - 224)) | (1 << (FlinkSqlParser.DATE - 224)) | (1 << (FlinkSqlParser.TIME - 224)) | (1 << (FlinkSqlParser.TIMESTAMP - 224)) | (1 << (FlinkSqlParser.MULTISET - 224)) | (1 << (FlinkSqlParser.BOOLEAN - 224)) | (1 << (FlinkSqlParser.RAW - 224)) | (1 << (FlinkSqlParser.ROW - 224)) | (1 << (FlinkSqlParser.NULL - 224)) | (1 << (FlinkSqlParser.DATETIME - 224)))) !== 0) || ((((_la - 286)) & ~0x1f) == 0 && ((1 << (_la - 286)) & ((1 << (FlinkSqlParser.STRING_LITERAL - 286)) | (1 << (FlinkSqlParser.DIG_LITERAL - 286)) | (1 << (FlinkSqlParser.ID_LITERAL - 286)))) !== 0)) { + this.state = 840; + localctx.name = this.errorCapturingIdentifier(); + } + + this.state = 843; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 854; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.ORDER) { + this.state = 844; + this.match(FlinkSqlParser.ORDER); + this.state = 845; + this.match(FlinkSqlParser.BY); + this.state = 846; + this.sortItem(); + this.state = 851; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 847; + this.match(FlinkSqlParser.COMMA); + this.state = 848; + this.sortItem(); + this.state = 853; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 866; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.PARTITION) { + this.state = 856; + this.match(FlinkSqlParser.PARTITION); + this.state = 857; + this.match(FlinkSqlParser.BY); + this.state = 858; + this.expression(); + this.state = 863; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 859; + this.match(FlinkSqlParser.COMMA); + this.state = 860; + this.expression(); + this.state = 865; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 869; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.RANGE || _la===FlinkSqlParser.ROWS) { + this.state = 868; + this.windowFrame(); + } + + this.state = 871; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SortItemContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_sortItem; + this.ordering = null; // Token + this.nullOrder = null; // Token + return this; +} + +SortItemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SortItemContext.prototype.constructor = SortItemContext; + +SortItemContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +SortItemContext.prototype.NULLS = function() { + return this.getToken(FlinkSqlParser.NULLS, 0); +}; + +SortItemContext.prototype.ASC = function() { + return this.getToken(FlinkSqlParser.ASC, 0); +}; + +SortItemContext.prototype.DESC = function() { + return this.getToken(FlinkSqlParser.DESC, 0); +}; + +SortItemContext.prototype.LAST = function() { + return this.getToken(FlinkSqlParser.LAST, 0); +}; + +SortItemContext.prototype.FIRST = function() { + return this.getToken(FlinkSqlParser.FIRST, 0); +}; + +SortItemContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSortItem(this); + } +}; + +SortItemContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSortItem(this); + } +}; + +SortItemContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSortItem(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SortItemContext = SortItemContext; + +FlinkSqlParser.prototype.sortItem = function() { + + var localctx = new SortItemContext(this, this._ctx, this.state); + this.enterRule(localctx, 128, FlinkSqlParser.RULE_sortItem); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 873; + this.expression(); + this.state = 875; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.ASC || _la===FlinkSqlParser.DESC) { + this.state = 874; + localctx.ordering = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ASC || _la===FlinkSqlParser.DESC)) { + localctx.ordering = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 879; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NULLS) { + this.state = 877; + this.match(FlinkSqlParser.NULLS); + this.state = 878; + localctx.nullOrder = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.FIRST || _la===FlinkSqlParser.LAST)) { + localctx.nullOrder = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WindowFrameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_windowFrame; + return this; +} + +WindowFrameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WindowFrameContext.prototype.constructor = WindowFrameContext; + +WindowFrameContext.prototype.RANGE = function() { + return this.getToken(FlinkSqlParser.RANGE, 0); +}; + +WindowFrameContext.prototype.frameBound = function() { + return this.getTypedRuleContext(FrameBoundContext,0); +}; + +WindowFrameContext.prototype.ROWS = function() { + return this.getToken(FlinkSqlParser.ROWS, 0); +}; + +WindowFrameContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWindowFrame(this); + } +}; + +WindowFrameContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWindowFrame(this); + } +}; + +WindowFrameContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWindowFrame(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WindowFrameContext = WindowFrameContext; + +FlinkSqlParser.prototype.windowFrame = function() { + + var localctx = new WindowFrameContext(this, this._ctx, this.state); + this.enterRule(localctx, 130, FlinkSqlParser.RULE_windowFrame); + try { + this.state = 885; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.RANGE: + this.enterOuterAlt(localctx, 1); + this.state = 881; + this.match(FlinkSqlParser.RANGE); + this.state = 882; + this.frameBound(); + break; + case FlinkSqlParser.ROWS: + this.enterOuterAlt(localctx, 2); + this.state = 883; + this.match(FlinkSqlParser.ROWS); + this.state = 884; + this.frameBound(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FrameBoundContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_frameBound; + return this; +} + +FrameBoundContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FrameBoundContext.prototype.constructor = FrameBoundContext; + +FrameBoundContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +FrameBoundContext.prototype.PRECEDING = function() { + return this.getToken(FlinkSqlParser.PRECEDING, 0); +}; + +FrameBoundContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFrameBound(this); + } +}; + +FrameBoundContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFrameBound(this); + } +}; + +FrameBoundContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFrameBound(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.FrameBoundContext = FrameBoundContext; + +FlinkSqlParser.prototype.frameBound = function() { + + var localctx = new FrameBoundContext(this, this._ctx, this.state); + this.enterRule(localctx, 132, FlinkSqlParser.RULE_frameBound); + try { + this.enterOuterAlt(localctx, 1); + this.state = 887; + this.expression(); + this.state = 888; + this.match(FlinkSqlParser.PRECEDING); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_expression; + return this; +} + +ExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ExpressionContext.prototype.constructor = ExpressionContext; + +ExpressionContext.prototype.booleanExpression = function() { + return this.getTypedRuleContext(BooleanExpressionContext,0); +}; + +ExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterExpression(this); + } +}; + +ExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitExpression(this); + } +}; + +ExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ExpressionContext = ExpressionContext; + +FlinkSqlParser.prototype.expression = function() { + + var localctx = new ExpressionContext(this, this._ctx, this.state); + this.enterRule(localctx, 134, FlinkSqlParser.RULE_expression); + try { + this.enterOuterAlt(localctx, 1); + this.state = 890; + this.booleanExpression(0); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BooleanExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_booleanExpression; + return this; +} + +BooleanExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BooleanExpressionContext.prototype.constructor = BooleanExpressionContext; + + + +BooleanExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function LogicalNotContext(parser, ctx) { + BooleanExpressionContext.call(this, parser); + BooleanExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LogicalNotContext.prototype = Object.create(BooleanExpressionContext.prototype); +LogicalNotContext.prototype.constructor = LogicalNotContext; + +FlinkSqlParser.LogicalNotContext = LogicalNotContext; + +LogicalNotContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +LogicalNotContext.prototype.booleanExpression = function() { + return this.getTypedRuleContext(BooleanExpressionContext,0); +}; +LogicalNotContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLogicalNot(this); + } +}; + +LogicalNotContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLogicalNot(this); + } +}; + +LogicalNotContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLogicalNot(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PredicatedContext(parser, ctx) { + BooleanExpressionContext.call(this, parser); + BooleanExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PredicatedContext.prototype = Object.create(BooleanExpressionContext.prototype); +PredicatedContext.prototype.constructor = PredicatedContext; + +FlinkSqlParser.PredicatedContext = PredicatedContext; + +PredicatedContext.prototype.valueExpression = function() { + return this.getTypedRuleContext(ValueExpressionContext,0); +}; + +PredicatedContext.prototype.predicate = function() { + return this.getTypedRuleContext(PredicateContext,0); +}; +PredicatedContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterPredicated(this); + } +}; + +PredicatedContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitPredicated(this); + } +}; + +PredicatedContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitPredicated(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ExistsContext(parser, ctx) { + BooleanExpressionContext.call(this, parser); + BooleanExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ExistsContext.prototype = Object.create(BooleanExpressionContext.prototype); +ExistsContext.prototype.constructor = ExistsContext; + +FlinkSqlParser.ExistsContext = ExistsContext; + +ExistsContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +ExistsContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +ExistsContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +ExistsContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; +ExistsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterExists(this); + } +}; + +ExistsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitExists(this); + } +}; + +ExistsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitExists(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LogicalBinaryContext(parser, ctx) { + BooleanExpressionContext.call(this, parser); + this.left = null; // BooleanExpressionContext; + this.operator = null; // Token; + this.right = null; // BooleanExpressionContext; + BooleanExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LogicalBinaryContext.prototype = Object.create(BooleanExpressionContext.prototype); +LogicalBinaryContext.prototype.constructor = LogicalBinaryContext; + +FlinkSqlParser.LogicalBinaryContext = LogicalBinaryContext; + +LogicalBinaryContext.prototype.booleanExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(BooleanExpressionContext); + } else { + return this.getTypedRuleContext(BooleanExpressionContext,i); + } +}; + +LogicalBinaryContext.prototype.AND = function() { + return this.getToken(FlinkSqlParser.AND, 0); +}; + +LogicalBinaryContext.prototype.OR = function() { + return this.getToken(FlinkSqlParser.OR, 0); +}; +LogicalBinaryContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLogicalBinary(this); + } +}; + +LogicalBinaryContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLogicalBinary(this); + } +}; + +LogicalBinaryContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLogicalBinary(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.prototype.booleanExpression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new BooleanExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 136; + this.enterRecursionRule(localctx, 136, FlinkSqlParser.RULE_booleanExpression, _p); + try { + this.enterOuterAlt(localctx, 1); + this.state = 904; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); + switch(la_) { + case 1: + localctx = new LogicalNotContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 893; + this.match(FlinkSqlParser.NOT); + this.state = 894; + this.booleanExpression(5); + break; + + case 2: + localctx = new ExistsContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 895; + this.match(FlinkSqlParser.EXISTS); + this.state = 896; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 897; + this.queryStatement(0); + this.state = 898; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 3: + localctx = new PredicatedContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 900; + this.valueExpression(0); + this.state = 902; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,97,this._ctx); + if(la_===1) { + this.state = 901; + this.predicate(); + + } + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 914; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,100,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 912; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,99,this._ctx); + switch(la_) { + case 1: + localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_booleanExpression); + this.state = 906; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 907; + localctx.operator = this.match(FlinkSqlParser.AND); + this.state = 908; + localctx.right = this.booleanExpression(3); + break; + + case 2: + localctx = new LogicalBinaryContext(this, new BooleanExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_booleanExpression); + this.state = 909; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 910; + localctx.operator = this.match(FlinkSqlParser.OR); + this.state = 911; + localctx.right = this.booleanExpression(2); + break; + + } + } + this.state = 916; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,100,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function PredicateContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_predicate; + this.kind = null; // Token + this.lower = null; // ValueExpressionContext + this.upper = null; // ValueExpressionContext + this.pattern = null; // ValueExpressionContext + this.quantifier = null; // Token + this.right = null; // ValueExpressionContext + return this; +} + +PredicateContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PredicateContext.prototype.constructor = PredicateContext; + +PredicateContext.prototype.AND = function() { + return this.getToken(FlinkSqlParser.AND, 0); +}; + +PredicateContext.prototype.BETWEEN = function() { + return this.getToken(FlinkSqlParser.BETWEEN, 0); +}; + +PredicateContext.prototype.valueExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ValueExpressionContext); + } else { + return this.getTypedRuleContext(ValueExpressionContext,i); + } +}; + +PredicateContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +PredicateContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +PredicateContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +PredicateContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +PredicateContext.prototype.IN = function() { + return this.getToken(FlinkSqlParser.IN, 0); +}; + +PredicateContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +PredicateContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +PredicateContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +PredicateContext.prototype.RLIKE = function() { + return this.getToken(FlinkSqlParser.RLIKE, 0); +}; + +PredicateContext.prototype.LIKE = function() { + return this.getToken(FlinkSqlParser.LIKE, 0); +}; + +PredicateContext.prototype.ANY = function() { + return this.getToken(FlinkSqlParser.ANY, 0); +}; + +PredicateContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +PredicateContext.prototype.IS = function() { + return this.getToken(FlinkSqlParser.IS, 0); +}; + +PredicateContext.prototype.NULL = function() { + return this.getToken(FlinkSqlParser.NULL, 0); +}; + +PredicateContext.prototype.TRUE = function() { + return this.getToken(FlinkSqlParser.TRUE, 0); +}; + +PredicateContext.prototype.FALSE = function() { + return this.getToken(FlinkSqlParser.FALSE, 0); +}; + +PredicateContext.prototype.FROM = function() { + return this.getToken(FlinkSqlParser.FROM, 0); +}; + +PredicateContext.prototype.DISTINCT = function() { + return this.getToken(FlinkSqlParser.DISTINCT, 0); +}; + +PredicateContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterPredicate(this); + } +}; + +PredicateContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitPredicate(this); + } +}; + +PredicateContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitPredicate(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.PredicateContext = PredicateContext; + +FlinkSqlParser.prototype.predicate = function() { + + var localctx = new PredicateContext(this, this._ctx, this.state); + this.enterRule(localctx, 138, FlinkSqlParser.RULE_predicate); + var _la = 0; // Token type + try { + this.state = 1000; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,113,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 918; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 917; + this.match(FlinkSqlParser.NOT); + } + + this.state = 920; + localctx.kind = this.match(FlinkSqlParser.BETWEEN); + this.state = 921; + localctx.lower = this.valueExpression(0); + this.state = 922; + this.match(FlinkSqlParser.AND); + this.state = 923; + localctx.upper = this.valueExpression(0); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 926; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 925; + this.match(FlinkSqlParser.NOT); + } + + this.state = 928; + localctx.kind = this.match(FlinkSqlParser.IN); + this.state = 929; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 930; + this.expression(); + this.state = 935; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 931; + this.match(FlinkSqlParser.COMMA); + this.state = 932; + this.expression(); + this.state = 937; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 938; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 941; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 940; + this.match(FlinkSqlParser.NOT); + } + + this.state = 943; + localctx.kind = this.match(FlinkSqlParser.IN); + this.state = 944; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 945; + this.queryStatement(0); + this.state = 946; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 948; + localctx.kind = this.match(FlinkSqlParser.EXISTS); + this.state = 949; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 950; + this.queryStatement(0); + this.state = 951; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 954; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 953; + this.match(FlinkSqlParser.NOT); + } + + this.state = 956; + localctx.kind = this.match(FlinkSqlParser.RLIKE); + this.state = 957; + localctx.pattern = this.valueExpression(0); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 959; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 958; + this.match(FlinkSqlParser.NOT); + } + + this.state = 961; + localctx.kind = this.match(FlinkSqlParser.LIKE); + this.state = 962; + localctx.quantifier = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ALL || _la===FlinkSqlParser.ANY)) { + localctx.quantifier = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 976; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,108,this._ctx); + switch(la_) { + case 1: + this.state = 963; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 964; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 2: + this.state = 965; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 966; + this.expression(); + this.state = 971; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 967; + this.match(FlinkSqlParser.COMMA); + this.state = 968; + this.expression(); + this.state = 973; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 974; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + } + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 979; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 978; + this.match(FlinkSqlParser.NOT); + } + + this.state = 981; + localctx.kind = this.match(FlinkSqlParser.LIKE); + this.state = 982; + localctx.pattern = this.valueExpression(0); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 983; + this.match(FlinkSqlParser.IS); + this.state = 985; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 984; + this.match(FlinkSqlParser.NOT); + } + + this.state = 987; + localctx.kind = this.match(FlinkSqlParser.NULL); + break; + + case 9: + this.enterOuterAlt(localctx, 9); + this.state = 988; + this.match(FlinkSqlParser.IS); + this.state = 990; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 989; + this.match(FlinkSqlParser.NOT); + } + + this.state = 992; + localctx.kind = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.TRUE || _la===FlinkSqlParser.FALSE)) { + localctx.kind = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + + case 10: + this.enterOuterAlt(localctx, 10); + this.state = 993; + this.match(FlinkSqlParser.IS); + this.state = 995; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 994; + this.match(FlinkSqlParser.NOT); + } + + this.state = 997; + localctx.kind = this.match(FlinkSqlParser.DISTINCT); + this.state = 998; + this.match(FlinkSqlParser.FROM); + this.state = 999; + localctx.right = this.valueExpression(0); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ValueExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_valueExpression; + return this; +} + +ValueExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ValueExpressionContext.prototype.constructor = ValueExpressionContext; + + + +ValueExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function ValueExpressionDefaultContext(parser, ctx) { + ValueExpressionContext.call(this, parser); + ValueExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ValueExpressionDefaultContext.prototype = Object.create(ValueExpressionContext.prototype); +ValueExpressionDefaultContext.prototype.constructor = ValueExpressionDefaultContext; + +FlinkSqlParser.ValueExpressionDefaultContext = ValueExpressionDefaultContext; + +ValueExpressionDefaultContext.prototype.primaryExpression = function() { + return this.getTypedRuleContext(PrimaryExpressionContext,0); +}; +ValueExpressionDefaultContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterValueExpressionDefault(this); + } +}; + +ValueExpressionDefaultContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitValueExpressionDefault(this); + } +}; + +ValueExpressionDefaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitValueExpressionDefault(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ComparisonContext(parser, ctx) { + ValueExpressionContext.call(this, parser); + this.left = null; // ValueExpressionContext; + this.right = null; // ValueExpressionContext; + ValueExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ComparisonContext.prototype = Object.create(ValueExpressionContext.prototype); +ComparisonContext.prototype.constructor = ComparisonContext; + +FlinkSqlParser.ComparisonContext = ComparisonContext; + +ComparisonContext.prototype.comparisonOperator = function() { + return this.getTypedRuleContext(ComparisonOperatorContext,0); +}; + +ComparisonContext.prototype.valueExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ValueExpressionContext); + } else { + return this.getTypedRuleContext(ValueExpressionContext,i); + } +}; +ComparisonContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterComparison(this); + } +}; + +ComparisonContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitComparison(this); + } +}; + +ComparisonContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitComparison(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ArithmeticBinaryContext(parser, ctx) { + ValueExpressionContext.call(this, parser); + this.left = null; // ValueExpressionContext; + this.operator = null; // Token; + this.right = null; // ValueExpressionContext; + ValueExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ArithmeticBinaryContext.prototype = Object.create(ValueExpressionContext.prototype); +ArithmeticBinaryContext.prototype.constructor = ArithmeticBinaryContext; + +FlinkSqlParser.ArithmeticBinaryContext = ArithmeticBinaryContext; + +ArithmeticBinaryContext.prototype.valueExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ValueExpressionContext); + } else { + return this.getTypedRuleContext(ValueExpressionContext,i); + } +}; + +ArithmeticBinaryContext.prototype.ASTERISK_SIGN = function() { + return this.getToken(FlinkSqlParser.ASTERISK_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.SLASH_SIGN = function() { + return this.getToken(FlinkSqlParser.SLASH_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.PENCENT_SIGN = function() { + return this.getToken(FlinkSqlParser.PENCENT_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.DIV = function() { + return this.getToken(FlinkSqlParser.DIV, 0); +}; + +ArithmeticBinaryContext.prototype.ADD_SIGN = function() { + return this.getToken(FlinkSqlParser.ADD_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.DOUBLE_VERTICAL_SIGN = function() { + return this.getToken(FlinkSqlParser.DOUBLE_VERTICAL_SIGN, 0); +}; + +ArithmeticBinaryContext.prototype.BIT_AND_OP = function() { + return this.getToken(FlinkSqlParser.BIT_AND_OP, 0); +}; + +ArithmeticBinaryContext.prototype.BIT_XOR_OP = function() { + return this.getToken(FlinkSqlParser.BIT_XOR_OP, 0); +}; + +ArithmeticBinaryContext.prototype.BIT_OR_OP = function() { + return this.getToken(FlinkSqlParser.BIT_OR_OP, 0); +}; +ArithmeticBinaryContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterArithmeticBinary(this); + } +}; + +ArithmeticBinaryContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitArithmeticBinary(this); + } +}; + +ArithmeticBinaryContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitArithmeticBinary(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ArithmeticUnaryContext(parser, ctx) { + ValueExpressionContext.call(this, parser); + this.operator = null; // Token; + ValueExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ArithmeticUnaryContext.prototype = Object.create(ValueExpressionContext.prototype); +ArithmeticUnaryContext.prototype.constructor = ArithmeticUnaryContext; + +FlinkSqlParser.ArithmeticUnaryContext = ArithmeticUnaryContext; + +ArithmeticUnaryContext.prototype.valueExpression = function() { + return this.getTypedRuleContext(ValueExpressionContext,0); +}; + +ArithmeticUnaryContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +ArithmeticUnaryContext.prototype.ADD_SIGN = function() { + return this.getToken(FlinkSqlParser.ADD_SIGN, 0); +}; + +ArithmeticUnaryContext.prototype.BIT_NOT_OP = function() { + return this.getToken(FlinkSqlParser.BIT_NOT_OP, 0); +}; +ArithmeticUnaryContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterArithmeticUnary(this); + } +}; + +ArithmeticUnaryContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitArithmeticUnary(this); + } +}; + +ArithmeticUnaryContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitArithmeticUnary(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.prototype.valueExpression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new ValueExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 140; + this.enterRecursionRule(localctx, 140, FlinkSqlParser.RULE_valueExpression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1006; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,114,this._ctx); + switch(la_) { + case 1: + localctx = new ValueExpressionDefaultContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 1003; + this.primaryExpression(0); + break; + + case 2: + localctx = new ArithmeticUnaryContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1004; + localctx.operator = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 260)) & ~0x1f) == 0 && ((1 << (_la - 260)) & ((1 << (FlinkSqlParser.BIT_NOT_OP - 260)) | (1 << (FlinkSqlParser.HYPNEN_SIGN - 260)) | (1 << (FlinkSqlParser.ADD_SIGN - 260)))) !== 0))) { + localctx.operator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1005; + this.valueExpression(7); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 1029; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,116,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + this.state = 1027; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,115,this._ctx); + switch(la_) { + case 1: + localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1008; + if (!( this.precpred(this._ctx, 6))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 6)"); + } + this.state = 1009; + localctx.operator = this._input.LT(1); + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.DIV || ((((_la - 276)) & ~0x1f) == 0 && ((1 << (_la - 276)) & ((1 << (FlinkSqlParser.ASTERISK_SIGN - 276)) | (1 << (FlinkSqlParser.PENCENT_SIGN - 276)) | (1 << (FlinkSqlParser.SLASH_SIGN - 276)))) !== 0))) { + localctx.operator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1010; + localctx.right = this.valueExpression(7); + break; + + case 2: + localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1011; + if (!( this.precpred(this._ctx, 5))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 5)"); + } + this.state = 1012; + localctx.operator = this._input.LT(1); + _la = this._input.LA(1); + if(!(((((_la - 278)) & ~0x1f) == 0 && ((1 << (_la - 278)) & ((1 << (FlinkSqlParser.HYPNEN_SIGN - 278)) | (1 << (FlinkSqlParser.ADD_SIGN - 278)) | (1 << (FlinkSqlParser.DOUBLE_VERTICAL_SIGN - 278)))) !== 0))) { + localctx.operator = this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1013; + localctx.right = this.valueExpression(6); + break; + + case 3: + localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1014; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 1015; + localctx.operator = this.match(FlinkSqlParser.BIT_AND_OP); + this.state = 1016; + localctx.right = this.valueExpression(5); + break; + + case 4: + localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1017; + if (!( this.precpred(this._ctx, 3))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 3)"); + } + this.state = 1018; + localctx.operator = this.match(FlinkSqlParser.BIT_XOR_OP); + this.state = 1019; + localctx.right = this.valueExpression(4); + break; + + case 5: + localctx = new ArithmeticBinaryContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1020; + if (!( this.precpred(this._ctx, 2))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); + } + this.state = 1021; + localctx.operator = this.match(FlinkSqlParser.BIT_OR_OP); + this.state = 1022; + localctx.right = this.valueExpression(3); + break; + + case 6: + localctx = new ComparisonContext(this, new ValueExpressionContext(this, _parentctx, _parentState)); + localctx.left = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_valueExpression); + this.state = 1023; + if (!( this.precpred(this._ctx, 1))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 1)"); + } + this.state = 1024; + this.comparisonOperator(); + this.state = 1025; + localctx.right = this.valueExpression(2); + break; + + } + } + this.state = 1031; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,116,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function PrimaryExpressionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_primaryExpression; + return this; +} + +PrimaryExpressionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PrimaryExpressionContext.prototype.constructor = PrimaryExpressionContext; + + + +PrimaryExpressionContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + +function DereferenceContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +DereferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype); +DereferenceContext.prototype.constructor = DereferenceContext; + +FlinkSqlParser.DereferenceContext = DereferenceContext; + +DereferenceContext.prototype.dereferenceDefinition = function() { + return this.getTypedRuleContext(DereferenceDefinitionContext,0); +}; +DereferenceContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDereference(this); + } +}; + +DereferenceContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDereference(this); + } +}; + +DereferenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDereference(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SimpleCaseContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + this.value = null; // ExpressionContext; + this.elseExpression = null; // ExpressionContext; + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SimpleCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype); +SimpleCaseContext.prototype.constructor = SimpleCaseContext; + +FlinkSqlParser.SimpleCaseContext = SimpleCaseContext; + +SimpleCaseContext.prototype.CASE = function() { + return this.getToken(FlinkSqlParser.CASE, 0); +}; + +SimpleCaseContext.prototype.END = function() { + return this.getToken(FlinkSqlParser.END, 0); +}; + +SimpleCaseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +SimpleCaseContext.prototype.whenClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(WhenClauseContext); + } else { + return this.getTypedRuleContext(WhenClauseContext,i); + } +}; + +SimpleCaseContext.prototype.ELSE = function() { + return this.getToken(FlinkSqlParser.ELSE, 0); +}; +SimpleCaseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSimpleCase(this); + } +}; + +SimpleCaseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSimpleCase(this); + } +}; + +SimpleCaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSimpleCase(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ColumnReferenceContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ColumnReferenceContext.prototype = Object.create(PrimaryExpressionContext.prototype); +ColumnReferenceContext.prototype.constructor = ColumnReferenceContext; + +FlinkSqlParser.ColumnReferenceContext = ColumnReferenceContext; + +ColumnReferenceContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; +ColumnReferenceContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnReference(this); + } +}; + +ColumnReferenceContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnReference(this); + } +}; + +ColumnReferenceContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnReference(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function LastContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +LastContext.prototype = Object.create(PrimaryExpressionContext.prototype); +LastContext.prototype.constructor = LastContext; + +FlinkSqlParser.LastContext = LastContext; + +LastContext.prototype.LAST = function() { + return this.getToken(FlinkSqlParser.LAST, 0); +}; + +LastContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +LastContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +LastContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +LastContext.prototype.IGNORE = function() { + return this.getToken(FlinkSqlParser.IGNORE, 0); +}; + +LastContext.prototype.NULLS = function() { + return this.getToken(FlinkSqlParser.NULLS, 0); +}; +LastContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLast(this); + } +}; + +LastContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLast(this); + } +}; + +LastContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLast(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function StarContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +StarContext.prototype = Object.create(PrimaryExpressionContext.prototype); +StarContext.prototype.constructor = StarContext; + +FlinkSqlParser.StarContext = StarContext; + +StarContext.prototype.ASTERISK_SIGN = function() { + return this.getToken(FlinkSqlParser.ASTERISK_SIGN, 0); +}; + +StarContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +StarContext.prototype.DOT = function() { + return this.getToken(FlinkSqlParser.DOT, 0); +}; +StarContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterStar(this); + } +}; + +StarContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitStar(this); + } +}; + +StarContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitStar(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubscriptContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + this.value = null; // PrimaryExpressionContext; + this.index = null; // ValueExpressionContext; + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubscriptContext.prototype = Object.create(PrimaryExpressionContext.prototype); +SubscriptContext.prototype.constructor = SubscriptContext; + +FlinkSqlParser.SubscriptContext = SubscriptContext; + +SubscriptContext.prototype.LS_BRACKET = function() { + return this.getToken(FlinkSqlParser.LS_BRACKET, 0); +}; + +SubscriptContext.prototype.RS_BRACKET = function() { + return this.getToken(FlinkSqlParser.RS_BRACKET, 0); +}; + +SubscriptContext.prototype.primaryExpression = function() { + return this.getTypedRuleContext(PrimaryExpressionContext,0); +}; + +SubscriptContext.prototype.valueExpression = function() { + return this.getTypedRuleContext(ValueExpressionContext,0); +}; +SubscriptContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSubscript(this); + } +}; + +SubscriptContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSubscript(this); + } +}; + +SubscriptContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSubscript(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SubqueryExpressionContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SubqueryExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype); +SubqueryExpressionContext.prototype.constructor = SubqueryExpressionContext; + +FlinkSqlParser.SubqueryExpressionContext = SubqueryExpressionContext; + +SubqueryExpressionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +SubqueryExpressionContext.prototype.queryStatement = function() { + return this.getTypedRuleContext(QueryStatementContext,0); +}; + +SubqueryExpressionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; +SubqueryExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSubqueryExpression(this); + } +}; + +SubqueryExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSubqueryExpression(this); + } +}; + +SubqueryExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSubqueryExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function CastContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +CastContext.prototype = Object.create(PrimaryExpressionContext.prototype); +CastContext.prototype.constructor = CastContext; + +FlinkSqlParser.CastContext = CastContext; + +CastContext.prototype.CAST = function() { + return this.getToken(FlinkSqlParser.CAST, 0); +}; + +CastContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +CastContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +CastContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +CastContext.prototype.columnType = function() { + return this.getTypedRuleContext(ColumnTypeContext,0); +}; + +CastContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; +CastContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterCast(this); + } +}; + +CastContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitCast(this); + } +}; + +CastContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitCast(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ConstantDefaultContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ConstantDefaultContext.prototype = Object.create(PrimaryExpressionContext.prototype); +ConstantDefaultContext.prototype.constructor = ConstantDefaultContext; + +FlinkSqlParser.ConstantDefaultContext = ConstantDefaultContext; + +ConstantDefaultContext.prototype.constant = function() { + return this.getTypedRuleContext(ConstantContext,0); +}; +ConstantDefaultContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterConstantDefault(this); + } +}; + +ConstantDefaultContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitConstantDefault(this); + } +}; + +ConstantDefaultContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitConstantDefault(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function ParenthesizedExpressionContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ParenthesizedExpressionContext.prototype = Object.create(PrimaryExpressionContext.prototype); +ParenthesizedExpressionContext.prototype.constructor = ParenthesizedExpressionContext; + +FlinkSqlParser.ParenthesizedExpressionContext = ParenthesizedExpressionContext; + +ParenthesizedExpressionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +ParenthesizedExpressionContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +ParenthesizedExpressionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; +ParenthesizedExpressionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterParenthesizedExpression(this); + } +}; + +ParenthesizedExpressionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitParenthesizedExpression(this); + } +}; + +ParenthesizedExpressionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitParenthesizedExpression(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FunctionCallContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FunctionCallContext.prototype = Object.create(PrimaryExpressionContext.prototype); +FunctionCallContext.prototype.constructor = FunctionCallContext; + +FlinkSqlParser.FunctionCallContext = FunctionCallContext; + +FunctionCallContext.prototype.functionName = function() { + return this.getTypedRuleContext(FunctionNameContext,0); +}; + +FunctionCallContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +FunctionCallContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +FunctionCallContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +FunctionCallContext.prototype.setQuantifier = function() { + return this.getTypedRuleContext(SetQuantifierContext,0); +}; + +FunctionCallContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + +FunctionCallContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFunctionCall(this); + } +}; + +FunctionCallContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFunctionCall(this); + } +}; + +FunctionCallContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFunctionCall(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function SearchedCaseContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + this.elseExpression = null; // ExpressionContext; + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +SearchedCaseContext.prototype = Object.create(PrimaryExpressionContext.prototype); +SearchedCaseContext.prototype.constructor = SearchedCaseContext; + +FlinkSqlParser.SearchedCaseContext = SearchedCaseContext; + +SearchedCaseContext.prototype.CASE = function() { + return this.getToken(FlinkSqlParser.CASE, 0); +}; + +SearchedCaseContext.prototype.END = function() { + return this.getToken(FlinkSqlParser.END, 0); +}; + +SearchedCaseContext.prototype.whenClause = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(WhenClauseContext); + } else { + return this.getTypedRuleContext(WhenClauseContext,i); + } +}; + +SearchedCaseContext.prototype.ELSE = function() { + return this.getToken(FlinkSqlParser.ELSE, 0); +}; + +SearchedCaseContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; +SearchedCaseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSearchedCase(this); + } +}; + +SearchedCaseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSearchedCase(this); + } +}; + +SearchedCaseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSearchedCase(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function PositionContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + this.substr = null; // ValueExpressionContext; + this.str = null; // ValueExpressionContext; + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +PositionContext.prototype = Object.create(PrimaryExpressionContext.prototype); +PositionContext.prototype.constructor = PositionContext; + +FlinkSqlParser.PositionContext = PositionContext; + +PositionContext.prototype.POSITION = function() { + return this.getToken(FlinkSqlParser.POSITION, 0); +}; + +PositionContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +PositionContext.prototype.IN = function() { + return this.getToken(FlinkSqlParser.IN, 0); +}; + +PositionContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +PositionContext.prototype.valueExpression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ValueExpressionContext); + } else { + return this.getTypedRuleContext(ValueExpressionContext,i); + } +}; +PositionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterPosition(this); + } +}; + +PositionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitPosition(this); + } +}; + +PositionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitPosition(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function FirstContext(parser, ctx) { + PrimaryExpressionContext.call(this, parser); + PrimaryExpressionContext.prototype.copyFrom.call(this, ctx); + return this; +} + +FirstContext.prototype = Object.create(PrimaryExpressionContext.prototype); +FirstContext.prototype.constructor = FirstContext; + +FlinkSqlParser.FirstContext = FirstContext; + +FirstContext.prototype.FIRST = function() { + return this.getToken(FlinkSqlParser.FIRST, 0); +}; + +FirstContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +FirstContext.prototype.expression = function() { + return this.getTypedRuleContext(ExpressionContext,0); +}; + +FirstContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +FirstContext.prototype.IGNORE = function() { + return this.getToken(FlinkSqlParser.IGNORE, 0); +}; + +FirstContext.prototype.NULLS = function() { + return this.getToken(FlinkSqlParser.NULLS, 0); +}; +FirstContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFirst(this); + } +}; + +FirstContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFirst(this); + } +}; + +FirstContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFirst(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.prototype.primaryExpression = function(_p) { + if(_p===undefined) { + _p = 0; + } + var _parentctx = this._ctx; + var _parentState = this.state; + var localctx = new PrimaryExpressionContext(this, this._ctx, _parentState); + var _prevctx = localctx; + var _startState = 142; + this.enterRecursionRule(localctx, 142, FlinkSqlParser.RULE_primaryExpression, _p); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1123; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); + switch(la_) { + case 1: + localctx = new SearchedCaseContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + + this.state = 1033; + this.match(FlinkSqlParser.CASE); + this.state = 1035; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 1034; + this.whenClause(); + this.state = 1037; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===FlinkSqlParser.WHEN); + this.state = 1041; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.ELSE) { + this.state = 1039; + this.match(FlinkSqlParser.ELSE); + this.state = 1040; + localctx.elseExpression = this.expression(); + } + + this.state = 1043; + this.match(FlinkSqlParser.END); + break; + + case 2: + localctx = new SimpleCaseContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1045; + this.match(FlinkSqlParser.CASE); + this.state = 1046; + localctx.value = this.expression(); + this.state = 1048; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 1047; + this.whenClause(); + this.state = 1050; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===FlinkSqlParser.WHEN); + this.state = 1054; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.ELSE) { + this.state = 1052; + this.match(FlinkSqlParser.ELSE); + this.state = 1053; + localctx.elseExpression = this.expression(); + } + + this.state = 1056; + this.match(FlinkSqlParser.END); + break; + + case 3: + localctx = new CastContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1058; + this.match(FlinkSqlParser.CAST); + this.state = 1059; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1060; + this.expression(); + this.state = 1061; + this.match(FlinkSqlParser.AS); + this.state = 1062; + this.columnType(); + this.state = 1063; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 4: + localctx = new FirstContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1065; + this.match(FlinkSqlParser.FIRST); + this.state = 1066; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1067; + this.expression(); + this.state = 1070; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IGNORE) { + this.state = 1068; + this.match(FlinkSqlParser.IGNORE); + this.state = 1069; + this.match(FlinkSqlParser.NULLS); + } + + this.state = 1072; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 5: + localctx = new LastContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1074; + this.match(FlinkSqlParser.LAST); + this.state = 1075; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1076; + this.expression(); + this.state = 1079; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.IGNORE) { + this.state = 1077; + this.match(FlinkSqlParser.IGNORE); + this.state = 1078; + this.match(FlinkSqlParser.NULLS); + } + + this.state = 1081; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 6: + localctx = new PositionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1083; + this.match(FlinkSqlParser.POSITION); + this.state = 1084; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1085; + localctx.substr = this.valueExpression(0); + this.state = 1086; + this.match(FlinkSqlParser.IN); + this.state = 1087; + localctx.str = this.valueExpression(0); + this.state = 1088; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 7: + localctx = new ConstantDefaultContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1090; + this.constant(); + break; + + case 8: + localctx = new StarContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1091; + this.match(FlinkSqlParser.ASTERISK_SIGN); + break; + + case 9: + localctx = new StarContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1092; + this.uid(); + this.state = 1093; + this.match(FlinkSqlParser.DOT); + this.state = 1094; + this.match(FlinkSqlParser.ASTERISK_SIGN); + break; + + case 10: + localctx = new SubqueryExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1096; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1097; + this.queryStatement(0); + this.state = 1098; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 11: + localctx = new FunctionCallContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1100; + this.functionName(); + this.state = 1101; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1113; + this._errHandler.sync(this); + _la = this._input.LA(1); + if((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << FlinkSqlParser.SELECT) | (1 << FlinkSqlParser.FROM) | (1 << FlinkSqlParser.ADD) | (1 << FlinkSqlParser.AS) | (1 << FlinkSqlParser.ALL) | (1 << FlinkSqlParser.ANY) | (1 << FlinkSqlParser.DISTINCT) | (1 << FlinkSqlParser.WHERE) | (1 << FlinkSqlParser.GROUP) | (1 << FlinkSqlParser.BY) | (1 << FlinkSqlParser.GROUPING) | (1 << FlinkSqlParser.SETS) | (1 << FlinkSqlParser.CUBE) | (1 << FlinkSqlParser.ROLLUP) | (1 << FlinkSqlParser.ORDER) | (1 << FlinkSqlParser.HAVING) | (1 << FlinkSqlParser.LIMIT) | (1 << FlinkSqlParser.AT) | (1 << FlinkSqlParser.OR) | (1 << FlinkSqlParser.AND) | (1 << FlinkSqlParser.IN) | (1 << FlinkSqlParser.NOT) | (1 << FlinkSqlParser.NO) | (1 << FlinkSqlParser.EXISTS) | (1 << FlinkSqlParser.BETWEEN) | (1 << FlinkSqlParser.LIKE) | (1 << FlinkSqlParser.RLIKE) | (1 << FlinkSqlParser.IS))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (FlinkSqlParser.TRUE - 32)) | (1 << (FlinkSqlParser.FALSE - 32)) | (1 << (FlinkSqlParser.NULLS - 32)) | (1 << (FlinkSqlParser.ASC - 32)) | (1 << (FlinkSqlParser.DESC - 32)) | (1 << (FlinkSqlParser.FOR - 32)) | (1 << (FlinkSqlParser.INTERVAL - 32)) | (1 << (FlinkSqlParser.CASE - 32)) | (1 << (FlinkSqlParser.WHEN - 32)) | (1 << (FlinkSqlParser.THEN - 32)) | (1 << (FlinkSqlParser.ELSE - 32)) | (1 << (FlinkSqlParser.END - 32)) | (1 << (FlinkSqlParser.JOIN - 32)) | (1 << (FlinkSqlParser.CROSS - 32)) | (1 << (FlinkSqlParser.OUTER - 32)) | (1 << (FlinkSqlParser.INNER - 32)) | (1 << (FlinkSqlParser.LEFT - 32)) | (1 << (FlinkSqlParser.SEMI - 32)) | (1 << (FlinkSqlParser.RIGHT - 32)) | (1 << (FlinkSqlParser.FULL - 32)) | (1 << (FlinkSqlParser.NATURAL - 32)) | (1 << (FlinkSqlParser.ON - 32)) | (1 << (FlinkSqlParser.PIVOT - 32)) | (1 << (FlinkSqlParser.LATERAL - 32)) | (1 << (FlinkSqlParser.WINDOW - 32)) | (1 << (FlinkSqlParser.OVER - 32)) | (1 << (FlinkSqlParser.PARTITION - 32)) | (1 << (FlinkSqlParser.RANGE - 32)) | (1 << (FlinkSqlParser.ROWS - 32)) | (1 << (FlinkSqlParser.UNBOUNDED - 32)) | (1 << (FlinkSqlParser.PRECEDING - 32)) | (1 << (FlinkSqlParser.FOLLOWING - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (FlinkSqlParser.CURRENT - 64)) | (1 << (FlinkSqlParser.FIRST - 64)) | (1 << (FlinkSqlParser.AFTER - 64)) | (1 << (FlinkSqlParser.LAST - 64)) | (1 << (FlinkSqlParser.WITH - 64)) | (1 << (FlinkSqlParser.VALUES - 64)) | (1 << (FlinkSqlParser.CREATE - 64)) | (1 << (FlinkSqlParser.TABLE - 64)) | (1 << (FlinkSqlParser.DIRECTORY - 64)) | (1 << (FlinkSqlParser.VIEW - 64)) | (1 << (FlinkSqlParser.REPLACE - 64)) | (1 << (FlinkSqlParser.INSERT - 64)) | (1 << (FlinkSqlParser.DELETE - 64)) | (1 << (FlinkSqlParser.INTO - 64)) | (1 << (FlinkSqlParser.DESCRIBE - 64)) | (1 << (FlinkSqlParser.EXPLAIN - 64)) | (1 << (FlinkSqlParser.FORMAT - 64)) | (1 << (FlinkSqlParser.LOGICAL - 64)) | (1 << (FlinkSqlParser.CODEGEN - 64)) | (1 << (FlinkSqlParser.COST - 64)) | (1 << (FlinkSqlParser.CAST - 64)) | (1 << (FlinkSqlParser.SHOW - 64)) | (1 << (FlinkSqlParser.TABLES - 64)) | (1 << (FlinkSqlParser.COLUMNS - 64)) | (1 << (FlinkSqlParser.COLUMN - 64)) | (1 << (FlinkSqlParser.USE - 64)) | (1 << (FlinkSqlParser.PARTITIONS - 64)) | (1 << (FlinkSqlParser.FUNCTIONS - 64)) | (1 << (FlinkSqlParser.DROP - 64)) | (1 << (FlinkSqlParser.UNION - 64)) | (1 << (FlinkSqlParser.EXCEPT - 64)) | (1 << (FlinkSqlParser.SETMINUS - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (FlinkSqlParser.INTERSECT - 96)) | (1 << (FlinkSqlParser.TO - 96)) | (1 << (FlinkSqlParser.TABLESAMPLE - 96)) | (1 << (FlinkSqlParser.STRATIFY - 96)) | (1 << (FlinkSqlParser.ALTER - 96)) | (1 << (FlinkSqlParser.RENAME - 96)) | (1 << (FlinkSqlParser.STRUCT - 96)) | (1 << (FlinkSqlParser.COMMENT - 96)) | (1 << (FlinkSqlParser.SET - 96)) | (1 << (FlinkSqlParser.RESET - 96)) | (1 << (FlinkSqlParser.DATA - 96)) | (1 << (FlinkSqlParser.START - 96)) | (1 << (FlinkSqlParser.TRANSACTION - 96)) | (1 << (FlinkSqlParser.COMMIT - 96)) | (1 << (FlinkSqlParser.ROLLBACK - 96)) | (1 << (FlinkSqlParser.MACRO - 96)) | (1 << (FlinkSqlParser.IGNORE - 96)) | (1 << (FlinkSqlParser.BOTH - 96)) | (1 << (FlinkSqlParser.LEADING - 96)) | (1 << (FlinkSqlParser.TRAILING - 96)) | (1 << (FlinkSqlParser.IF - 96)) | (1 << (FlinkSqlParser.POSITION - 96)) | (1 << (FlinkSqlParser.EXTRACT - 96)) | (1 << (FlinkSqlParser.MINUS - 96)) | (1 << (FlinkSqlParser.DIV - 96)) | (1 << (FlinkSqlParser.PERCENTLIT - 96)) | (1 << (FlinkSqlParser.BUCKET - 96)) | (1 << (FlinkSqlParser.OUT - 96)) | (1 << (FlinkSqlParser.OF - 96)) | (1 << (FlinkSqlParser.SORT - 96)) | (1 << (FlinkSqlParser.CLUSTER - 96)) | (1 << (FlinkSqlParser.DISTRIBUTE - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (FlinkSqlParser.OVERWRITE - 128)) | (1 << (FlinkSqlParser.TRANSFORM - 128)) | (1 << (FlinkSqlParser.REDUCE - 128)) | (1 << (FlinkSqlParser.USING - 128)) | (1 << (FlinkSqlParser.SERDE - 128)) | (1 << (FlinkSqlParser.SERDEPROPERTIES - 128)) | (1 << (FlinkSqlParser.RECORDREADER - 128)) | (1 << (FlinkSqlParser.RECORDWRITER - 128)) | (1 << (FlinkSqlParser.DELIMITED - 128)) | (1 << (FlinkSqlParser.FIELDS - 128)) | (1 << (FlinkSqlParser.TERMINATED - 128)) | (1 << (FlinkSqlParser.COLLECTION - 128)) | (1 << (FlinkSqlParser.ITEMS - 128)) | (1 << (FlinkSqlParser.KEYS - 128)) | (1 << (FlinkSqlParser.ESCAPED - 128)) | (1 << (FlinkSqlParser.LINES - 128)) | (1 << (FlinkSqlParser.SEPARATED - 128)) | (1 << (FlinkSqlParser.FUNCTION - 128)) | (1 << (FlinkSqlParser.EXTENDED - 128)) | (1 << (FlinkSqlParser.REFRESH - 128)) | (1 << (FlinkSqlParser.CLEAR - 128)) | (1 << (FlinkSqlParser.CACHE - 128)) | (1 << (FlinkSqlParser.UNCACHE - 128)) | (1 << (FlinkSqlParser.LAZY - 128)) | (1 << (FlinkSqlParser.FORMATTED - 128)) | (1 << (FlinkSqlParser.GLOBAL - 128)) | (1 << (FlinkSqlParser.TEMPORARY - 128)) | (1 << (FlinkSqlParser.OPTIONS - 128)) | (1 << (FlinkSqlParser.UNSET - 128)) | (1 << (FlinkSqlParser.TBLPROPERTIES - 128)) | (1 << (FlinkSqlParser.DBPROPERTIES - 128)) | (1 << (FlinkSqlParser.BUCKETS - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (FlinkSqlParser.SKEWED - 160)) | (1 << (FlinkSqlParser.STORED - 160)) | (1 << (FlinkSqlParser.DIRECTORIES - 160)) | (1 << (FlinkSqlParser.LOCATION - 160)) | (1 << (FlinkSqlParser.EXCHANGE - 160)) | (1 << (FlinkSqlParser.ARCHIVE - 160)) | (1 << (FlinkSqlParser.UNARCHIVE - 160)) | (1 << (FlinkSqlParser.FILEFORMAT - 160)) | (1 << (FlinkSqlParser.TOUCH - 160)) | (1 << (FlinkSqlParser.COMPACT - 160)) | (1 << (FlinkSqlParser.CONCATENATE - 160)) | (1 << (FlinkSqlParser.CHANGE - 160)) | (1 << (FlinkSqlParser.CASCADE - 160)) | (1 << (FlinkSqlParser.CONSTRAINT - 160)) | (1 << (FlinkSqlParser.RESTRICT - 160)) | (1 << (FlinkSqlParser.CLUSTERED - 160)) | (1 << (FlinkSqlParser.SORTED - 160)) | (1 << (FlinkSqlParser.PURGE - 160)) | (1 << (FlinkSqlParser.INPUTFORMAT - 160)) | (1 << (FlinkSqlParser.OUTPUTFORMAT - 160)) | (1 << (FlinkSqlParser.DATABASE - 160)) | (1 << (FlinkSqlParser.DATABASES - 160)) | (1 << (FlinkSqlParser.DFS - 160)) | (1 << (FlinkSqlParser.TRUNCATE - 160)) | (1 << (FlinkSqlParser.ANALYZE - 160)) | (1 << (FlinkSqlParser.COMPUTE - 160)) | (1 << (FlinkSqlParser.LIST - 160)) | (1 << (FlinkSqlParser.STATISTICS - 160)) | (1 << (FlinkSqlParser.PARTITIONED - 160)) | (1 << (FlinkSqlParser.EXTERNAL - 160)) | (1 << (FlinkSqlParser.DEFINED - 160)) | (1 << (FlinkSqlParser.REVOKE - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (FlinkSqlParser.GRANT - 192)) | (1 << (FlinkSqlParser.LOCK - 192)) | (1 << (FlinkSqlParser.UNLOCK - 192)) | (1 << (FlinkSqlParser.MSCK - 192)) | (1 << (FlinkSqlParser.REPAIR - 192)) | (1 << (FlinkSqlParser.RECOVER - 192)) | (1 << (FlinkSqlParser.EXPORT - 192)) | (1 << (FlinkSqlParser.IMPORT - 192)) | (1 << (FlinkSqlParser.LOAD - 192)) | (1 << (FlinkSqlParser.ROLE - 192)) | (1 << (FlinkSqlParser.ROLES - 192)) | (1 << (FlinkSqlParser.COMPACTIONS - 192)) | (1 << (FlinkSqlParser.PRINCIPALS - 192)) | (1 << (FlinkSqlParser.TRANSACTIONS - 192)) | (1 << (FlinkSqlParser.INDEX - 192)) | (1 << (FlinkSqlParser.INDEXES - 192)) | (1 << (FlinkSqlParser.LOCKS - 192)) | (1 << (FlinkSqlParser.OPTION - 192)) | (1 << (FlinkSqlParser.ANTI - 192)) | (1 << (FlinkSqlParser.LOCAL - 192)) | (1 << (FlinkSqlParser.INPATH - 192)) | (1 << (FlinkSqlParser.WATERMARK - 192)) | (1 << (FlinkSqlParser.UNNEST - 192)) | (1 << (FlinkSqlParser.MATCH - 192)) | (1 << (FlinkSqlParser.NEXT - 192)) | (1 << (FlinkSqlParser.WITHIN - 192)) | (1 << (FlinkSqlParser.WS - 192)) | (1 << (FlinkSqlParser.SYSTEM - 192)) | (1 << (FlinkSqlParser.INCLUDING - 192)) | (1 << (FlinkSqlParser.EXCLUDING - 192)) | (1 << (FlinkSqlParser.CONSTRAINTS - 192)) | (1 << (FlinkSqlParser.GENERATED - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (FlinkSqlParser.CATALOG - 224)) | (1 << (FlinkSqlParser.LANGUAGE - 224)) | (1 << (FlinkSqlParser.CATALOGS - 224)) | (1 << (FlinkSqlParser.VIEWS - 224)) | (1 << (FlinkSqlParser.PRIMARY - 224)) | (1 << (FlinkSqlParser.KEY - 224)) | (1 << (FlinkSqlParser.PERIOD - 224)) | (1 << (FlinkSqlParser.SYSTEM_TIME - 224)) | (1 << (FlinkSqlParser.STRING - 224)) | (1 << (FlinkSqlParser.ARRAY - 224)) | (1 << (FlinkSqlParser.MAP - 224)) | (1 << (FlinkSqlParser.CHAR - 224)) | (1 << (FlinkSqlParser.VARCHAR - 224)) | (1 << (FlinkSqlParser.BINARY - 224)) | (1 << (FlinkSqlParser.VARBINARY - 224)) | (1 << (FlinkSqlParser.BYTES - 224)) | (1 << (FlinkSqlParser.DECIMAL - 224)) | (1 << (FlinkSqlParser.TINYINT - 224)) | (1 << (FlinkSqlParser.SMALLINT - 224)) | (1 << (FlinkSqlParser.INT - 224)) | (1 << (FlinkSqlParser.BIGINT - 224)) | (1 << (FlinkSqlParser.FLOAT - 224)) | (1 << (FlinkSqlParser.DOUBLE - 224)) | (1 << (FlinkSqlParser.DATE - 224)) | (1 << (FlinkSqlParser.TIME - 224)) | (1 << (FlinkSqlParser.TIMESTAMP - 224)) | (1 << (FlinkSqlParser.MULTISET - 224)) | (1 << (FlinkSqlParser.BOOLEAN - 224)) | (1 << (FlinkSqlParser.RAW - 224)) | (1 << (FlinkSqlParser.ROW - 224)) | (1 << (FlinkSqlParser.NULL - 224)) | (1 << (FlinkSqlParser.DATETIME - 224)))) !== 0) || ((((_la - 260)) & ~0x1f) == 0 && ((1 << (_la - 260)) & ((1 << (FlinkSqlParser.BIT_NOT_OP - 260)) | (1 << (FlinkSqlParser.LR_BRACKET - 260)) | (1 << (FlinkSqlParser.ASTERISK_SIGN - 260)) | (1 << (FlinkSqlParser.HYPNEN_SIGN - 260)) | (1 << (FlinkSqlParser.ADD_SIGN - 260)) | (1 << (FlinkSqlParser.STRING_LITERAL - 260)) | (1 << (FlinkSqlParser.DIG_LITERAL - 260)) | (1 << (FlinkSqlParser.REAL_LITERAL - 260)) | (1 << (FlinkSqlParser.BIT_STRING - 260)) | (1 << (FlinkSqlParser.ID_LITERAL - 260)))) !== 0)) { + this.state = 1103; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,123,this._ctx); + if(la_===1) { + this.state = 1102; + this.setQuantifier(); + + } + this.state = 1105; + this.expression(); + this.state = 1110; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 1106; + this.match(FlinkSqlParser.COMMA); + this.state = 1107; + this.expression(); + this.state = 1112; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } + + this.state = 1115; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + case 12: + localctx = new ColumnReferenceContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1117; + this.identifier(); + break; + + case 13: + localctx = new DereferenceContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1118; + this.dereferenceDefinition(); + break; + + case 14: + localctx = new ParenthesizedExpressionContext(this, localctx); + this._ctx = localctx; + _prevctx = localctx; + this.state = 1119; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1120; + this.expression(); + this.state = 1121; + this.match(FlinkSqlParser.RR_BRACKET); + break; + + } + this._ctx.stop = this._input.LT(-1); + this.state = 1132; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,127,this._ctx) + while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1) { + if(this._parseListeners!==null) { + this.triggerExitRuleEvent(); + } + _prevctx = localctx; + localctx = new SubscriptContext(this, new PrimaryExpressionContext(this, _parentctx, _parentState)); + localctx.value = _prevctx; + this.pushNewRecursionContext(localctx, _startState, FlinkSqlParser.RULE_primaryExpression); + this.state = 1125; + if (!( this.precpred(this._ctx, 4))) { + throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 4)"); + } + this.state = 1126; + this.match(FlinkSqlParser.LS_BRACKET); + this.state = 1127; + localctx.index = this.valueExpression(0); + this.state = 1128; + this.match(FlinkSqlParser.RS_BRACKET); + } + this.state = 1134; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,127,this._ctx); + } + + } catch( error) { + if(error instanceof antlr4.error.RecognitionException) { + localctx.exception = error; + this._errHandler.reportError(this, error); + this._errHandler.recover(this, error); + } else { + throw error; + } + } finally { + this.unrollRecursionContexts(_parentctx) + } + return localctx; +}; + + +function FunctionNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_functionName; + return this; +} + +FunctionNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FunctionNameContext.prototype.constructor = FunctionNameContext; + +FunctionNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +FunctionNameContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFunctionName(this); + } +}; + +FunctionNameContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFunctionName(this); + } +}; + +FunctionNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFunctionName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.FunctionNameContext = FunctionNameContext; + +FlinkSqlParser.prototype.functionName = function() { + + var localctx = new FunctionNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 144, FlinkSqlParser.RULE_functionName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1135; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DereferenceDefinitionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_dereferenceDefinition; + return this; +} + +DereferenceDefinitionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DereferenceDefinitionContext.prototype.constructor = DereferenceDefinitionContext; + +DereferenceDefinitionContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +DereferenceDefinitionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDereferenceDefinition(this); + } +}; + +DereferenceDefinitionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDereferenceDefinition(this); + } +}; + +DereferenceDefinitionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDereferenceDefinition(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DereferenceDefinitionContext = DereferenceDefinitionContext; + +FlinkSqlParser.prototype.dereferenceDefinition = function() { + + var localctx = new DereferenceDefinitionContext(this, this._ctx, this.state); + this.enterRule(localctx, 146, FlinkSqlParser.RULE_dereferenceDefinition); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1137; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QualifiedNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_qualifiedName; + return this; +} + +QualifiedNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QualifiedNameContext.prototype.constructor = QualifiedNameContext; + +QualifiedNameContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +QualifiedNameContext.prototype.dereferenceDefinition = function() { + return this.getTypedRuleContext(DereferenceDefinitionContext,0); +}; + +QualifiedNameContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterQualifiedName(this); + } +}; + +QualifiedNameContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitQualifiedName(this); + } +}; + +QualifiedNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitQualifiedName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.QualifiedNameContext = QualifiedNameContext; + +FlinkSqlParser.prototype.qualifiedName = function() { + + var localctx = new QualifiedNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 148, FlinkSqlParser.RULE_qualifiedName); + try { + this.state = 1141; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,128,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1139; + this.identifier(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1140; + this.dereferenceDefinition(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IntervalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_interval; + return this; +} + +IntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IntervalContext.prototype.constructor = IntervalContext; + +IntervalContext.prototype.INTERVAL = function() { + return this.getToken(FlinkSqlParser.INTERVAL, 0); +}; + +IntervalContext.prototype.errorCapturingMultiUnitsInterval = function() { + return this.getTypedRuleContext(ErrorCapturingMultiUnitsIntervalContext,0); +}; + +IntervalContext.prototype.errorCapturingUnitToUnitInterval = function() { + return this.getTypedRuleContext(ErrorCapturingUnitToUnitIntervalContext,0); +}; + +IntervalContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterInterval(this); + } +}; + +IntervalContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitInterval(this); + } +}; + +IntervalContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitInterval(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IntervalContext = IntervalContext; + +FlinkSqlParser.prototype.interval = function() { + + var localctx = new IntervalContext(this, this._ctx, this.state); + this.enterRule(localctx, 150, FlinkSqlParser.RULE_interval); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1143; + this.match(FlinkSqlParser.INTERVAL); + this.state = 1146; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,129,this._ctx); + if(la_===1) { + this.state = 1144; + this.errorCapturingMultiUnitsInterval(); + + } else if(la_===2) { + this.state = 1145; + this.errorCapturingUnitToUnitInterval(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ErrorCapturingMultiUnitsIntervalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_errorCapturingMultiUnitsInterval; + return this; +} + +ErrorCapturingMultiUnitsIntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ErrorCapturingMultiUnitsIntervalContext.prototype.constructor = ErrorCapturingMultiUnitsIntervalContext; + +ErrorCapturingMultiUnitsIntervalContext.prototype.multiUnitsInterval = function() { + return this.getTypedRuleContext(MultiUnitsIntervalContext,0); +}; + +ErrorCapturingMultiUnitsIntervalContext.prototype.unitToUnitInterval = function() { + return this.getTypedRuleContext(UnitToUnitIntervalContext,0); +}; + +ErrorCapturingMultiUnitsIntervalContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterErrorCapturingMultiUnitsInterval(this); + } +}; + +ErrorCapturingMultiUnitsIntervalContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitErrorCapturingMultiUnitsInterval(this); + } +}; + +ErrorCapturingMultiUnitsIntervalContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitErrorCapturingMultiUnitsInterval(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ErrorCapturingMultiUnitsIntervalContext = ErrorCapturingMultiUnitsIntervalContext; + +FlinkSqlParser.prototype.errorCapturingMultiUnitsInterval = function() { + + var localctx = new ErrorCapturingMultiUnitsIntervalContext(this, this._ctx, this.state); + this.enterRule(localctx, 152, FlinkSqlParser.RULE_errorCapturingMultiUnitsInterval); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1148; + this.multiUnitsInterval(); + this.state = 1150; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,130,this._ctx); + if(la_===1) { + this.state = 1149; + this.unitToUnitInterval(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MultiUnitsIntervalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_multiUnitsInterval; + return this; +} + +MultiUnitsIntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MultiUnitsIntervalContext.prototype.constructor = MultiUnitsIntervalContext; + +MultiUnitsIntervalContext.prototype.intervalValue = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IntervalValueContext); + } else { + return this.getTypedRuleContext(IntervalValueContext,i); + } +}; + +MultiUnitsIntervalContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; + +MultiUnitsIntervalContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterMultiUnitsInterval(this); + } +}; + +MultiUnitsIntervalContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitMultiUnitsInterval(this); + } +}; + +MultiUnitsIntervalContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitMultiUnitsInterval(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.MultiUnitsIntervalContext = MultiUnitsIntervalContext; + +FlinkSqlParser.prototype.multiUnitsInterval = function() { + + var localctx = new MultiUnitsIntervalContext(this, this._ctx, this.state); + this.enterRule(localctx, 154, FlinkSqlParser.RULE_multiUnitsInterval); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1155; + this._errHandler.sync(this); + var _alt = 1; + do { + switch (_alt) { + case 1: + this.state = 1152; + this.intervalValue(); + this.state = 1153; + this.identifier(); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + this.state = 1157; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,131, this._ctx); + } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ErrorCapturingUnitToUnitIntervalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_errorCapturingUnitToUnitInterval; + this.body = null; // UnitToUnitIntervalContext + this.error1 = null; // MultiUnitsIntervalContext + this.error2 = null; // UnitToUnitIntervalContext + return this; +} + +ErrorCapturingUnitToUnitIntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ErrorCapturingUnitToUnitIntervalContext.prototype.constructor = ErrorCapturingUnitToUnitIntervalContext; + +ErrorCapturingUnitToUnitIntervalContext.prototype.unitToUnitInterval = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UnitToUnitIntervalContext); + } else { + return this.getTypedRuleContext(UnitToUnitIntervalContext,i); + } +}; + +ErrorCapturingUnitToUnitIntervalContext.prototype.multiUnitsInterval = function() { + return this.getTypedRuleContext(MultiUnitsIntervalContext,0); +}; + +ErrorCapturingUnitToUnitIntervalContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterErrorCapturingUnitToUnitInterval(this); + } +}; + +ErrorCapturingUnitToUnitIntervalContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitErrorCapturingUnitToUnitInterval(this); + } +}; + +ErrorCapturingUnitToUnitIntervalContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitErrorCapturingUnitToUnitInterval(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ErrorCapturingUnitToUnitIntervalContext = ErrorCapturingUnitToUnitIntervalContext; + +FlinkSqlParser.prototype.errorCapturingUnitToUnitInterval = function() { + + var localctx = new ErrorCapturingUnitToUnitIntervalContext(this, this._ctx, this.state); + this.enterRule(localctx, 156, FlinkSqlParser.RULE_errorCapturingUnitToUnitInterval); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1159; + localctx.body = this.unitToUnitInterval(); + this.state = 1162; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,132,this._ctx); + if(la_===1) { + this.state = 1160; + localctx.error1 = this.multiUnitsInterval(); + + } else if(la_===2) { + this.state = 1161; + localctx.error2 = this.unitToUnitInterval(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnitToUnitIntervalContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_unitToUnitInterval; + this.value = null; // IntervalValueContext + this.from = null; // IdentifierContext + this.to = null; // IdentifierContext + return this; +} + +UnitToUnitIntervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnitToUnitIntervalContext.prototype.constructor = UnitToUnitIntervalContext; + +UnitToUnitIntervalContext.prototype.TO = function() { + return this.getToken(FlinkSqlParser.TO, 0); +}; + +UnitToUnitIntervalContext.prototype.intervalValue = function() { + return this.getTypedRuleContext(IntervalValueContext,0); +}; + +UnitToUnitIntervalContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; + +UnitToUnitIntervalContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUnitToUnitInterval(this); + } +}; + +UnitToUnitIntervalContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUnitToUnitInterval(this); + } +}; + +UnitToUnitIntervalContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUnitToUnitInterval(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UnitToUnitIntervalContext = UnitToUnitIntervalContext; + +FlinkSqlParser.prototype.unitToUnitInterval = function() { + + var localctx = new UnitToUnitIntervalContext(this, this._ctx, this.state); + this.enterRule(localctx, 158, FlinkSqlParser.RULE_unitToUnitInterval); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1164; + localctx.value = this.intervalValue(); + this.state = 1165; + localctx.from = this.identifier(); + this.state = 1166; + this.match(FlinkSqlParser.TO); + this.state = 1167; + localctx.to = this.identifier(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IntervalValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_intervalValue; + return this; +} + +IntervalValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IntervalValueContext.prototype.constructor = IntervalValueContext; + +IntervalValueContext.prototype.DIG_LITERAL = function() { + return this.getToken(FlinkSqlParser.DIG_LITERAL, 0); +}; + +IntervalValueContext.prototype.REAL_LITERAL = function() { + return this.getToken(FlinkSqlParser.REAL_LITERAL, 0); +}; + +IntervalValueContext.prototype.ADD_SIGN = function() { + return this.getToken(FlinkSqlParser.ADD_SIGN, 0); +}; + +IntervalValueContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +IntervalValueContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +IntervalValueContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIntervalValue(this); + } +}; + +IntervalValueContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIntervalValue(this); + } +}; + +IntervalValueContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIntervalValue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IntervalValueContext = IntervalValueContext; + +FlinkSqlParser.prototype.intervalValue = function() { + + var localctx = new IntervalValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 160, FlinkSqlParser.RULE_intervalValue); + var _la = 0; // Token type + try { + this.state = 1174; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.HYPNEN_SIGN: + case FlinkSqlParser.ADD_SIGN: + case FlinkSqlParser.DIG_LITERAL: + case FlinkSqlParser.REAL_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 1170; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.HYPNEN_SIGN || _la===FlinkSqlParser.ADD_SIGN) { + this.state = 1169; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.HYPNEN_SIGN || _la===FlinkSqlParser.ADD_SIGN)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + + this.state = 1172; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.DIG_LITERAL || _la===FlinkSqlParser.REAL_LITERAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + break; + case FlinkSqlParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 2); + this.state = 1173; + this.match(FlinkSqlParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ColumnAliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_columnAlias; + return this; +} + +ColumnAliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ColumnAliasContext.prototype.constructor = ColumnAliasContext; + +ColumnAliasContext.prototype.strictIdentifier = function() { + return this.getTypedRuleContext(StrictIdentifierContext,0); +}; + +ColumnAliasContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +ColumnAliasContext.prototype.identifierList = function() { + return this.getTypedRuleContext(IdentifierListContext,0); +}; + +ColumnAliasContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterColumnAlias(this); + } +}; + +ColumnAliasContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitColumnAlias(this); + } +}; + +ColumnAliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitColumnAlias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ColumnAliasContext = ColumnAliasContext; + +FlinkSqlParser.prototype.columnAlias = function() { + + var localctx = new ColumnAliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 162, FlinkSqlParser.RULE_columnAlias); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1177; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,135,this._ctx); + if(la_===1) { + this.state = 1176; + this.match(FlinkSqlParser.AS); + + } + this.state = 1179; + this.strictIdentifier(); + this.state = 1181; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.LR_BRACKET) { + this.state = 1180; + this.identifierList(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TableAliasContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tableAlias; + return this; +} + +TableAliasContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TableAliasContext.prototype.constructor = TableAliasContext; + +TableAliasContext.prototype.strictIdentifier = function() { + return this.getTypedRuleContext(StrictIdentifierContext,0); +}; + +TableAliasContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +TableAliasContext.prototype.identifierList = function() { + return this.getTypedRuleContext(IdentifierListContext,0); +}; + +TableAliasContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTableAlias(this); + } +}; + +TableAliasContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTableAlias(this); + } +}; + +TableAliasContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTableAlias(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TableAliasContext = TableAliasContext; + +FlinkSqlParser.prototype.tableAlias = function() { + + var localctx = new TableAliasContext(this, this._ctx, this.state); + this.enterRule(localctx, 164, FlinkSqlParser.RULE_tableAlias); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1184; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,137,this._ctx); + if(la_===1) { + this.state = 1183; + this.match(FlinkSqlParser.AS); + + } + this.state = 1186; + this.strictIdentifier(); + this.state = 1188; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); + if(la_===1) { + this.state = 1187; + this.identifierList(); + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ErrorCapturingIdentifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_errorCapturingIdentifier; + return this; +} + +ErrorCapturingIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ErrorCapturingIdentifierContext.prototype.constructor = ErrorCapturingIdentifierContext; + +ErrorCapturingIdentifierContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +ErrorCapturingIdentifierContext.prototype.errorCapturingIdentifierExtra = function() { + return this.getTypedRuleContext(ErrorCapturingIdentifierExtraContext,0); +}; + +ErrorCapturingIdentifierContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterErrorCapturingIdentifier(this); + } +}; + +ErrorCapturingIdentifierContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitErrorCapturingIdentifier(this); + } +}; + +ErrorCapturingIdentifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitErrorCapturingIdentifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ErrorCapturingIdentifierContext = ErrorCapturingIdentifierContext; + +FlinkSqlParser.prototype.errorCapturingIdentifier = function() { + + var localctx = new ErrorCapturingIdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 166, FlinkSqlParser.RULE_errorCapturingIdentifier); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1190; + this.identifier(); + this.state = 1191; + this.errorCapturingIdentifierExtra(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ErrorCapturingIdentifierExtraContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_errorCapturingIdentifierExtra; + return this; +} + +ErrorCapturingIdentifierExtraContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ErrorCapturingIdentifierExtraContext.prototype.constructor = ErrorCapturingIdentifierExtraContext; + + + +ErrorCapturingIdentifierExtraContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function ErrorIdentContext(parser, ctx) { + ErrorCapturingIdentifierExtraContext.call(this, parser); + ErrorCapturingIdentifierExtraContext.prototype.copyFrom.call(this, ctx); + return this; +} + +ErrorIdentContext.prototype = Object.create(ErrorCapturingIdentifierExtraContext.prototype); +ErrorIdentContext.prototype.constructor = ErrorIdentContext; + +FlinkSqlParser.ErrorIdentContext = ErrorIdentContext; + +ErrorIdentContext.prototype.MINUS = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.MINUS); + } else { + return this.getToken(FlinkSqlParser.MINUS, i); + } +}; + + +ErrorIdentContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; +ErrorIdentContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterErrorIdent(this); + } +}; + +ErrorIdentContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitErrorIdent(this); + } +}; + +ErrorIdentContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitErrorIdent(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function RealIdentContext(parser, ctx) { + ErrorCapturingIdentifierExtraContext.call(this, parser); + ErrorCapturingIdentifierExtraContext.prototype.copyFrom.call(this, ctx); + return this; +} + +RealIdentContext.prototype = Object.create(ErrorCapturingIdentifierExtraContext.prototype); +RealIdentContext.prototype.constructor = RealIdentContext; + +FlinkSqlParser.RealIdentContext = RealIdentContext; + +RealIdentContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterRealIdent(this); + } +}; + +RealIdentContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitRealIdent(this); + } +}; + +RealIdentContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitRealIdent(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.ErrorCapturingIdentifierExtraContext = ErrorCapturingIdentifierExtraContext; + +FlinkSqlParser.prototype.errorCapturingIdentifierExtra = function() { + + var localctx = new ErrorCapturingIdentifierExtraContext(this, this._ctx, this.state); + this.enterRule(localctx, 168, FlinkSqlParser.RULE_errorCapturingIdentifierExtra); + var _la = 0; // Token type + try { + this.state = 1200; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.MINUS: + localctx = new ErrorIdentContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1195; + this._errHandler.sync(this); + _la = this._input.LA(1); + do { + this.state = 1193; + this.match(FlinkSqlParser.MINUS); + this.state = 1194; + this.identifier(); + this.state = 1197; + this._errHandler.sync(this); + _la = this._input.LA(1); + } while(_la===FlinkSqlParser.MINUS); + break; + case FlinkSqlParser.AS: + case FlinkSqlParser.LR_BRACKET: + localctx = new RealIdentContext(this, localctx); + this.enterOuterAlt(localctx, 2); + + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IdentifierListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_identifierList; + return this; +} + +IdentifierListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IdentifierListContext.prototype.constructor = IdentifierListContext; + +IdentifierListContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +IdentifierListContext.prototype.identifierSeq = function() { + return this.getTypedRuleContext(IdentifierSeqContext,0); +}; + +IdentifierListContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +IdentifierListContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIdentifierList(this); + } +}; + +IdentifierListContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIdentifierList(this); + } +}; + +IdentifierListContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIdentifierList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IdentifierListContext = IdentifierListContext; + +FlinkSqlParser.prototype.identifierList = function() { + + var localctx = new IdentifierListContext(this, this._ctx, this.state); + this.enterRule(localctx, 170, FlinkSqlParser.RULE_identifierList); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1202; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1203; + this.identifierSeq(); + this.state = 1204; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IdentifierSeqContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_identifierSeq; + return this; +} + +IdentifierSeqContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IdentifierSeqContext.prototype.constructor = IdentifierSeqContext; + +IdentifierSeqContext.prototype.identifier = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(IdentifierContext); + } else { + return this.getTypedRuleContext(IdentifierContext,i); + } +}; + +IdentifierSeqContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +IdentifierSeqContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIdentifierSeq(this); + } +}; + +IdentifierSeqContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIdentifierSeq(this); + } +}; + +IdentifierSeqContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIdentifierSeq(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IdentifierSeqContext = IdentifierSeqContext; + +FlinkSqlParser.prototype.identifierSeq = function() { + + var localctx = new IdentifierSeqContext(this, this._ctx, this.state); + this.enterRule(localctx, 172, FlinkSqlParser.RULE_identifierSeq); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1206; + this.identifier(); + this.state = 1211; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 1207; + this.match(FlinkSqlParser.COMMA); + this.state = 1208; + this.identifier(); + this.state = 1213; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IdentifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_identifier; + return this; +} + +IdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IdentifierContext.prototype.constructor = IdentifierContext; + +IdentifierContext.prototype.strictIdentifier = function() { + return this.getTypedRuleContext(StrictIdentifierContext,0); +}; + +IdentifierContext.prototype.strictNonReserved = function() { + return this.getTypedRuleContext(StrictNonReservedContext,0); +}; + +IdentifierContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIdentifier(this); + } +}; + +IdentifierContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIdentifier(this); + } +}; + +IdentifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIdentifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IdentifierContext = IdentifierContext; + +FlinkSqlParser.prototype.identifier = function() { + + var localctx = new IdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 174, FlinkSqlParser.RULE_identifier); + try { + this.state = 1216; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,142,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1214; + this.strictIdentifier(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1215; + this.strictNonReserved(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StrictIdentifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_strictIdentifier; + return this; +} + +StrictIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StrictIdentifierContext.prototype.constructor = StrictIdentifierContext; + + + +StrictIdentifierContext.prototype.copyFrom = function(ctx) { + antlr4.ParserRuleContext.prototype.copyFrom.call(this, ctx); +}; + + +function QuotedIdentifierAlternativeContext(parser, ctx) { + StrictIdentifierContext.call(this, parser); + StrictIdentifierContext.prototype.copyFrom.call(this, ctx); + return this; +} + +QuotedIdentifierAlternativeContext.prototype = Object.create(StrictIdentifierContext.prototype); +QuotedIdentifierAlternativeContext.prototype.constructor = QuotedIdentifierAlternativeContext; + +FlinkSqlParser.QuotedIdentifierAlternativeContext = QuotedIdentifierAlternativeContext; + +QuotedIdentifierAlternativeContext.prototype.quotedIdentifier = function() { + return this.getTypedRuleContext(QuotedIdentifierContext,0); +}; +QuotedIdentifierAlternativeContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterQuotedIdentifierAlternative(this); + } +}; + +QuotedIdentifierAlternativeContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitQuotedIdentifierAlternative(this); + } +}; + +QuotedIdentifierAlternativeContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitQuotedIdentifierAlternative(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function NonReservedKeywordsContext(parser, ctx) { + StrictIdentifierContext.call(this, parser); + StrictIdentifierContext.prototype.copyFrom.call(this, ctx); + return this; +} + +NonReservedKeywordsContext.prototype = Object.create(StrictIdentifierContext.prototype); +NonReservedKeywordsContext.prototype.constructor = NonReservedKeywordsContext; + +FlinkSqlParser.NonReservedKeywordsContext = NonReservedKeywordsContext; + +NonReservedKeywordsContext.prototype.nonReserved = function() { + return this.getTypedRuleContext(NonReservedContext,0); +}; +NonReservedKeywordsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterNonReservedKeywords(this); + } +}; + +NonReservedKeywordsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitNonReservedKeywords(this); + } +}; + +NonReservedKeywordsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitNonReservedKeywords(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function UnquotedIdentifierAlternativeContext(parser, ctx) { + StrictIdentifierContext.call(this, parser); + StrictIdentifierContext.prototype.copyFrom.call(this, ctx); + return this; +} + +UnquotedIdentifierAlternativeContext.prototype = Object.create(StrictIdentifierContext.prototype); +UnquotedIdentifierAlternativeContext.prototype.constructor = UnquotedIdentifierAlternativeContext; + +FlinkSqlParser.UnquotedIdentifierAlternativeContext = UnquotedIdentifierAlternativeContext; + +UnquotedIdentifierAlternativeContext.prototype.unquotedIdentifier = function() { + return this.getTypedRuleContext(UnquotedIdentifierContext,0); +}; +UnquotedIdentifierAlternativeContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUnquotedIdentifierAlternative(this); + } +}; + +UnquotedIdentifierAlternativeContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUnquotedIdentifierAlternative(this); + } +}; + +UnquotedIdentifierAlternativeContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUnquotedIdentifierAlternative(this); + } else { + return visitor.visitChildren(this); + } +}; + + +function AnsiNonReservedKeywordsContext(parser, ctx) { + StrictIdentifierContext.call(this, parser); + StrictIdentifierContext.prototype.copyFrom.call(this, ctx); + return this; +} + +AnsiNonReservedKeywordsContext.prototype = Object.create(StrictIdentifierContext.prototype); +AnsiNonReservedKeywordsContext.prototype.constructor = AnsiNonReservedKeywordsContext; + +FlinkSqlParser.AnsiNonReservedKeywordsContext = AnsiNonReservedKeywordsContext; + +AnsiNonReservedKeywordsContext.prototype.ansiNonReserved = function() { + return this.getTypedRuleContext(AnsiNonReservedContext,0); +}; +AnsiNonReservedKeywordsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterAnsiNonReservedKeywords(this); + } +}; + +AnsiNonReservedKeywordsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitAnsiNonReservedKeywords(this); + } +}; + +AnsiNonReservedKeywordsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitAnsiNonReservedKeywords(this); + } else { + return visitor.visitChildren(this); + } +}; + + + +FlinkSqlParser.StrictIdentifierContext = StrictIdentifierContext; + +FlinkSqlParser.prototype.strictIdentifier = function() { + + var localctx = new StrictIdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 176, FlinkSqlParser.RULE_strictIdentifier); + try { + this.state = 1222; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,143,this._ctx); + switch(la_) { + case 1: + localctx = new UnquotedIdentifierAlternativeContext(this, localctx); + this.enterOuterAlt(localctx, 1); + this.state = 1218; + this.unquotedIdentifier(); + break; + + case 2: + localctx = new QuotedIdentifierAlternativeContext(this, localctx); + this.enterOuterAlt(localctx, 2); + this.state = 1219; + this.quotedIdentifier(); + break; + + case 3: + localctx = new AnsiNonReservedKeywordsContext(this, localctx); + this.enterOuterAlt(localctx, 3); + this.state = 1220; + this.ansiNonReserved(); + break; + + case 4: + localctx = new NonReservedKeywordsContext(this, localctx); + this.enterOuterAlt(localctx, 4); + this.state = 1221; + this.nonReserved(); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnquotedIdentifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_unquotedIdentifier; + return this; +} + +UnquotedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnquotedIdentifierContext.prototype.constructor = UnquotedIdentifierContext; + +UnquotedIdentifierContext.prototype.DIG_LITERAL = function() { + return this.getToken(FlinkSqlParser.DIG_LITERAL, 0); +}; + +UnquotedIdentifierContext.prototype.ID_LITERAL = function() { + return this.getToken(FlinkSqlParser.ID_LITERAL, 0); +}; + +UnquotedIdentifierContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUnquotedIdentifier(this); + } +}; + +UnquotedIdentifierContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUnquotedIdentifier(this); + } +}; + +UnquotedIdentifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUnquotedIdentifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UnquotedIdentifierContext = UnquotedIdentifierContext; + +FlinkSqlParser.prototype.unquotedIdentifier = function() { + + var localctx = new UnquotedIdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 178, FlinkSqlParser.RULE_unquotedIdentifier); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1224; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.DIG_LITERAL || _la===FlinkSqlParser.ID_LITERAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function QuotedIdentifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_quotedIdentifier; + return this; +} + +QuotedIdentifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +QuotedIdentifierContext.prototype.constructor = QuotedIdentifierContext; + +QuotedIdentifierContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +QuotedIdentifierContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterQuotedIdentifier(this); + } +}; + +QuotedIdentifierContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitQuotedIdentifier(this); + } +}; + +QuotedIdentifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitQuotedIdentifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.QuotedIdentifierContext = QuotedIdentifierContext; + +FlinkSqlParser.prototype.quotedIdentifier = function() { + + var localctx = new QuotedIdentifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 180, FlinkSqlParser.RULE_quotedIdentifier); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1226; + this.match(FlinkSqlParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WhenClauseContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_whenClause; + this.condition = null; // ExpressionContext + this.result = null; // ExpressionContext + return this; +} + +WhenClauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WhenClauseContext.prototype.constructor = WhenClauseContext; + +WhenClauseContext.prototype.WHEN = function() { + return this.getToken(FlinkSqlParser.WHEN, 0); +}; + +WhenClauseContext.prototype.THEN = function() { + return this.getToken(FlinkSqlParser.THEN, 0); +}; + +WhenClauseContext.prototype.expression = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(ExpressionContext); + } else { + return this.getTypedRuleContext(ExpressionContext,i); + } +}; + +WhenClauseContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWhenClause(this); + } +}; + +WhenClauseContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWhenClause(this); + } +}; + +WhenClauseContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWhenClause(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WhenClauseContext = WhenClauseContext; + +FlinkSqlParser.prototype.whenClause = function() { + + var localctx = new WhenClauseContext(this, this._ctx, this.state); + this.enterRule(localctx, 182, FlinkSqlParser.RULE_whenClause); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1228; + this.match(FlinkSqlParser.WHEN); + this.state = 1229; + localctx.condition = this.expression(); + this.state = 1230; + this.match(FlinkSqlParser.THEN); + this.state = 1231; + localctx.result = this.expression(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UidListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_uidList; + return this; +} + +UidListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UidListContext.prototype.constructor = UidListContext; + +UidListContext.prototype.uid = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(UidContext); + } else { + return this.getTypedRuleContext(UidContext,i); + } +}; + +UidListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +UidListContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUidList(this); + } +}; + +UidListContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUidList(this); + } +}; + +UidListContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUidList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UidListContext = UidListContext; + +FlinkSqlParser.prototype.uidList = function() { + + var localctx = new UidListContext(this, this._ctx, this.state); + this.enterRule(localctx, 184, FlinkSqlParser.RULE_uidList); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1233; + this.uid(); + this.state = 1238; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 1234; + this.match(FlinkSqlParser.COMMA); + this.state = 1235; + this.uid(); + this.state = 1240; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UidContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_uid; + return this; +} + +UidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UidContext.prototype.constructor = UidContext; + +UidContext.prototype.ID_LITERAL = function() { + return this.getToken(FlinkSqlParser.ID_LITERAL, 0); +}; + +UidContext.prototype.DOT_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.DOT_ID); + } else { + return this.getToken(FlinkSqlParser.DOT_ID, i); + } +}; + + +UidContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUid(this); + } +}; + +UidContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUid(this); + } +}; + +UidContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUid(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UidContext = UidContext; + +FlinkSqlParser.prototype.uid = function() { + + var localctx = new UidContext(this, this._ctx, this.state); + this.enterRule(localctx, 186, FlinkSqlParser.RULE_uid); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1241; + this.match(FlinkSqlParser.ID_LITERAL); + this.state = 1245; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,145,this._ctx) + while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1+1) { + this.state = 1242; + this.match(FlinkSqlParser.DOT_ID); + } + this.state = 1247; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,145,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function PlusUidContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_plusUid; + return this; +} + +PlusUidContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +PlusUidContext.prototype.constructor = PlusUidContext; + +PlusUidContext.prototype.ID_LITERAL = function() { + return this.getToken(FlinkSqlParser.ID_LITERAL, 0); +}; + +PlusUidContext.prototype.PLUS_ID_LITERAL = function() { + return this.getToken(FlinkSqlParser.PLUS_ID_LITERAL, 0); +}; + +PlusUidContext.prototype.DOT_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.DOT_ID); + } else { + return this.getToken(FlinkSqlParser.DOT_ID, i); + } +}; + + +PlusUidContext.prototype.PLUS_DOT_ID = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.PLUS_DOT_ID); + } else { + return this.getToken(FlinkSqlParser.PLUS_DOT_ID, i); + } +}; + + +PlusUidContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterPlusUid(this); + } +}; + +PlusUidContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitPlusUid(this); + } +}; + +PlusUidContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitPlusUid(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.PlusUidContext = PlusUidContext; + +FlinkSqlParser.prototype.plusUid = function() { + + var localctx = new PlusUidContext(this, this._ctx, this.state); + this.enterRule(localctx, 188, FlinkSqlParser.RULE_plusUid); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1248; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ID_LITERAL || _la===FlinkSqlParser.PLUS_ID_LITERAL)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + this.state = 1252; + this._errHandler.sync(this); + var _alt = this._interp.adaptivePredict(this._input,146,this._ctx) + while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { + if(_alt===1+1) { + this.state = 1249; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.DOT_ID || _la===FlinkSqlParser.PLUS_DOT_ID)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } + this.state = 1254; + this._errHandler.sync(this); + _alt = this._interp.adaptivePredict(this._input,146,this._ctx); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function WithOptionContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_withOption; + return this; +} + +WithOptionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +WithOptionContext.prototype.constructor = WithOptionContext; + +WithOptionContext.prototype.WITH = function() { + return this.getToken(FlinkSqlParser.WITH, 0); +}; + +WithOptionContext.prototype.tablePropertyList = function() { + return this.getTypedRuleContext(TablePropertyListContext,0); +}; + +WithOptionContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterWithOption(this); + } +}; + +WithOptionContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitWithOption(this); + } +}; + +WithOptionContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitWithOption(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.WithOptionContext = WithOptionContext; + +FlinkSqlParser.prototype.withOption = function() { + + var localctx = new WithOptionContext(this, this._ctx, this.state); + this.enterRule(localctx, 190, FlinkSqlParser.RULE_withOption); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1255; + this.match(FlinkSqlParser.WITH); + this.state = 1256; + this.tablePropertyList(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IfNotExistsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_ifNotExists; + return this; +} + +IfNotExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IfNotExistsContext.prototype.constructor = IfNotExistsContext; + +IfNotExistsContext.prototype.IF = function() { + return this.getToken(FlinkSqlParser.IF, 0); +}; + +IfNotExistsContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +IfNotExistsContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +IfNotExistsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIfNotExists(this); + } +}; + +IfNotExistsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIfNotExists(this); + } +}; + +IfNotExistsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIfNotExists(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IfNotExistsContext = IfNotExistsContext; + +FlinkSqlParser.prototype.ifNotExists = function() { + + var localctx = new IfNotExistsContext(this, this._ctx, this.state); + this.enterRule(localctx, 192, FlinkSqlParser.RULE_ifNotExists); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1258; + this.match(FlinkSqlParser.IF); + this.state = 1259; + this.match(FlinkSqlParser.NOT); + this.state = 1260; + this.match(FlinkSqlParser.EXISTS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function IfExistsContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_ifExists; + return this; +} + +IfExistsContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +IfExistsContext.prototype.constructor = IfExistsContext; + +IfExistsContext.prototype.IF = function() { + return this.getToken(FlinkSqlParser.IF, 0); +}; + +IfExistsContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +IfExistsContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterIfExists(this); + } +}; + +IfExistsContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitIfExists(this); + } +}; + +IfExistsContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitIfExists(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.IfExistsContext = IfExistsContext; + +FlinkSqlParser.prototype.ifExists = function() { + + var localctx = new IfExistsContext(this, this._ctx, this.state); + this.enterRule(localctx, 194, FlinkSqlParser.RULE_ifExists); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1262; + this.match(FlinkSqlParser.IF); + this.state = 1263; + this.match(FlinkSqlParser.EXISTS); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePropertyListContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tablePropertyList; + return this; +} + +TablePropertyListContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePropertyListContext.prototype.constructor = TablePropertyListContext; + +TablePropertyListContext.prototype.LR_BRACKET = function() { + return this.getToken(FlinkSqlParser.LR_BRACKET, 0); +}; + +TablePropertyListContext.prototype.tableProperty = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTypedRuleContexts(TablePropertyContext); + } else { + return this.getTypedRuleContext(TablePropertyContext,i); + } +}; + +TablePropertyListContext.prototype.RR_BRACKET = function() { + return this.getToken(FlinkSqlParser.RR_BRACKET, 0); +}; + +TablePropertyListContext.prototype.COMMA = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.COMMA); + } else { + return this.getToken(FlinkSqlParser.COMMA, i); + } +}; + + +TablePropertyListContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTablePropertyList(this); + } +}; + +TablePropertyListContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTablePropertyList(this); + } +}; + +TablePropertyListContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTablePropertyList(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TablePropertyListContext = TablePropertyListContext; + +FlinkSqlParser.prototype.tablePropertyList = function() { + + var localctx = new TablePropertyListContext(this, this._ctx, this.state); + this.enterRule(localctx, 196, FlinkSqlParser.RULE_tablePropertyList); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1265; + this.match(FlinkSqlParser.LR_BRACKET); + this.state = 1266; + this.tableProperty(); + this.state = 1271; + this._errHandler.sync(this); + _la = this._input.LA(1); + while(_la===FlinkSqlParser.COMMA) { + this.state = 1267; + this.match(FlinkSqlParser.COMMA); + this.state = 1268; + this.tableProperty(); + this.state = 1273; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 1274; + this.match(FlinkSqlParser.RR_BRACKET); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePropertyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tableProperty; + this.key = null; // TablePropertyKeyContext + this.value = null; // TablePropertyValueContext + return this; +} + +TablePropertyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePropertyContext.prototype.constructor = TablePropertyContext; + +TablePropertyContext.prototype.tablePropertyKey = function() { + return this.getTypedRuleContext(TablePropertyKeyContext,0); +}; + +TablePropertyContext.prototype.tablePropertyValue = function() { + return this.getTypedRuleContext(TablePropertyValueContext,0); +}; + +TablePropertyContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(FlinkSqlParser.EQUAL_SYMBOL, 0); +}; + +TablePropertyContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTableProperty(this); + } +}; + +TablePropertyContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTableProperty(this); + } +}; + +TablePropertyContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTableProperty(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TablePropertyContext = TablePropertyContext; + +FlinkSqlParser.prototype.tableProperty = function() { + + var localctx = new TablePropertyContext(this, this._ctx, this.state); + this.enterRule(localctx, 198, FlinkSqlParser.RULE_tableProperty); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1276; + localctx.key = this.tablePropertyKey(); + this.state = 1281; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.TRUE || _la===FlinkSqlParser.FALSE || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (FlinkSqlParser.EQUAL_SYMBOL - 256)) | (1 << (FlinkSqlParser.STRING_LITERAL - 256)) | (1 << (FlinkSqlParser.DIG_LITERAL - 256)))) !== 0) || _la===FlinkSqlParser.REAL_LITERAL) { + this.state = 1278; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.EQUAL_SYMBOL) { + this.state = 1277; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + } + + this.state = 1280; + localctx.value = this.tablePropertyValue(); + } + + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePropertyKeyContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tablePropertyKey; + return this; +} + +TablePropertyKeyContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePropertyKeyContext.prototype.constructor = TablePropertyKeyContext; + +TablePropertyKeyContext.prototype.identifier = function() { + return this.getTypedRuleContext(IdentifierContext,0); +}; + +TablePropertyKeyContext.prototype.dereferenceDefinition = function() { + return this.getTypedRuleContext(DereferenceDefinitionContext,0); +}; + +TablePropertyKeyContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +TablePropertyKeyContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTablePropertyKey(this); + } +}; + +TablePropertyKeyContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTablePropertyKey(this); + } +}; + +TablePropertyKeyContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTablePropertyKey(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TablePropertyKeyContext = TablePropertyKeyContext; + +FlinkSqlParser.prototype.tablePropertyKey = function() { + + var localctx = new TablePropertyKeyContext(this, this._ctx, this.state); + this.enterRule(localctx, 200, FlinkSqlParser.RULE_tablePropertyKey); + try { + this.state = 1286; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,150,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1283; + this.identifier(); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1284; + this.dereferenceDefinition(); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1285; + this.match(FlinkSqlParser.STRING_LITERAL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function TablePropertyValueContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_tablePropertyValue; + return this; +} + +TablePropertyValueContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +TablePropertyValueContext.prototype.constructor = TablePropertyValueContext; + +TablePropertyValueContext.prototype.DIG_LITERAL = function() { + return this.getToken(FlinkSqlParser.DIG_LITERAL, 0); +}; + +TablePropertyValueContext.prototype.REAL_LITERAL = function() { + return this.getToken(FlinkSqlParser.REAL_LITERAL, 0); +}; + +TablePropertyValueContext.prototype.booleanLiteral = function() { + return this.getTypedRuleContext(BooleanLiteralContext,0); +}; + +TablePropertyValueContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +TablePropertyValueContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterTablePropertyValue(this); + } +}; + +TablePropertyValueContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitTablePropertyValue(this); + } +}; + +TablePropertyValueContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitTablePropertyValue(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.TablePropertyValueContext = TablePropertyValueContext; + +FlinkSqlParser.prototype.tablePropertyValue = function() { + + var localctx = new TablePropertyValueContext(this, this._ctx, this.state); + this.enterRule(localctx, 202, FlinkSqlParser.RULE_tablePropertyValue); + try { + this.state = 1292; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.DIG_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 1288; + this.match(FlinkSqlParser.DIG_LITERAL); + break; + case FlinkSqlParser.REAL_LITERAL: + this.enterOuterAlt(localctx, 2); + this.state = 1289; + this.match(FlinkSqlParser.REAL_LITERAL); + break; + case FlinkSqlParser.TRUE: + case FlinkSqlParser.FALSE: + this.enterOuterAlt(localctx, 3); + this.state = 1290; + this.booleanLiteral(); + break; + case FlinkSqlParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 4); + this.state = 1291; + this.match(FlinkSqlParser.STRING_LITERAL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function LogicalOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_logicalOperator; + return this; +} + +LogicalOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +LogicalOperatorContext.prototype.constructor = LogicalOperatorContext; + +LogicalOperatorContext.prototype.AND = function() { + return this.getToken(FlinkSqlParser.AND, 0); +}; + +LogicalOperatorContext.prototype.BIT_AND_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.BIT_AND_OP); + } else { + return this.getToken(FlinkSqlParser.BIT_AND_OP, i); + } +}; + + +LogicalOperatorContext.prototype.OR = function() { + return this.getToken(FlinkSqlParser.OR, 0); +}; + +LogicalOperatorContext.prototype.BIT_OR_OP = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.BIT_OR_OP); + } else { + return this.getToken(FlinkSqlParser.BIT_OR_OP, i); + } +}; + + +LogicalOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterLogicalOperator(this); + } +}; + +LogicalOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitLogicalOperator(this); + } +}; + +LogicalOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitLogicalOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.LogicalOperatorContext = LogicalOperatorContext; + +FlinkSqlParser.prototype.logicalOperator = function() { + + var localctx = new LogicalOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 204, FlinkSqlParser.RULE_logicalOperator); + try { + this.state = 1300; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.AND: + this.enterOuterAlt(localctx, 1); + this.state = 1294; + this.match(FlinkSqlParser.AND); + break; + case FlinkSqlParser.BIT_AND_OP: + this.enterOuterAlt(localctx, 2); + this.state = 1295; + this.match(FlinkSqlParser.BIT_AND_OP); + this.state = 1296; + this.match(FlinkSqlParser.BIT_AND_OP); + break; + case FlinkSqlParser.OR: + this.enterOuterAlt(localctx, 3); + this.state = 1297; + this.match(FlinkSqlParser.OR); + break; + case FlinkSqlParser.BIT_OR_OP: + this.enterOuterAlt(localctx, 4); + this.state = 1298; + this.match(FlinkSqlParser.BIT_OR_OP); + this.state = 1299; + this.match(FlinkSqlParser.BIT_OR_OP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ComparisonOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_comparisonOperator; + return this; +} + +ComparisonOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ComparisonOperatorContext.prototype.constructor = ComparisonOperatorContext; + +ComparisonOperatorContext.prototype.EQUAL_SYMBOL = function() { + return this.getToken(FlinkSqlParser.EQUAL_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.GREATER_SYMBOL = function() { + return this.getToken(FlinkSqlParser.GREATER_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.LESS_SYMBOL = function() { + return this.getToken(FlinkSqlParser.LESS_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.EXCLAMATION_SYMBOL = function() { + return this.getToken(FlinkSqlParser.EXCLAMATION_SYMBOL, 0); +}; + +ComparisonOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterComparisonOperator(this); + } +}; + +ComparisonOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitComparisonOperator(this); + } +}; + +ComparisonOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitComparisonOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ComparisonOperatorContext = ComparisonOperatorContext; + +FlinkSqlParser.prototype.comparisonOperator = function() { + + var localctx = new ComparisonOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 206, FlinkSqlParser.RULE_comparisonOperator); + try { + this.state = 1316; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,153,this._ctx); + switch(la_) { + case 1: + this.enterOuterAlt(localctx, 1); + this.state = 1302; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + break; + + case 2: + this.enterOuterAlt(localctx, 2); + this.state = 1303; + this.match(FlinkSqlParser.GREATER_SYMBOL); + break; + + case 3: + this.enterOuterAlt(localctx, 3); + this.state = 1304; + this.match(FlinkSqlParser.LESS_SYMBOL); + break; + + case 4: + this.enterOuterAlt(localctx, 4); + this.state = 1305; + this.match(FlinkSqlParser.LESS_SYMBOL); + this.state = 1306; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + break; + + case 5: + this.enterOuterAlt(localctx, 5); + this.state = 1307; + this.match(FlinkSqlParser.GREATER_SYMBOL); + this.state = 1308; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + break; + + case 6: + this.enterOuterAlt(localctx, 6); + this.state = 1309; + this.match(FlinkSqlParser.LESS_SYMBOL); + this.state = 1310; + this.match(FlinkSqlParser.GREATER_SYMBOL); + break; + + case 7: + this.enterOuterAlt(localctx, 7); + this.state = 1311; + this.match(FlinkSqlParser.EXCLAMATION_SYMBOL); + this.state = 1312; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + break; + + case 8: + this.enterOuterAlt(localctx, 8); + this.state = 1313; + this.match(FlinkSqlParser.LESS_SYMBOL); + this.state = 1314; + this.match(FlinkSqlParser.EQUAL_SYMBOL); + this.state = 1315; + this.match(FlinkSqlParser.GREATER_SYMBOL); + break; + + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BitOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_bitOperator; + return this; +} + +BitOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BitOperatorContext.prototype.constructor = BitOperatorContext; + +BitOperatorContext.prototype.LESS_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.LESS_SYMBOL); + } else { + return this.getToken(FlinkSqlParser.LESS_SYMBOL, i); + } +}; + + +BitOperatorContext.prototype.GREATER_SYMBOL = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(FlinkSqlParser.GREATER_SYMBOL); + } else { + return this.getToken(FlinkSqlParser.GREATER_SYMBOL, i); + } +}; + + +BitOperatorContext.prototype.BIT_AND_OP = function() { + return this.getToken(FlinkSqlParser.BIT_AND_OP, 0); +}; + +BitOperatorContext.prototype.BIT_XOR_OP = function() { + return this.getToken(FlinkSqlParser.BIT_XOR_OP, 0); +}; + +BitOperatorContext.prototype.BIT_OR_OP = function() { + return this.getToken(FlinkSqlParser.BIT_OR_OP, 0); +}; + +BitOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterBitOperator(this); + } +}; + +BitOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitBitOperator(this); + } +}; + +BitOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitBitOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.BitOperatorContext = BitOperatorContext; + +FlinkSqlParser.prototype.bitOperator = function() { + + var localctx = new BitOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 208, FlinkSqlParser.RULE_bitOperator); + try { + this.state = 1325; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.LESS_SYMBOL: + this.enterOuterAlt(localctx, 1); + this.state = 1318; + this.match(FlinkSqlParser.LESS_SYMBOL); + this.state = 1319; + this.match(FlinkSqlParser.LESS_SYMBOL); + break; + case FlinkSqlParser.GREATER_SYMBOL: + this.enterOuterAlt(localctx, 2); + this.state = 1320; + this.match(FlinkSqlParser.GREATER_SYMBOL); + this.state = 1321; + this.match(FlinkSqlParser.GREATER_SYMBOL); + break; + case FlinkSqlParser.BIT_AND_OP: + this.enterOuterAlt(localctx, 3); + this.state = 1322; + this.match(FlinkSqlParser.BIT_AND_OP); + break; + case FlinkSqlParser.BIT_XOR_OP: + this.enterOuterAlt(localctx, 4); + this.state = 1323; + this.match(FlinkSqlParser.BIT_XOR_OP); + break; + case FlinkSqlParser.BIT_OR_OP: + this.enterOuterAlt(localctx, 5); + this.state = 1324; + this.match(FlinkSqlParser.BIT_OR_OP); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function MathOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_mathOperator; + return this; +} + +MathOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +MathOperatorContext.prototype.constructor = MathOperatorContext; + +MathOperatorContext.prototype.ASTERISK_SIGN = function() { + return this.getToken(FlinkSqlParser.ASTERISK_SIGN, 0); +}; + +MathOperatorContext.prototype.SLASH_SIGN = function() { + return this.getToken(FlinkSqlParser.SLASH_SIGN, 0); +}; + +MathOperatorContext.prototype.PENCENT_SIGN = function() { + return this.getToken(FlinkSqlParser.PENCENT_SIGN, 0); +}; + +MathOperatorContext.prototype.DIV = function() { + return this.getToken(FlinkSqlParser.DIV, 0); +}; + +MathOperatorContext.prototype.ADD_SIGN = function() { + return this.getToken(FlinkSqlParser.ADD_SIGN, 0); +}; + +MathOperatorContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +MathOperatorContext.prototype.DOUBLE_HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.DOUBLE_HYPNEN_SIGN, 0); +}; + +MathOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterMathOperator(this); + } +}; + +MathOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitMathOperator(this); + } +}; + +MathOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitMathOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.MathOperatorContext = MathOperatorContext; + +FlinkSqlParser.prototype.mathOperator = function() { + + var localctx = new MathOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 210, FlinkSqlParser.RULE_mathOperator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1327; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.DIV || ((((_la - 276)) & ~0x1f) == 0 && ((1 << (_la - 276)) & ((1 << (FlinkSqlParser.ASTERISK_SIGN - 276)) | (1 << (FlinkSqlParser.HYPNEN_SIGN - 276)) | (1 << (FlinkSqlParser.ADD_SIGN - 276)) | (1 << (FlinkSqlParser.PENCENT_SIGN - 276)) | (1 << (FlinkSqlParser.DOUBLE_HYPNEN_SIGN - 276)) | (1 << (FlinkSqlParser.SLASH_SIGN - 276)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function UnaryOperatorContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_unaryOperator; + return this; +} + +UnaryOperatorContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +UnaryOperatorContext.prototype.constructor = UnaryOperatorContext; + +UnaryOperatorContext.prototype.EXCLAMATION_SYMBOL = function() { + return this.getToken(FlinkSqlParser.EXCLAMATION_SYMBOL, 0); +}; + +UnaryOperatorContext.prototype.BIT_NOT_OP = function() { + return this.getToken(FlinkSqlParser.BIT_NOT_OP, 0); +}; + +UnaryOperatorContext.prototype.ADD_SIGN = function() { + return this.getToken(FlinkSqlParser.ADD_SIGN, 0); +}; + +UnaryOperatorContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +UnaryOperatorContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +UnaryOperatorContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterUnaryOperator(this); + } +}; + +UnaryOperatorContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitUnaryOperator(this); + } +}; + +UnaryOperatorContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitUnaryOperator(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.UnaryOperatorContext = UnaryOperatorContext; + +FlinkSqlParser.prototype.unaryOperator = function() { + + var localctx = new UnaryOperatorContext(this, this._ctx, this.state); + this.enterRule(localctx, 212, FlinkSqlParser.RULE_unaryOperator); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1329; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.NOT || ((((_la - 259)) & ~0x1f) == 0 && ((1 << (_la - 259)) & ((1 << (FlinkSqlParser.EXCLAMATION_SYMBOL - 259)) | (1 << (FlinkSqlParser.BIT_NOT_OP - 259)) | (1 << (FlinkSqlParser.HYPNEN_SIGN - 259)) | (1 << (FlinkSqlParser.ADD_SIGN - 259)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function FullColumnNameContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_fullColumnName; + return this; +} + +FullColumnNameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +FullColumnNameContext.prototype.constructor = FullColumnNameContext; + +FullColumnNameContext.prototype.uid = function() { + return this.getTypedRuleContext(UidContext,0); +}; + +FullColumnNameContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterFullColumnName(this); + } +}; + +FullColumnNameContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitFullColumnName(this); + } +}; + +FullColumnNameContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitFullColumnName(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.FullColumnNameContext = FullColumnNameContext; + +FlinkSqlParser.prototype.fullColumnName = function() { + + var localctx = new FullColumnNameContext(this, this._ctx, this.state); + this.enterRule(localctx, 214, FlinkSqlParser.RULE_fullColumnName); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1331; + this.uid(); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function ConstantContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_constant; + return this; +} + +ConstantContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +ConstantContext.prototype.constructor = ConstantContext; + +ConstantContext.prototype.stringLiteral = function() { + return this.getTypedRuleContext(StringLiteralContext,0); +}; + +ConstantContext.prototype.decimalLiteral = function() { + return this.getTypedRuleContext(DecimalLiteralContext,0); +}; + +ConstantContext.prototype.interval = function() { + return this.getTypedRuleContext(IntervalContext,0); +}; + +ConstantContext.prototype.HYPNEN_SIGN = function() { + return this.getToken(FlinkSqlParser.HYPNEN_SIGN, 0); +}; + +ConstantContext.prototype.booleanLiteral = function() { + return this.getTypedRuleContext(BooleanLiteralContext,0); +}; + +ConstantContext.prototype.REAL_LITERAL = function() { + return this.getToken(FlinkSqlParser.REAL_LITERAL, 0); +}; + +ConstantContext.prototype.BIT_STRING = function() { + return this.getToken(FlinkSqlParser.BIT_STRING, 0); +}; + +ConstantContext.prototype.NULL = function() { + return this.getToken(FlinkSqlParser.NULL, 0); +}; + +ConstantContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +ConstantContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterConstant(this); + } +}; + +ConstantContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitConstant(this); + } +}; + +ConstantContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitConstant(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.ConstantContext = ConstantContext; + +FlinkSqlParser.prototype.constant = function() { + + var localctx = new ConstantContext(this, this._ctx, this.state); + this.enterRule(localctx, 216, FlinkSqlParser.RULE_constant); + var _la = 0; // Token type + try { + this.state = 1345; + this._errHandler.sync(this); + switch(this._input.LA(1)) { + case FlinkSqlParser.STRING_LITERAL: + this.enterOuterAlt(localctx, 1); + this.state = 1333; + this.stringLiteral(); + break; + case FlinkSqlParser.DIG_LITERAL: + this.enterOuterAlt(localctx, 2); + this.state = 1334; + this.decimalLiteral(); + break; + case FlinkSqlParser.INTERVAL: + this.enterOuterAlt(localctx, 3); + this.state = 1335; + this.interval(); + break; + case FlinkSqlParser.HYPNEN_SIGN: + this.enterOuterAlt(localctx, 4); + this.state = 1336; + this.match(FlinkSqlParser.HYPNEN_SIGN); + this.state = 1337; + this.decimalLiteral(); + break; + case FlinkSqlParser.TRUE: + case FlinkSqlParser.FALSE: + this.enterOuterAlt(localctx, 5); + this.state = 1338; + this.booleanLiteral(); + break; + case FlinkSqlParser.REAL_LITERAL: + this.enterOuterAlt(localctx, 6); + this.state = 1339; + this.match(FlinkSqlParser.REAL_LITERAL); + break; + case FlinkSqlParser.BIT_STRING: + this.enterOuterAlt(localctx, 7); + this.state = 1340; + this.match(FlinkSqlParser.BIT_STRING); + break; + case FlinkSqlParser.NOT: + case FlinkSqlParser.NULL: + this.enterOuterAlt(localctx, 8); + this.state = 1342; + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===FlinkSqlParser.NOT) { + this.state = 1341; + this.match(FlinkSqlParser.NOT); + } + + this.state = 1344; + this.match(FlinkSqlParser.NULL); + break; + default: + throw new antlr4.error.NoViableAltException(this); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StringLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_stringLiteral; + return this; +} + +StringLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StringLiteralContext.prototype.constructor = StringLiteralContext; + +StringLiteralContext.prototype.STRING_LITERAL = function() { + return this.getToken(FlinkSqlParser.STRING_LITERAL, 0); +}; + +StringLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterStringLiteral(this); + } +}; + +StringLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitStringLiteral(this); + } +}; + +StringLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitStringLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.StringLiteralContext = StringLiteralContext; + +FlinkSqlParser.prototype.stringLiteral = function() { + + var localctx = new StringLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 218, FlinkSqlParser.RULE_stringLiteral); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1347; + this.match(FlinkSqlParser.STRING_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function DecimalLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_decimalLiteral; + return this; +} + +DecimalLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +DecimalLiteralContext.prototype.constructor = DecimalLiteralContext; + +DecimalLiteralContext.prototype.DIG_LITERAL = function() { + return this.getToken(FlinkSqlParser.DIG_LITERAL, 0); +}; + +DecimalLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterDecimalLiteral(this); + } +}; + +DecimalLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitDecimalLiteral(this); + } +}; + +DecimalLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitDecimalLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.DecimalLiteralContext = DecimalLiteralContext; + +FlinkSqlParser.prototype.decimalLiteral = function() { + + var localctx = new DecimalLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 220, FlinkSqlParser.RULE_decimalLiteral); + try { + this.enterOuterAlt(localctx, 1); + this.state = 1349; + this.match(FlinkSqlParser.DIG_LITERAL); + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function BooleanLiteralContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_booleanLiteral; + return this; +} + +BooleanLiteralContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +BooleanLiteralContext.prototype.constructor = BooleanLiteralContext; + +BooleanLiteralContext.prototype.TRUE = function() { + return this.getToken(FlinkSqlParser.TRUE, 0); +}; + +BooleanLiteralContext.prototype.FALSE = function() { + return this.getToken(FlinkSqlParser.FALSE, 0); +}; + +BooleanLiteralContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterBooleanLiteral(this); + } +}; + +BooleanLiteralContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitBooleanLiteral(this); + } +}; + +BooleanLiteralContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitBooleanLiteral(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.BooleanLiteralContext = BooleanLiteralContext; + +FlinkSqlParser.prototype.booleanLiteral = function() { + + var localctx = new BooleanLiteralContext(this, this._ctx, this.state); + this.enterRule(localctx, 222, FlinkSqlParser.RULE_booleanLiteral); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1351; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.TRUE || _la===FlinkSqlParser.FALSE)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function SetQuantifierContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_setQuantifier; + return this; +} + +SetQuantifierContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +SetQuantifierContext.prototype.constructor = SetQuantifierContext; + +SetQuantifierContext.prototype.DISTINCT = function() { + return this.getToken(FlinkSqlParser.DISTINCT, 0); +}; + +SetQuantifierContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +SetQuantifierContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterSetQuantifier(this); + } +}; + +SetQuantifierContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitSetQuantifier(this); + } +}; + +SetQuantifierContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitSetQuantifier(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.SetQuantifierContext = SetQuantifierContext; + +FlinkSqlParser.prototype.setQuantifier = function() { + + var localctx = new SetQuantifierContext(this, this._ctx, this.state); + this.enterRule(localctx, 224, FlinkSqlParser.RULE_setQuantifier); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1353; + _la = this._input.LA(1); + if(!(_la===FlinkSqlParser.ALL || _la===FlinkSqlParser.DISTINCT)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function AnsiNonReservedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_ansiNonReserved; + return this; +} + +AnsiNonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +AnsiNonReservedContext.prototype.constructor = AnsiNonReservedContext; + +AnsiNonReservedContext.prototype.ADD = function() { + return this.getToken(FlinkSqlParser.ADD, 0); +}; + +AnsiNonReservedContext.prototype.AFTER = function() { + return this.getToken(FlinkSqlParser.AFTER, 0); +}; + +AnsiNonReservedContext.prototype.ALTER = function() { + return this.getToken(FlinkSqlParser.ALTER, 0); +}; + +AnsiNonReservedContext.prototype.ANALYZE = function() { + return this.getToken(FlinkSqlParser.ANALYZE, 0); +}; + +AnsiNonReservedContext.prototype.ANTI = function() { + return this.getToken(FlinkSqlParser.ANTI, 0); +}; + +AnsiNonReservedContext.prototype.ARCHIVE = function() { + return this.getToken(FlinkSqlParser.ARCHIVE, 0); +}; + +AnsiNonReservedContext.prototype.ARRAY = function() { + return this.getToken(FlinkSqlParser.ARRAY, 0); +}; + +AnsiNonReservedContext.prototype.ASC = function() { + return this.getToken(FlinkSqlParser.ASC, 0); +}; + +AnsiNonReservedContext.prototype.AT = function() { + return this.getToken(FlinkSqlParser.AT, 0); +}; + +AnsiNonReservedContext.prototype.BETWEEN = function() { + return this.getToken(FlinkSqlParser.BETWEEN, 0); +}; + +AnsiNonReservedContext.prototype.BIGINT = function() { + return this.getToken(FlinkSqlParser.BIGINT, 0); +}; + +AnsiNonReservedContext.prototype.BINARY = function() { + return this.getToken(FlinkSqlParser.BINARY, 0); +}; + +AnsiNonReservedContext.prototype.BOOLEAN = function() { + return this.getToken(FlinkSqlParser.BOOLEAN, 0); +}; + +AnsiNonReservedContext.prototype.BUCKET = function() { + return this.getToken(FlinkSqlParser.BUCKET, 0); +}; + +AnsiNonReservedContext.prototype.BUCKETS = function() { + return this.getToken(FlinkSqlParser.BUCKETS, 0); +}; + +AnsiNonReservedContext.prototype.BY = function() { + return this.getToken(FlinkSqlParser.BY, 0); +}; + +AnsiNonReservedContext.prototype.BYTES = function() { + return this.getToken(FlinkSqlParser.BYTES, 0); +}; + +AnsiNonReservedContext.prototype.CACHE = function() { + return this.getToken(FlinkSqlParser.CACHE, 0); +}; + +AnsiNonReservedContext.prototype.CASCADE = function() { + return this.getToken(FlinkSqlParser.CASCADE, 0); +}; + +AnsiNonReservedContext.prototype.CATALOG = function() { + return this.getToken(FlinkSqlParser.CATALOG, 0); +}; + +AnsiNonReservedContext.prototype.CATALOGS = function() { + return this.getToken(FlinkSqlParser.CATALOGS, 0); +}; + +AnsiNonReservedContext.prototype.CHANGE = function() { + return this.getToken(FlinkSqlParser.CHANGE, 0); +}; + +AnsiNonReservedContext.prototype.CHAR = function() { + return this.getToken(FlinkSqlParser.CHAR, 0); +}; + +AnsiNonReservedContext.prototype.CLEAR = function() { + return this.getToken(FlinkSqlParser.CLEAR, 0); +}; + +AnsiNonReservedContext.prototype.CLUSTER = function() { + return this.getToken(FlinkSqlParser.CLUSTER, 0); +}; + +AnsiNonReservedContext.prototype.CLUSTERED = function() { + return this.getToken(FlinkSqlParser.CLUSTERED, 0); +}; + +AnsiNonReservedContext.prototype.CODEGEN = function() { + return this.getToken(FlinkSqlParser.CODEGEN, 0); +}; + +AnsiNonReservedContext.prototype.COLLECTION = function() { + return this.getToken(FlinkSqlParser.COLLECTION, 0); +}; + +AnsiNonReservedContext.prototype.COLUMNS = function() { + return this.getToken(FlinkSqlParser.COLUMNS, 0); +}; + +AnsiNonReservedContext.prototype.COMMENT = function() { + return this.getToken(FlinkSqlParser.COMMENT, 0); +}; + +AnsiNonReservedContext.prototype.COMMIT = function() { + return this.getToken(FlinkSqlParser.COMMIT, 0); +}; + +AnsiNonReservedContext.prototype.COMPACT = function() { + return this.getToken(FlinkSqlParser.COMPACT, 0); +}; + +AnsiNonReservedContext.prototype.COMPACTIONS = function() { + return this.getToken(FlinkSqlParser.COMPACTIONS, 0); +}; + +AnsiNonReservedContext.prototype.COMPUTE = function() { + return this.getToken(FlinkSqlParser.COMPUTE, 0); +}; + +AnsiNonReservedContext.prototype.CONCATENATE = function() { + return this.getToken(FlinkSqlParser.CONCATENATE, 0); +}; + +AnsiNonReservedContext.prototype.CONSTRAINTS = function() { + return this.getToken(FlinkSqlParser.CONSTRAINTS, 0); +}; + +AnsiNonReservedContext.prototype.COST = function() { + return this.getToken(FlinkSqlParser.COST, 0); +}; + +AnsiNonReservedContext.prototype.CUBE = function() { + return this.getToken(FlinkSqlParser.CUBE, 0); +}; + +AnsiNonReservedContext.prototype.CURRENT = function() { + return this.getToken(FlinkSqlParser.CURRENT, 0); +}; + +AnsiNonReservedContext.prototype.DATA = function() { + return this.getToken(FlinkSqlParser.DATA, 0); +}; + +AnsiNonReservedContext.prototype.DATABASE = function() { + return this.getToken(FlinkSqlParser.DATABASE, 0); +}; + +AnsiNonReservedContext.prototype.DATABASES = function() { + return this.getToken(FlinkSqlParser.DATABASES, 0); +}; + +AnsiNonReservedContext.prototype.DATE = function() { + return this.getToken(FlinkSqlParser.DATE, 0); +}; + +AnsiNonReservedContext.prototype.DATETIME = function() { + return this.getToken(FlinkSqlParser.DATETIME, 0); +}; + +AnsiNonReservedContext.prototype.DBPROPERTIES = function() { + return this.getToken(FlinkSqlParser.DBPROPERTIES, 0); +}; + +AnsiNonReservedContext.prototype.DECIMAL = function() { + return this.getToken(FlinkSqlParser.DECIMAL, 0); +}; + +AnsiNonReservedContext.prototype.DEFINED = function() { + return this.getToken(FlinkSqlParser.DEFINED, 0); +}; + +AnsiNonReservedContext.prototype.DELETE = function() { + return this.getToken(FlinkSqlParser.DELETE, 0); +}; + +AnsiNonReservedContext.prototype.DELIMITED = function() { + return this.getToken(FlinkSqlParser.DELIMITED, 0); +}; + +AnsiNonReservedContext.prototype.DESC = function() { + return this.getToken(FlinkSqlParser.DESC, 0); +}; + +AnsiNonReservedContext.prototype.DESCRIBE = function() { + return this.getToken(FlinkSqlParser.DESCRIBE, 0); +}; + +AnsiNonReservedContext.prototype.DFS = function() { + return this.getToken(FlinkSqlParser.DFS, 0); +}; + +AnsiNonReservedContext.prototype.DIRECTORIES = function() { + return this.getToken(FlinkSqlParser.DIRECTORIES, 0); +}; + +AnsiNonReservedContext.prototype.DIRECTORY = function() { + return this.getToken(FlinkSqlParser.DIRECTORY, 0); +}; + +AnsiNonReservedContext.prototype.DISTRIBUTE = function() { + return this.getToken(FlinkSqlParser.DISTRIBUTE, 0); +}; + +AnsiNonReservedContext.prototype.DIV = function() { + return this.getToken(FlinkSqlParser.DIV, 0); +}; + +AnsiNonReservedContext.prototype.DOUBLE = function() { + return this.getToken(FlinkSqlParser.DOUBLE, 0); +}; + +AnsiNonReservedContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +AnsiNonReservedContext.prototype.ESCAPED = function() { + return this.getToken(FlinkSqlParser.ESCAPED, 0); +}; + +AnsiNonReservedContext.prototype.EXCHANGE = function() { + return this.getToken(FlinkSqlParser.EXCHANGE, 0); +}; + +AnsiNonReservedContext.prototype.EXCLUDING = function() { + return this.getToken(FlinkSqlParser.EXCLUDING, 0); +}; + +AnsiNonReservedContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +AnsiNonReservedContext.prototype.EXPLAIN = function() { + return this.getToken(FlinkSqlParser.EXPLAIN, 0); +}; + +AnsiNonReservedContext.prototype.EXPORT = function() { + return this.getToken(FlinkSqlParser.EXPORT, 0); +}; + +AnsiNonReservedContext.prototype.EXTENDED = function() { + return this.getToken(FlinkSqlParser.EXTENDED, 0); +}; + +AnsiNonReservedContext.prototype.EXTERNAL = function() { + return this.getToken(FlinkSqlParser.EXTERNAL, 0); +}; + +AnsiNonReservedContext.prototype.EXTRACT = function() { + return this.getToken(FlinkSqlParser.EXTRACT, 0); +}; + +AnsiNonReservedContext.prototype.FIELDS = function() { + return this.getToken(FlinkSqlParser.FIELDS, 0); +}; + +AnsiNonReservedContext.prototype.FILEFORMAT = function() { + return this.getToken(FlinkSqlParser.FILEFORMAT, 0); +}; + +AnsiNonReservedContext.prototype.FIRST = function() { + return this.getToken(FlinkSqlParser.FIRST, 0); +}; + +AnsiNonReservedContext.prototype.FLOAT = function() { + return this.getToken(FlinkSqlParser.FLOAT, 0); +}; + +AnsiNonReservedContext.prototype.FOLLOWING = function() { + return this.getToken(FlinkSqlParser.FOLLOWING, 0); +}; + +AnsiNonReservedContext.prototype.FORMAT = function() { + return this.getToken(FlinkSqlParser.FORMAT, 0); +}; + +AnsiNonReservedContext.prototype.FORMATTED = function() { + return this.getToken(FlinkSqlParser.FORMATTED, 0); +}; + +AnsiNonReservedContext.prototype.FUNCTION = function() { + return this.getToken(FlinkSqlParser.FUNCTION, 0); +}; + +AnsiNonReservedContext.prototype.FUNCTIONS = function() { + return this.getToken(FlinkSqlParser.FUNCTIONS, 0); +}; + +AnsiNonReservedContext.prototype.GENERATED = function() { + return this.getToken(FlinkSqlParser.GENERATED, 0); +}; + +AnsiNonReservedContext.prototype.GLOBAL = function() { + return this.getToken(FlinkSqlParser.GLOBAL, 0); +}; + +AnsiNonReservedContext.prototype.GROUPING = function() { + return this.getToken(FlinkSqlParser.GROUPING, 0); +}; + +AnsiNonReservedContext.prototype.IF = function() { + return this.getToken(FlinkSqlParser.IF, 0); +}; + +AnsiNonReservedContext.prototype.IGNORE = function() { + return this.getToken(FlinkSqlParser.IGNORE, 0); +}; + +AnsiNonReservedContext.prototype.IMPORT = function() { + return this.getToken(FlinkSqlParser.IMPORT, 0); +}; + +AnsiNonReservedContext.prototype.INCLUDING = function() { + return this.getToken(FlinkSqlParser.INCLUDING, 0); +}; + +AnsiNonReservedContext.prototype.INDEX = function() { + return this.getToken(FlinkSqlParser.INDEX, 0); +}; + +AnsiNonReservedContext.prototype.INDEXES = function() { + return this.getToken(FlinkSqlParser.INDEXES, 0); +}; + +AnsiNonReservedContext.prototype.INPATH = function() { + return this.getToken(FlinkSqlParser.INPATH, 0); +}; + +AnsiNonReservedContext.prototype.INPUTFORMAT = function() { + return this.getToken(FlinkSqlParser.INPUTFORMAT, 0); +}; + +AnsiNonReservedContext.prototype.INSERT = function() { + return this.getToken(FlinkSqlParser.INSERT, 0); +}; + +AnsiNonReservedContext.prototype.INT = function() { + return this.getToken(FlinkSqlParser.INT, 0); +}; + +AnsiNonReservedContext.prototype.INTERVAL = function() { + return this.getToken(FlinkSqlParser.INTERVAL, 0); +}; + +AnsiNonReservedContext.prototype.ITEMS = function() { + return this.getToken(FlinkSqlParser.ITEMS, 0); +}; + +AnsiNonReservedContext.prototype.KEY = function() { + return this.getToken(FlinkSqlParser.KEY, 0); +}; + +AnsiNonReservedContext.prototype.KEYS = function() { + return this.getToken(FlinkSqlParser.KEYS, 0); +}; + +AnsiNonReservedContext.prototype.LANGUAGE = function() { + return this.getToken(FlinkSqlParser.LANGUAGE, 0); +}; + +AnsiNonReservedContext.prototype.LAST = function() { + return this.getToken(FlinkSqlParser.LAST, 0); +}; + +AnsiNonReservedContext.prototype.LATERAL = function() { + return this.getToken(FlinkSqlParser.LATERAL, 0); +}; + +AnsiNonReservedContext.prototype.LAZY = function() { + return this.getToken(FlinkSqlParser.LAZY, 0); +}; + +AnsiNonReservedContext.prototype.LIKE = function() { + return this.getToken(FlinkSqlParser.LIKE, 0); +}; + +AnsiNonReservedContext.prototype.LIMIT = function() { + return this.getToken(FlinkSqlParser.LIMIT, 0); +}; + +AnsiNonReservedContext.prototype.LINES = function() { + return this.getToken(FlinkSqlParser.LINES, 0); +}; + +AnsiNonReservedContext.prototype.LIST = function() { + return this.getToken(FlinkSqlParser.LIST, 0); +}; + +AnsiNonReservedContext.prototype.LOAD = function() { + return this.getToken(FlinkSqlParser.LOAD, 0); +}; + +AnsiNonReservedContext.prototype.LOCAL = function() { + return this.getToken(FlinkSqlParser.LOCAL, 0); +}; + +AnsiNonReservedContext.prototype.LOCATION = function() { + return this.getToken(FlinkSqlParser.LOCATION, 0); +}; + +AnsiNonReservedContext.prototype.LOCK = function() { + return this.getToken(FlinkSqlParser.LOCK, 0); +}; + +AnsiNonReservedContext.prototype.LOCKS = function() { + return this.getToken(FlinkSqlParser.LOCKS, 0); +}; + +AnsiNonReservedContext.prototype.LOGICAL = function() { + return this.getToken(FlinkSqlParser.LOGICAL, 0); +}; + +AnsiNonReservedContext.prototype.MACRO = function() { + return this.getToken(FlinkSqlParser.MACRO, 0); +}; + +AnsiNonReservedContext.prototype.MAP = function() { + return this.getToken(FlinkSqlParser.MAP, 0); +}; + +AnsiNonReservedContext.prototype.MATCH = function() { + return this.getToken(FlinkSqlParser.MATCH, 0); +}; + +AnsiNonReservedContext.prototype.MINUS = function() { + return this.getToken(FlinkSqlParser.MINUS, 0); +}; + +AnsiNonReservedContext.prototype.MSCK = function() { + return this.getToken(FlinkSqlParser.MSCK, 0); +}; + +AnsiNonReservedContext.prototype.MULTISET = function() { + return this.getToken(FlinkSqlParser.MULTISET, 0); +}; + +AnsiNonReservedContext.prototype.NEXT = function() { + return this.getToken(FlinkSqlParser.NEXT, 0); +}; + +AnsiNonReservedContext.prototype.NO = function() { + return this.getToken(FlinkSqlParser.NO, 0); +}; + +AnsiNonReservedContext.prototype.NULL = function() { + return this.getToken(FlinkSqlParser.NULL, 0); +}; + +AnsiNonReservedContext.prototype.NULLS = function() { + return this.getToken(FlinkSqlParser.NULLS, 0); +}; + +AnsiNonReservedContext.prototype.OF = function() { + return this.getToken(FlinkSqlParser.OF, 0); +}; + +AnsiNonReservedContext.prototype.OPTION = function() { + return this.getToken(FlinkSqlParser.OPTION, 0); +}; + +AnsiNonReservedContext.prototype.OPTIONS = function() { + return this.getToken(FlinkSqlParser.OPTIONS, 0); +}; + +AnsiNonReservedContext.prototype.OUT = function() { + return this.getToken(FlinkSqlParser.OUT, 0); +}; + +AnsiNonReservedContext.prototype.OUTPUTFORMAT = function() { + return this.getToken(FlinkSqlParser.OUTPUTFORMAT, 0); +}; + +AnsiNonReservedContext.prototype.OVER = function() { + return this.getToken(FlinkSqlParser.OVER, 0); +}; + +AnsiNonReservedContext.prototype.OVERWRITE = function() { + return this.getToken(FlinkSqlParser.OVERWRITE, 0); +}; + +AnsiNonReservedContext.prototype.PARTITION = function() { + return this.getToken(FlinkSqlParser.PARTITION, 0); +}; + +AnsiNonReservedContext.prototype.PARTITIONED = function() { + return this.getToken(FlinkSqlParser.PARTITIONED, 0); +}; + +AnsiNonReservedContext.prototype.PARTITIONS = function() { + return this.getToken(FlinkSqlParser.PARTITIONS, 0); +}; + +AnsiNonReservedContext.prototype.PERCENTLIT = function() { + return this.getToken(FlinkSqlParser.PERCENTLIT, 0); +}; + +AnsiNonReservedContext.prototype.PERIOD = function() { + return this.getToken(FlinkSqlParser.PERIOD, 0); +}; + +AnsiNonReservedContext.prototype.PIVOT = function() { + return this.getToken(FlinkSqlParser.PIVOT, 0); +}; + +AnsiNonReservedContext.prototype.POSITION = function() { + return this.getToken(FlinkSqlParser.POSITION, 0); +}; + +AnsiNonReservedContext.prototype.PRECEDING = function() { + return this.getToken(FlinkSqlParser.PRECEDING, 0); +}; + +AnsiNonReservedContext.prototype.PRINCIPALS = function() { + return this.getToken(FlinkSqlParser.PRINCIPALS, 0); +}; + +AnsiNonReservedContext.prototype.PURGE = function() { + return this.getToken(FlinkSqlParser.PURGE, 0); +}; + +AnsiNonReservedContext.prototype.RANGE = function() { + return this.getToken(FlinkSqlParser.RANGE, 0); +}; + +AnsiNonReservedContext.prototype.RAW = function() { + return this.getToken(FlinkSqlParser.RAW, 0); +}; + +AnsiNonReservedContext.prototype.RECORDREADER = function() { + return this.getToken(FlinkSqlParser.RECORDREADER, 0); +}; + +AnsiNonReservedContext.prototype.RECORDWRITER = function() { + return this.getToken(FlinkSqlParser.RECORDWRITER, 0); +}; + +AnsiNonReservedContext.prototype.RECOVER = function() { + return this.getToken(FlinkSqlParser.RECOVER, 0); +}; + +AnsiNonReservedContext.prototype.REDUCE = function() { + return this.getToken(FlinkSqlParser.REDUCE, 0); +}; + +AnsiNonReservedContext.prototype.REFRESH = function() { + return this.getToken(FlinkSqlParser.REFRESH, 0); +}; + +AnsiNonReservedContext.prototype.RENAME = function() { + return this.getToken(FlinkSqlParser.RENAME, 0); +}; + +AnsiNonReservedContext.prototype.REPAIR = function() { + return this.getToken(FlinkSqlParser.REPAIR, 0); +}; + +AnsiNonReservedContext.prototype.REPLACE = function() { + return this.getToken(FlinkSqlParser.REPLACE, 0); +}; + +AnsiNonReservedContext.prototype.RESET = function() { + return this.getToken(FlinkSqlParser.RESET, 0); +}; + +AnsiNonReservedContext.prototype.RESTRICT = function() { + return this.getToken(FlinkSqlParser.RESTRICT, 0); +}; + +AnsiNonReservedContext.prototype.REVOKE = function() { + return this.getToken(FlinkSqlParser.REVOKE, 0); +}; + +AnsiNonReservedContext.prototype.RLIKE = function() { + return this.getToken(FlinkSqlParser.RLIKE, 0); +}; + +AnsiNonReservedContext.prototype.ROLE = function() { + return this.getToken(FlinkSqlParser.ROLE, 0); +}; + +AnsiNonReservedContext.prototype.ROLES = function() { + return this.getToken(FlinkSqlParser.ROLES, 0); +}; + +AnsiNonReservedContext.prototype.ROLLBACK = function() { + return this.getToken(FlinkSqlParser.ROLLBACK, 0); +}; + +AnsiNonReservedContext.prototype.ROLLUP = function() { + return this.getToken(FlinkSqlParser.ROLLUP, 0); +}; + +AnsiNonReservedContext.prototype.ROW = function() { + return this.getToken(FlinkSqlParser.ROW, 0); +}; + +AnsiNonReservedContext.prototype.ROWS = function() { + return this.getToken(FlinkSqlParser.ROWS, 0); +}; + +AnsiNonReservedContext.prototype.SEMI = function() { + return this.getToken(FlinkSqlParser.SEMI, 0); +}; + +AnsiNonReservedContext.prototype.SEPARATED = function() { + return this.getToken(FlinkSqlParser.SEPARATED, 0); +}; + +AnsiNonReservedContext.prototype.SERDE = function() { + return this.getToken(FlinkSqlParser.SERDE, 0); +}; + +AnsiNonReservedContext.prototype.SERDEPROPERTIES = function() { + return this.getToken(FlinkSqlParser.SERDEPROPERTIES, 0); +}; + +AnsiNonReservedContext.prototype.SET = function() { + return this.getToken(FlinkSqlParser.SET, 0); +}; + +AnsiNonReservedContext.prototype.SETMINUS = function() { + return this.getToken(FlinkSqlParser.SETMINUS, 0); +}; + +AnsiNonReservedContext.prototype.SETS = function() { + return this.getToken(FlinkSqlParser.SETS, 0); +}; + +AnsiNonReservedContext.prototype.SHOW = function() { + return this.getToken(FlinkSqlParser.SHOW, 0); +}; + +AnsiNonReservedContext.prototype.SKEWED = function() { + return this.getToken(FlinkSqlParser.SKEWED, 0); +}; + +AnsiNonReservedContext.prototype.SMALLINT = function() { + return this.getToken(FlinkSqlParser.SMALLINT, 0); +}; + +AnsiNonReservedContext.prototype.SORT = function() { + return this.getToken(FlinkSqlParser.SORT, 0); +}; + +AnsiNonReservedContext.prototype.SORTED = function() { + return this.getToken(FlinkSqlParser.SORTED, 0); +}; + +AnsiNonReservedContext.prototype.START = function() { + return this.getToken(FlinkSqlParser.START, 0); +}; + +AnsiNonReservedContext.prototype.STATISTICS = function() { + return this.getToken(FlinkSqlParser.STATISTICS, 0); +}; + +AnsiNonReservedContext.prototype.STORED = function() { + return this.getToken(FlinkSqlParser.STORED, 0); +}; + +AnsiNonReservedContext.prototype.STRATIFY = function() { + return this.getToken(FlinkSqlParser.STRATIFY, 0); +}; + +AnsiNonReservedContext.prototype.STRING = function() { + return this.getToken(FlinkSqlParser.STRING, 0); +}; + +AnsiNonReservedContext.prototype.STRUCT = function() { + return this.getToken(FlinkSqlParser.STRUCT, 0); +}; + +AnsiNonReservedContext.prototype.SYSTEM = function() { + return this.getToken(FlinkSqlParser.SYSTEM, 0); +}; + +AnsiNonReservedContext.prototype.SYSTEM_TIME = function() { + return this.getToken(FlinkSqlParser.SYSTEM_TIME, 0); +}; + +AnsiNonReservedContext.prototype.TABLES = function() { + return this.getToken(FlinkSqlParser.TABLES, 0); +}; + +AnsiNonReservedContext.prototype.TABLESAMPLE = function() { + return this.getToken(FlinkSqlParser.TABLESAMPLE, 0); +}; + +AnsiNonReservedContext.prototype.TBLPROPERTIES = function() { + return this.getToken(FlinkSqlParser.TBLPROPERTIES, 0); +}; + +AnsiNonReservedContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +AnsiNonReservedContext.prototype.TERMINATED = function() { + return this.getToken(FlinkSqlParser.TERMINATED, 0); +}; + +AnsiNonReservedContext.prototype.TIME = function() { + return this.getToken(FlinkSqlParser.TIME, 0); +}; + +AnsiNonReservedContext.prototype.TIMESTAMP = function() { + return this.getToken(FlinkSqlParser.TIMESTAMP, 0); +}; + +AnsiNonReservedContext.prototype.TINYINT = function() { + return this.getToken(FlinkSqlParser.TINYINT, 0); +}; + +AnsiNonReservedContext.prototype.TOUCH = function() { + return this.getToken(FlinkSqlParser.TOUCH, 0); +}; + +AnsiNonReservedContext.prototype.TRANSACTION = function() { + return this.getToken(FlinkSqlParser.TRANSACTION, 0); +}; + +AnsiNonReservedContext.prototype.TRANSACTIONS = function() { + return this.getToken(FlinkSqlParser.TRANSACTIONS, 0); +}; + +AnsiNonReservedContext.prototype.TRANSFORM = function() { + return this.getToken(FlinkSqlParser.TRANSFORM, 0); +}; + +AnsiNonReservedContext.prototype.TRUE = function() { + return this.getToken(FlinkSqlParser.TRUE, 0); +}; + +AnsiNonReservedContext.prototype.TRUNCATE = function() { + return this.getToken(FlinkSqlParser.TRUNCATE, 0); +}; + +AnsiNonReservedContext.prototype.UNARCHIVE = function() { + return this.getToken(FlinkSqlParser.UNARCHIVE, 0); +}; + +AnsiNonReservedContext.prototype.UNBOUNDED = function() { + return this.getToken(FlinkSqlParser.UNBOUNDED, 0); +}; + +AnsiNonReservedContext.prototype.UNCACHE = function() { + return this.getToken(FlinkSqlParser.UNCACHE, 0); +}; + +AnsiNonReservedContext.prototype.UNLOCK = function() { + return this.getToken(FlinkSqlParser.UNLOCK, 0); +}; + +AnsiNonReservedContext.prototype.UNSET = function() { + return this.getToken(FlinkSqlParser.UNSET, 0); +}; + +AnsiNonReservedContext.prototype.UNNEST = function() { + return this.getToken(FlinkSqlParser.UNNEST, 0); +}; + +AnsiNonReservedContext.prototype.USE = function() { + return this.getToken(FlinkSqlParser.USE, 0); +}; + +AnsiNonReservedContext.prototype.VALUES = function() { + return this.getToken(FlinkSqlParser.VALUES, 0); +}; + +AnsiNonReservedContext.prototype.VARBINARY = function() { + return this.getToken(FlinkSqlParser.VARBINARY, 0); +}; + +AnsiNonReservedContext.prototype.VARCHAR = function() { + return this.getToken(FlinkSqlParser.VARCHAR, 0); +}; + +AnsiNonReservedContext.prototype.VIEW = function() { + return this.getToken(FlinkSqlParser.VIEW, 0); +}; + +AnsiNonReservedContext.prototype.VIEWS = function() { + return this.getToken(FlinkSqlParser.VIEWS, 0); +}; + +AnsiNonReservedContext.prototype.WATERMARK = function() { + return this.getToken(FlinkSqlParser.WATERMARK, 0); +}; + +AnsiNonReservedContext.prototype.WINDOW = function() { + return this.getToken(FlinkSqlParser.WINDOW, 0); +}; + +AnsiNonReservedContext.prototype.WITHIN = function() { + return this.getToken(FlinkSqlParser.WITHIN, 0); +}; + +AnsiNonReservedContext.prototype.WS = function() { + return this.getToken(FlinkSqlParser.WS, 0); +}; + +AnsiNonReservedContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterAnsiNonReserved(this); + } +}; + +AnsiNonReservedContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitAnsiNonReserved(this); + } +}; + +AnsiNonReservedContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitAnsiNonReserved(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.AnsiNonReservedContext = AnsiNonReservedContext; + +FlinkSqlParser.prototype.ansiNonReserved = function() { + + var localctx = new AnsiNonReservedContext(this, this._ctx, this.state); + this.enterRule(localctx, 226, FlinkSqlParser.RULE_ansiNonReserved); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1355; + _la = this._input.LA(1); + if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << FlinkSqlParser.ADD) | (1 << FlinkSqlParser.BY) | (1 << FlinkSqlParser.GROUPING) | (1 << FlinkSqlParser.SETS) | (1 << FlinkSqlParser.CUBE) | (1 << FlinkSqlParser.ROLLUP) | (1 << FlinkSqlParser.LIMIT) | (1 << FlinkSqlParser.AT) | (1 << FlinkSqlParser.NO) | (1 << FlinkSqlParser.EXISTS) | (1 << FlinkSqlParser.BETWEEN) | (1 << FlinkSqlParser.LIKE) | (1 << FlinkSqlParser.RLIKE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (FlinkSqlParser.TRUE - 32)) | (1 << (FlinkSqlParser.NULLS - 32)) | (1 << (FlinkSqlParser.ASC - 32)) | (1 << (FlinkSqlParser.DESC - 32)) | (1 << (FlinkSqlParser.INTERVAL - 32)) | (1 << (FlinkSqlParser.SEMI - 32)) | (1 << (FlinkSqlParser.PIVOT - 32)) | (1 << (FlinkSqlParser.LATERAL - 32)) | (1 << (FlinkSqlParser.WINDOW - 32)) | (1 << (FlinkSqlParser.OVER - 32)) | (1 << (FlinkSqlParser.PARTITION - 32)) | (1 << (FlinkSqlParser.RANGE - 32)) | (1 << (FlinkSqlParser.ROWS - 32)) | (1 << (FlinkSqlParser.UNBOUNDED - 32)) | (1 << (FlinkSqlParser.PRECEDING - 32)) | (1 << (FlinkSqlParser.FOLLOWING - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (FlinkSqlParser.CURRENT - 64)) | (1 << (FlinkSqlParser.FIRST - 64)) | (1 << (FlinkSqlParser.AFTER - 64)) | (1 << (FlinkSqlParser.LAST - 64)) | (1 << (FlinkSqlParser.VALUES - 64)) | (1 << (FlinkSqlParser.DIRECTORY - 64)) | (1 << (FlinkSqlParser.VIEW - 64)) | (1 << (FlinkSqlParser.REPLACE - 64)) | (1 << (FlinkSqlParser.INSERT - 64)) | (1 << (FlinkSqlParser.DELETE - 64)) | (1 << (FlinkSqlParser.DESCRIBE - 64)) | (1 << (FlinkSqlParser.EXPLAIN - 64)) | (1 << (FlinkSqlParser.FORMAT - 64)) | (1 << (FlinkSqlParser.LOGICAL - 64)) | (1 << (FlinkSqlParser.CODEGEN - 64)) | (1 << (FlinkSqlParser.COST - 64)) | (1 << (FlinkSqlParser.SHOW - 64)) | (1 << (FlinkSqlParser.TABLES - 64)) | (1 << (FlinkSqlParser.COLUMNS - 64)) | (1 << (FlinkSqlParser.USE - 64)) | (1 << (FlinkSqlParser.PARTITIONS - 64)) | (1 << (FlinkSqlParser.FUNCTIONS - 64)) | (1 << (FlinkSqlParser.DROP - 64)) | (1 << (FlinkSqlParser.SETMINUS - 64)))) !== 0) || ((((_la - 98)) & ~0x1f) == 0 && ((1 << (_la - 98)) & ((1 << (FlinkSqlParser.TABLESAMPLE - 98)) | (1 << (FlinkSqlParser.STRATIFY - 98)) | (1 << (FlinkSqlParser.ALTER - 98)) | (1 << (FlinkSqlParser.RENAME - 98)) | (1 << (FlinkSqlParser.STRUCT - 98)) | (1 << (FlinkSqlParser.COMMENT - 98)) | (1 << (FlinkSqlParser.SET - 98)) | (1 << (FlinkSqlParser.RESET - 98)) | (1 << (FlinkSqlParser.DATA - 98)) | (1 << (FlinkSqlParser.START - 98)) | (1 << (FlinkSqlParser.TRANSACTION - 98)) | (1 << (FlinkSqlParser.COMMIT - 98)) | (1 << (FlinkSqlParser.ROLLBACK - 98)) | (1 << (FlinkSqlParser.MACRO - 98)) | (1 << (FlinkSqlParser.IGNORE - 98)) | (1 << (FlinkSqlParser.IF - 98)) | (1 << (FlinkSqlParser.POSITION - 98)) | (1 << (FlinkSqlParser.EXTRACT - 98)) | (1 << (FlinkSqlParser.MINUS - 98)) | (1 << (FlinkSqlParser.DIV - 98)) | (1 << (FlinkSqlParser.PERCENTLIT - 98)) | (1 << (FlinkSqlParser.BUCKET - 98)) | (1 << (FlinkSqlParser.OUT - 98)) | (1 << (FlinkSqlParser.OF - 98)) | (1 << (FlinkSqlParser.SORT - 98)) | (1 << (FlinkSqlParser.CLUSTER - 98)) | (1 << (FlinkSqlParser.DISTRIBUTE - 98)) | (1 << (FlinkSqlParser.OVERWRITE - 98)) | (1 << (FlinkSqlParser.TRANSFORM - 98)))) !== 0) || ((((_la - 130)) & ~0x1f) == 0 && ((1 << (_la - 130)) & ((1 << (FlinkSqlParser.REDUCE - 130)) | (1 << (FlinkSqlParser.SERDE - 130)) | (1 << (FlinkSqlParser.SERDEPROPERTIES - 130)) | (1 << (FlinkSqlParser.RECORDREADER - 130)) | (1 << (FlinkSqlParser.RECORDWRITER - 130)) | (1 << (FlinkSqlParser.DELIMITED - 130)) | (1 << (FlinkSqlParser.FIELDS - 130)) | (1 << (FlinkSqlParser.TERMINATED - 130)) | (1 << (FlinkSqlParser.COLLECTION - 130)) | (1 << (FlinkSqlParser.ITEMS - 130)) | (1 << (FlinkSqlParser.KEYS - 130)) | (1 << (FlinkSqlParser.ESCAPED - 130)) | (1 << (FlinkSqlParser.LINES - 130)) | (1 << (FlinkSqlParser.SEPARATED - 130)) | (1 << (FlinkSqlParser.FUNCTION - 130)) | (1 << (FlinkSqlParser.EXTENDED - 130)) | (1 << (FlinkSqlParser.REFRESH - 130)) | (1 << (FlinkSqlParser.CLEAR - 130)) | (1 << (FlinkSqlParser.CACHE - 130)) | (1 << (FlinkSqlParser.UNCACHE - 130)) | (1 << (FlinkSqlParser.LAZY - 130)) | (1 << (FlinkSqlParser.FORMATTED - 130)) | (1 << (FlinkSqlParser.GLOBAL - 130)) | (1 << (FlinkSqlParser.TEMPORARY - 130)) | (1 << (FlinkSqlParser.OPTIONS - 130)) | (1 << (FlinkSqlParser.UNSET - 130)) | (1 << (FlinkSqlParser.TBLPROPERTIES - 130)) | (1 << (FlinkSqlParser.DBPROPERTIES - 130)) | (1 << (FlinkSqlParser.BUCKETS - 130)) | (1 << (FlinkSqlParser.SKEWED - 130)) | (1 << (FlinkSqlParser.STORED - 130)))) !== 0) || ((((_la - 162)) & ~0x1f) == 0 && ((1 << (_la - 162)) & ((1 << (FlinkSqlParser.DIRECTORIES - 162)) | (1 << (FlinkSqlParser.LOCATION - 162)) | (1 << (FlinkSqlParser.EXCHANGE - 162)) | (1 << (FlinkSqlParser.ARCHIVE - 162)) | (1 << (FlinkSqlParser.UNARCHIVE - 162)) | (1 << (FlinkSqlParser.FILEFORMAT - 162)) | (1 << (FlinkSqlParser.TOUCH - 162)) | (1 << (FlinkSqlParser.COMPACT - 162)) | (1 << (FlinkSqlParser.CONCATENATE - 162)) | (1 << (FlinkSqlParser.CHANGE - 162)) | (1 << (FlinkSqlParser.CASCADE - 162)) | (1 << (FlinkSqlParser.RESTRICT - 162)) | (1 << (FlinkSqlParser.CLUSTERED - 162)) | (1 << (FlinkSqlParser.SORTED - 162)) | (1 << (FlinkSqlParser.PURGE - 162)) | (1 << (FlinkSqlParser.INPUTFORMAT - 162)) | (1 << (FlinkSqlParser.OUTPUTFORMAT - 162)) | (1 << (FlinkSqlParser.DATABASE - 162)) | (1 << (FlinkSqlParser.DATABASES - 162)) | (1 << (FlinkSqlParser.DFS - 162)) | (1 << (FlinkSqlParser.TRUNCATE - 162)) | (1 << (FlinkSqlParser.ANALYZE - 162)) | (1 << (FlinkSqlParser.COMPUTE - 162)) | (1 << (FlinkSqlParser.LIST - 162)) | (1 << (FlinkSqlParser.STATISTICS - 162)) | (1 << (FlinkSqlParser.PARTITIONED - 162)) | (1 << (FlinkSqlParser.EXTERNAL - 162)) | (1 << (FlinkSqlParser.DEFINED - 162)) | (1 << (FlinkSqlParser.REVOKE - 162)) | (1 << (FlinkSqlParser.LOCK - 162)))) !== 0) || ((((_la - 194)) & ~0x1f) == 0 && ((1 << (_la - 194)) & ((1 << (FlinkSqlParser.UNLOCK - 194)) | (1 << (FlinkSqlParser.MSCK - 194)) | (1 << (FlinkSqlParser.REPAIR - 194)) | (1 << (FlinkSqlParser.RECOVER - 194)) | (1 << (FlinkSqlParser.EXPORT - 194)) | (1 << (FlinkSqlParser.IMPORT - 194)) | (1 << (FlinkSqlParser.LOAD - 194)) | (1 << (FlinkSqlParser.ROLE - 194)) | (1 << (FlinkSqlParser.ROLES - 194)) | (1 << (FlinkSqlParser.COMPACTIONS - 194)) | (1 << (FlinkSqlParser.PRINCIPALS - 194)) | (1 << (FlinkSqlParser.TRANSACTIONS - 194)) | (1 << (FlinkSqlParser.INDEX - 194)) | (1 << (FlinkSqlParser.INDEXES - 194)) | (1 << (FlinkSqlParser.LOCKS - 194)) | (1 << (FlinkSqlParser.OPTION - 194)) | (1 << (FlinkSqlParser.ANTI - 194)) | (1 << (FlinkSqlParser.LOCAL - 194)) | (1 << (FlinkSqlParser.INPATH - 194)) | (1 << (FlinkSqlParser.WATERMARK - 194)) | (1 << (FlinkSqlParser.UNNEST - 194)) | (1 << (FlinkSqlParser.MATCH - 194)) | (1 << (FlinkSqlParser.NEXT - 194)) | (1 << (FlinkSqlParser.WITHIN - 194)) | (1 << (FlinkSqlParser.WS - 194)) | (1 << (FlinkSqlParser.SYSTEM - 194)) | (1 << (FlinkSqlParser.INCLUDING - 194)) | (1 << (FlinkSqlParser.EXCLUDING - 194)) | (1 << (FlinkSqlParser.CONSTRAINTS - 194)) | (1 << (FlinkSqlParser.GENERATED - 194)) | (1 << (FlinkSqlParser.CATALOG - 194)) | (1 << (FlinkSqlParser.LANGUAGE - 194)))) !== 0) || ((((_la - 226)) & ~0x1f) == 0 && ((1 << (_la - 226)) & ((1 << (FlinkSqlParser.CATALOGS - 226)) | (1 << (FlinkSqlParser.VIEWS - 226)) | (1 << (FlinkSqlParser.KEY - 226)) | (1 << (FlinkSqlParser.PERIOD - 226)) | (1 << (FlinkSqlParser.SYSTEM_TIME - 226)) | (1 << (FlinkSqlParser.STRING - 226)) | (1 << (FlinkSqlParser.ARRAY - 226)) | (1 << (FlinkSqlParser.MAP - 226)) | (1 << (FlinkSqlParser.CHAR - 226)) | (1 << (FlinkSqlParser.VARCHAR - 226)) | (1 << (FlinkSqlParser.BINARY - 226)) | (1 << (FlinkSqlParser.VARBINARY - 226)) | (1 << (FlinkSqlParser.BYTES - 226)) | (1 << (FlinkSqlParser.DECIMAL - 226)) | (1 << (FlinkSqlParser.TINYINT - 226)) | (1 << (FlinkSqlParser.SMALLINT - 226)) | (1 << (FlinkSqlParser.INT - 226)) | (1 << (FlinkSqlParser.BIGINT - 226)) | (1 << (FlinkSqlParser.FLOAT - 226)) | (1 << (FlinkSqlParser.DOUBLE - 226)) | (1 << (FlinkSqlParser.DATE - 226)) | (1 << (FlinkSqlParser.TIME - 226)) | (1 << (FlinkSqlParser.TIMESTAMP - 226)) | (1 << (FlinkSqlParser.MULTISET - 226)) | (1 << (FlinkSqlParser.BOOLEAN - 226)) | (1 << (FlinkSqlParser.RAW - 226)) | (1 << (FlinkSqlParser.ROW - 226)) | (1 << (FlinkSqlParser.NULL - 226)) | (1 << (FlinkSqlParser.DATETIME - 226)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function StrictNonReservedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_strictNonReserved; + return this; +} + +StrictNonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +StrictNonReservedContext.prototype.constructor = StrictNonReservedContext; + +StrictNonReservedContext.prototype.ANTI = function() { + return this.getToken(FlinkSqlParser.ANTI, 0); +}; + +StrictNonReservedContext.prototype.CROSS = function() { + return this.getToken(FlinkSqlParser.CROSS, 0); +}; + +StrictNonReservedContext.prototype.EXCEPT = function() { + return this.getToken(FlinkSqlParser.EXCEPT, 0); +}; + +StrictNonReservedContext.prototype.FULL = function() { + return this.getToken(FlinkSqlParser.FULL, 0); +}; + +StrictNonReservedContext.prototype.INNER = function() { + return this.getToken(FlinkSqlParser.INNER, 0); +}; + +StrictNonReservedContext.prototype.INTERSECT = function() { + return this.getToken(FlinkSqlParser.INTERSECT, 0); +}; + +StrictNonReservedContext.prototype.JOIN = function() { + return this.getToken(FlinkSqlParser.JOIN, 0); +}; + +StrictNonReservedContext.prototype.LEFT = function() { + return this.getToken(FlinkSqlParser.LEFT, 0); +}; + +StrictNonReservedContext.prototype.NATURAL = function() { + return this.getToken(FlinkSqlParser.NATURAL, 0); +}; + +StrictNonReservedContext.prototype.ON = function() { + return this.getToken(FlinkSqlParser.ON, 0); +}; + +StrictNonReservedContext.prototype.RIGHT = function() { + return this.getToken(FlinkSqlParser.RIGHT, 0); +}; + +StrictNonReservedContext.prototype.SEMI = function() { + return this.getToken(FlinkSqlParser.SEMI, 0); +}; + +StrictNonReservedContext.prototype.SETMINUS = function() { + return this.getToken(FlinkSqlParser.SETMINUS, 0); +}; + +StrictNonReservedContext.prototype.UNION = function() { + return this.getToken(FlinkSqlParser.UNION, 0); +}; + +StrictNonReservedContext.prototype.USING = function() { + return this.getToken(FlinkSqlParser.USING, 0); +}; + +StrictNonReservedContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterStrictNonReserved(this); + } +}; + +StrictNonReservedContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitStrictNonReserved(this); + } +}; + +StrictNonReservedContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitStrictNonReserved(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.StrictNonReservedContext = StrictNonReservedContext; + +FlinkSqlParser.prototype.strictNonReserved = function() { + + var localctx = new StrictNonReservedContext(this, this._ctx, this.state); + this.enterRule(localctx, 228, FlinkSqlParser.RULE_strictNonReserved); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1357; + _la = this._input.LA(1); + if(!(((((_la - 44)) & ~0x1f) == 0 && ((1 << (_la - 44)) & ((1 << (FlinkSqlParser.JOIN - 44)) | (1 << (FlinkSqlParser.CROSS - 44)) | (1 << (FlinkSqlParser.INNER - 44)) | (1 << (FlinkSqlParser.LEFT - 44)) | (1 << (FlinkSqlParser.SEMI - 44)) | (1 << (FlinkSqlParser.RIGHT - 44)) | (1 << (FlinkSqlParser.FULL - 44)) | (1 << (FlinkSqlParser.NATURAL - 44)) | (1 << (FlinkSqlParser.ON - 44)))) !== 0) || ((((_la - 93)) & ~0x1f) == 0 && ((1 << (_la - 93)) & ((1 << (FlinkSqlParser.UNION - 93)) | (1 << (FlinkSqlParser.EXCEPT - 93)) | (1 << (FlinkSqlParser.SETMINUS - 93)) | (1 << (FlinkSqlParser.INTERSECT - 93)))) !== 0) || _la===FlinkSqlParser.USING || _la===FlinkSqlParser.ANTI)) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +function NonReservedContext(parser, parent, invokingState) { + if(parent===undefined) { + parent = null; + } + if(invokingState===undefined || invokingState===null) { + invokingState = -1; + } + antlr4.ParserRuleContext.call(this, parent, invokingState); + this.parser = parser; + this.ruleIndex = FlinkSqlParser.RULE_nonReserved; + return this; +} + +NonReservedContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); +NonReservedContext.prototype.constructor = NonReservedContext; + +NonReservedContext.prototype.ADD = function() { + return this.getToken(FlinkSqlParser.ADD, 0); +}; + +NonReservedContext.prototype.AFTER = function() { + return this.getToken(FlinkSqlParser.AFTER, 0); +}; + +NonReservedContext.prototype.ALL = function() { + return this.getToken(FlinkSqlParser.ALL, 0); +}; + +NonReservedContext.prototype.ALTER = function() { + return this.getToken(FlinkSqlParser.ALTER, 0); +}; + +NonReservedContext.prototype.ANALYZE = function() { + return this.getToken(FlinkSqlParser.ANALYZE, 0); +}; + +NonReservedContext.prototype.AND = function() { + return this.getToken(FlinkSqlParser.AND, 0); +}; + +NonReservedContext.prototype.ANY = function() { + return this.getToken(FlinkSqlParser.ANY, 0); +}; + +NonReservedContext.prototype.COLUMNS = function() { + return this.getToken(FlinkSqlParser.COLUMNS, 0); +}; + +NonReservedContext.prototype.ARRAY = function() { + return this.getToken(FlinkSqlParser.ARRAY, 0); +}; + +NonReservedContext.prototype.AS = function() { + return this.getToken(FlinkSqlParser.AS, 0); +}; + +NonReservedContext.prototype.ASC = function() { + return this.getToken(FlinkSqlParser.ASC, 0); +}; + +NonReservedContext.prototype.AT = function() { + return this.getToken(FlinkSqlParser.AT, 0); +}; + +NonReservedContext.prototype.BETWEEN = function() { + return this.getToken(FlinkSqlParser.BETWEEN, 0); +}; + +NonReservedContext.prototype.BIGINT = function() { + return this.getToken(FlinkSqlParser.BIGINT, 0); +}; + +NonReservedContext.prototype.BINARY = function() { + return this.getToken(FlinkSqlParser.BINARY, 0); +}; + +NonReservedContext.prototype.BOOLEAN = function() { + return this.getToken(FlinkSqlParser.BOOLEAN, 0); +}; + +NonReservedContext.prototype.BOTH = function() { + return this.getToken(FlinkSqlParser.BOTH, 0); +}; + +NonReservedContext.prototype.BUCKET = function() { + return this.getToken(FlinkSqlParser.BUCKET, 0); +}; + +NonReservedContext.prototype.BUCKETS = function() { + return this.getToken(FlinkSqlParser.BUCKETS, 0); +}; + +NonReservedContext.prototype.BY = function() { + return this.getToken(FlinkSqlParser.BY, 0); +}; + +NonReservedContext.prototype.BYTES = function() { + return this.getToken(FlinkSqlParser.BYTES, 0); +}; + +NonReservedContext.prototype.CACHE = function() { + return this.getToken(FlinkSqlParser.CACHE, 0); +}; + +NonReservedContext.prototype.CASCADE = function() { + return this.getToken(FlinkSqlParser.CASCADE, 0); +}; + +NonReservedContext.prototype.CASE = function() { + return this.getToken(FlinkSqlParser.CASE, 0); +}; + +NonReservedContext.prototype.CAST = function() { + return this.getToken(FlinkSqlParser.CAST, 0); +}; + +NonReservedContext.prototype.CATALOG = function() { + return this.getToken(FlinkSqlParser.CATALOG, 0); +}; + +NonReservedContext.prototype.CATALOGS = function() { + return this.getToken(FlinkSqlParser.CATALOGS, 0); +}; + +NonReservedContext.prototype.CHANGE = function() { + return this.getToken(FlinkSqlParser.CHANGE, 0); +}; + +NonReservedContext.prototype.CHAR = function() { + return this.getToken(FlinkSqlParser.CHAR, 0); +}; + +NonReservedContext.prototype.CLEAR = function() { + return this.getToken(FlinkSqlParser.CLEAR, 0); +}; + +NonReservedContext.prototype.CLUSTER = function() { + return this.getToken(FlinkSqlParser.CLUSTER, 0); +}; + +NonReservedContext.prototype.CLUSTERED = function() { + return this.getToken(FlinkSqlParser.CLUSTERED, 0); +}; + +NonReservedContext.prototype.CODEGEN = function() { + return this.getToken(FlinkSqlParser.CODEGEN, 0); +}; + +NonReservedContext.prototype.COLLECTION = function() { + return this.getToken(FlinkSqlParser.COLLECTION, 0); +}; + +NonReservedContext.prototype.COLUMN = function() { + return this.getToken(FlinkSqlParser.COLUMN, 0); +}; + +NonReservedContext.prototype.COMMENT = function() { + return this.getToken(FlinkSqlParser.COMMENT, 0); +}; + +NonReservedContext.prototype.COMMIT = function() { + return this.getToken(FlinkSqlParser.COMMIT, 0); +}; + +NonReservedContext.prototype.COMPACT = function() { + return this.getToken(FlinkSqlParser.COMPACT, 0); +}; + +NonReservedContext.prototype.COMPACTIONS = function() { + return this.getToken(FlinkSqlParser.COMPACTIONS, 0); +}; + +NonReservedContext.prototype.COMPUTE = function() { + return this.getToken(FlinkSqlParser.COMPUTE, 0); +}; + +NonReservedContext.prototype.CONCATENATE = function() { + return this.getToken(FlinkSqlParser.CONCATENATE, 0); +}; + +NonReservedContext.prototype.CONSTRAINT = function() { + return this.getToken(FlinkSqlParser.CONSTRAINT, 0); +}; + +NonReservedContext.prototype.CONSTRAINTS = function() { + return this.getToken(FlinkSqlParser.CONSTRAINTS, 0); +}; + +NonReservedContext.prototype.COST = function() { + return this.getToken(FlinkSqlParser.COST, 0); +}; + +NonReservedContext.prototype.CREATE = function() { + return this.getToken(FlinkSqlParser.CREATE, 0); +}; + +NonReservedContext.prototype.CUBE = function() { + return this.getToken(FlinkSqlParser.CUBE, 0); +}; + +NonReservedContext.prototype.CURRENT = function() { + return this.getToken(FlinkSqlParser.CURRENT, 0); +}; + +NonReservedContext.prototype.DATA = function() { + return this.getToken(FlinkSqlParser.DATA, 0); +}; + +NonReservedContext.prototype.DATABASE = function() { + return this.getToken(FlinkSqlParser.DATABASE, 0); +}; + +NonReservedContext.prototype.DATABASES = function() { + return this.getToken(FlinkSqlParser.DATABASES, 0); +}; + +NonReservedContext.prototype.DATE = function() { + return this.getToken(FlinkSqlParser.DATE, 0); +}; + +NonReservedContext.prototype.DATETIME = function() { + return this.getToken(FlinkSqlParser.DATETIME, 0); +}; + +NonReservedContext.prototype.DBPROPERTIES = function() { + return this.getToken(FlinkSqlParser.DBPROPERTIES, 0); +}; + +NonReservedContext.prototype.DECIMAL = function() { + return this.getToken(FlinkSqlParser.DECIMAL, 0); +}; + +NonReservedContext.prototype.DEFINED = function() { + return this.getToken(FlinkSqlParser.DEFINED, 0); +}; + +NonReservedContext.prototype.DELETE = function() { + return this.getToken(FlinkSqlParser.DELETE, 0); +}; + +NonReservedContext.prototype.DELIMITED = function() { + return this.getToken(FlinkSqlParser.DELIMITED, 0); +}; + +NonReservedContext.prototype.DESC = function() { + return this.getToken(FlinkSqlParser.DESC, 0); +}; + +NonReservedContext.prototype.DESCRIBE = function() { + return this.getToken(FlinkSqlParser.DESCRIBE, 0); +}; + +NonReservedContext.prototype.DFS = function() { + return this.getToken(FlinkSqlParser.DFS, 0); +}; + +NonReservedContext.prototype.DIRECTORIES = function() { + return this.getToken(FlinkSqlParser.DIRECTORIES, 0); +}; + +NonReservedContext.prototype.DIRECTORY = function() { + return this.getToken(FlinkSqlParser.DIRECTORY, 0); +}; + +NonReservedContext.prototype.DISTINCT = function() { + return this.getToken(FlinkSqlParser.DISTINCT, 0); +}; + +NonReservedContext.prototype.DISTRIBUTE = function() { + return this.getToken(FlinkSqlParser.DISTRIBUTE, 0); +}; + +NonReservedContext.prototype.DIV = function() { + return this.getToken(FlinkSqlParser.DIV, 0); +}; + +NonReservedContext.prototype.DOUBLE = function() { + return this.getToken(FlinkSqlParser.DOUBLE, 0); +}; + +NonReservedContext.prototype.DROP = function() { + return this.getToken(FlinkSqlParser.DROP, 0); +}; + +NonReservedContext.prototype.ELSE = function() { + return this.getToken(FlinkSqlParser.ELSE, 0); +}; + +NonReservedContext.prototype.END = function() { + return this.getToken(FlinkSqlParser.END, 0); +}; + +NonReservedContext.prototype.ESCAPED = function() { + return this.getToken(FlinkSqlParser.ESCAPED, 0); +}; + +NonReservedContext.prototype.EXCHANGE = function() { + return this.getToken(FlinkSqlParser.EXCHANGE, 0); +}; + +NonReservedContext.prototype.EXCLUDING = function() { + return this.getToken(FlinkSqlParser.EXCLUDING, 0); +}; + +NonReservedContext.prototype.EXISTS = function() { + return this.getToken(FlinkSqlParser.EXISTS, 0); +}; + +NonReservedContext.prototype.EXPLAIN = function() { + return this.getToken(FlinkSqlParser.EXPLAIN, 0); +}; + +NonReservedContext.prototype.EXPORT = function() { + return this.getToken(FlinkSqlParser.EXPORT, 0); +}; + +NonReservedContext.prototype.EXTENDED = function() { + return this.getToken(FlinkSqlParser.EXTENDED, 0); +}; + +NonReservedContext.prototype.EXTERNAL = function() { + return this.getToken(FlinkSqlParser.EXTERNAL, 0); +}; + +NonReservedContext.prototype.EXTRACT = function() { + return this.getToken(FlinkSqlParser.EXTRACT, 0); +}; + +NonReservedContext.prototype.FALSE = function() { + return this.getToken(FlinkSqlParser.FALSE, 0); +}; + +NonReservedContext.prototype.FIELDS = function() { + return this.getToken(FlinkSqlParser.FIELDS, 0); +}; + +NonReservedContext.prototype.FILEFORMAT = function() { + return this.getToken(FlinkSqlParser.FILEFORMAT, 0); +}; + +NonReservedContext.prototype.FIRST = function() { + return this.getToken(FlinkSqlParser.FIRST, 0); +}; + +NonReservedContext.prototype.FLOAT = function() { + return this.getToken(FlinkSqlParser.FLOAT, 0); +}; + +NonReservedContext.prototype.FOLLOWING = function() { + return this.getToken(FlinkSqlParser.FOLLOWING, 0); +}; + +NonReservedContext.prototype.FOR = function() { + return this.getToken(FlinkSqlParser.FOR, 0); +}; + +NonReservedContext.prototype.FORMAT = function() { + return this.getToken(FlinkSqlParser.FORMAT, 0); +}; + +NonReservedContext.prototype.FORMATTED = function() { + return this.getToken(FlinkSqlParser.FORMATTED, 0); +}; + +NonReservedContext.prototype.FROM = function() { + return this.getToken(FlinkSqlParser.FROM, 0); +}; + +NonReservedContext.prototype.FUNCTION = function() { + return this.getToken(FlinkSqlParser.FUNCTION, 0); +}; + +NonReservedContext.prototype.FUNCTIONS = function() { + return this.getToken(FlinkSqlParser.FUNCTIONS, 0); +}; + +NonReservedContext.prototype.GENERATED = function() { + return this.getToken(FlinkSqlParser.GENERATED, 0); +}; + +NonReservedContext.prototype.GLOBAL = function() { + return this.getToken(FlinkSqlParser.GLOBAL, 0); +}; + +NonReservedContext.prototype.GRANT = function() { + return this.getToken(FlinkSqlParser.GRANT, 0); +}; + +NonReservedContext.prototype.GROUP = function() { + return this.getToken(FlinkSqlParser.GROUP, 0); +}; + +NonReservedContext.prototype.GROUPING = function() { + return this.getToken(FlinkSqlParser.GROUPING, 0); +}; + +NonReservedContext.prototype.HAVING = function() { + return this.getToken(FlinkSqlParser.HAVING, 0); +}; + +NonReservedContext.prototype.IF = function() { + return this.getToken(FlinkSqlParser.IF, 0); +}; + +NonReservedContext.prototype.IGNORE = function() { + return this.getToken(FlinkSqlParser.IGNORE, 0); +}; + +NonReservedContext.prototype.IMPORT = function() { + return this.getToken(FlinkSqlParser.IMPORT, 0); +}; + +NonReservedContext.prototype.IN = function() { + return this.getToken(FlinkSqlParser.IN, 0); +}; + +NonReservedContext.prototype.INCLUDING = function() { + return this.getToken(FlinkSqlParser.INCLUDING, 0); +}; + +NonReservedContext.prototype.INDEX = function() { + return this.getToken(FlinkSqlParser.INDEX, 0); +}; + +NonReservedContext.prototype.INDEXES = function() { + return this.getToken(FlinkSqlParser.INDEXES, 0); +}; + +NonReservedContext.prototype.INPATH = function() { + return this.getToken(FlinkSqlParser.INPATH, 0); +}; + +NonReservedContext.prototype.INPUTFORMAT = function() { + return this.getToken(FlinkSqlParser.INPUTFORMAT, 0); +}; + +NonReservedContext.prototype.INSERT = function() { + return this.getToken(FlinkSqlParser.INSERT, 0); +}; + +NonReservedContext.prototype.INT = function() { + return this.getToken(FlinkSqlParser.INT, 0); +}; + +NonReservedContext.prototype.INTERVAL = function() { + return this.getToken(FlinkSqlParser.INTERVAL, 0); +}; + +NonReservedContext.prototype.INTO = function() { + return this.getToken(FlinkSqlParser.INTO, 0); +}; + +NonReservedContext.prototype.IS = function() { + return this.getToken(FlinkSqlParser.IS, 0); +}; + +NonReservedContext.prototype.ITEMS = function() { + return this.getToken(FlinkSqlParser.ITEMS, 0); +}; + +NonReservedContext.prototype.KEY = function() { + return this.getToken(FlinkSqlParser.KEY, 0); +}; + +NonReservedContext.prototype.KEYS = function() { + return this.getToken(FlinkSqlParser.KEYS, 0); +}; + +NonReservedContext.prototype.LANGUAGE = function() { + return this.getToken(FlinkSqlParser.LANGUAGE, 0); +}; + +NonReservedContext.prototype.LAST = function() { + return this.getToken(FlinkSqlParser.LAST, 0); +}; + +NonReservedContext.prototype.LATERAL = function() { + return this.getToken(FlinkSqlParser.LATERAL, 0); +}; + +NonReservedContext.prototype.LAZY = function() { + return this.getToken(FlinkSqlParser.LAZY, 0); +}; + +NonReservedContext.prototype.LEADING = function() { + return this.getToken(FlinkSqlParser.LEADING, 0); +}; + +NonReservedContext.prototype.LIKE = function() { + return this.getToken(FlinkSqlParser.LIKE, 0); +}; + +NonReservedContext.prototype.LIMIT = function() { + return this.getToken(FlinkSqlParser.LIMIT, 0); +}; + +NonReservedContext.prototype.LINES = function() { + return this.getToken(FlinkSqlParser.LINES, 0); +}; + +NonReservedContext.prototype.LIST = function() { + return this.getToken(FlinkSqlParser.LIST, 0); +}; + +NonReservedContext.prototype.LOAD = function() { + return this.getToken(FlinkSqlParser.LOAD, 0); +}; + +NonReservedContext.prototype.LOCAL = function() { + return this.getToken(FlinkSqlParser.LOCAL, 0); +}; + +NonReservedContext.prototype.LOCATION = function() { + return this.getToken(FlinkSqlParser.LOCATION, 0); +}; + +NonReservedContext.prototype.LOCK = function() { + return this.getToken(FlinkSqlParser.LOCK, 0); +}; + +NonReservedContext.prototype.LOCKS = function() { + return this.getToken(FlinkSqlParser.LOCKS, 0); +}; + +NonReservedContext.prototype.LOGICAL = function() { + return this.getToken(FlinkSqlParser.LOGICAL, 0); +}; + +NonReservedContext.prototype.MACRO = function() { + return this.getToken(FlinkSqlParser.MACRO, 0); +}; + +NonReservedContext.prototype.MAP = function() { + return this.getToken(FlinkSqlParser.MAP, 0); +}; + +NonReservedContext.prototype.MATCH = function() { + return this.getToken(FlinkSqlParser.MATCH, 0); +}; + +NonReservedContext.prototype.MINUS = function() { + return this.getToken(FlinkSqlParser.MINUS, 0); +}; + +NonReservedContext.prototype.MSCK = function() { + return this.getToken(FlinkSqlParser.MSCK, 0); +}; + +NonReservedContext.prototype.MULTISET = function() { + return this.getToken(FlinkSqlParser.MULTISET, 0); +}; + +NonReservedContext.prototype.NEXT = function() { + return this.getToken(FlinkSqlParser.NEXT, 0); +}; + +NonReservedContext.prototype.NO = function() { + return this.getToken(FlinkSqlParser.NO, 0); +}; + +NonReservedContext.prototype.NOT = function() { + return this.getToken(FlinkSqlParser.NOT, 0); +}; + +NonReservedContext.prototype.NULL = function() { + return this.getToken(FlinkSqlParser.NULL, 0); +}; + +NonReservedContext.prototype.NULLS = function() { + return this.getToken(FlinkSqlParser.NULLS, 0); +}; + +NonReservedContext.prototype.OF = function() { + return this.getToken(FlinkSqlParser.OF, 0); +}; + +NonReservedContext.prototype.OPTION = function() { + return this.getToken(FlinkSqlParser.OPTION, 0); +}; + +NonReservedContext.prototype.OPTIONS = function() { + return this.getToken(FlinkSqlParser.OPTIONS, 0); +}; + +NonReservedContext.prototype.OR = function() { + return this.getToken(FlinkSqlParser.OR, 0); +}; + +NonReservedContext.prototype.ORDER = function() { + return this.getToken(FlinkSqlParser.ORDER, 0); +}; + +NonReservedContext.prototype.OUT = function() { + return this.getToken(FlinkSqlParser.OUT, 0); +}; + +NonReservedContext.prototype.OUTER = function() { + return this.getToken(FlinkSqlParser.OUTER, 0); +}; + +NonReservedContext.prototype.OUTPUTFORMAT = function() { + return this.getToken(FlinkSqlParser.OUTPUTFORMAT, 0); +}; + +NonReservedContext.prototype.OVER = function() { + return this.getToken(FlinkSqlParser.OVER, 0); +}; + +NonReservedContext.prototype.OVERWRITE = function() { + return this.getToken(FlinkSqlParser.OVERWRITE, 0); +}; + +NonReservedContext.prototype.PARTITION = function() { + return this.getToken(FlinkSqlParser.PARTITION, 0); +}; + +NonReservedContext.prototype.PARTITIONED = function() { + return this.getToken(FlinkSqlParser.PARTITIONED, 0); +}; + +NonReservedContext.prototype.PARTITIONS = function() { + return this.getToken(FlinkSqlParser.PARTITIONS, 0); +}; + +NonReservedContext.prototype.PERCENTLIT = function() { + return this.getToken(FlinkSqlParser.PERCENTLIT, 0); +}; + +NonReservedContext.prototype.PERIOD = function() { + return this.getToken(FlinkSqlParser.PERIOD, 0); +}; + +NonReservedContext.prototype.PIVOT = function() { + return this.getToken(FlinkSqlParser.PIVOT, 0); +}; + +NonReservedContext.prototype.POSITION = function() { + return this.getToken(FlinkSqlParser.POSITION, 0); +}; + +NonReservedContext.prototype.PRECEDING = function() { + return this.getToken(FlinkSqlParser.PRECEDING, 0); +}; + +NonReservedContext.prototype.PRIMARY = function() { + return this.getToken(FlinkSqlParser.PRIMARY, 0); +}; + +NonReservedContext.prototype.PRINCIPALS = function() { + return this.getToken(FlinkSqlParser.PRINCIPALS, 0); +}; + +NonReservedContext.prototype.PURGE = function() { + return this.getToken(FlinkSqlParser.PURGE, 0); +}; + +NonReservedContext.prototype.RANGE = function() { + return this.getToken(FlinkSqlParser.RANGE, 0); +}; + +NonReservedContext.prototype.RAW = function() { + return this.getToken(FlinkSqlParser.RAW, 0); +}; + +NonReservedContext.prototype.RECORDREADER = function() { + return this.getToken(FlinkSqlParser.RECORDREADER, 0); +}; + +NonReservedContext.prototype.RECORDWRITER = function() { + return this.getToken(FlinkSqlParser.RECORDWRITER, 0); +}; + +NonReservedContext.prototype.RECOVER = function() { + return this.getToken(FlinkSqlParser.RECOVER, 0); +}; + +NonReservedContext.prototype.REDUCE = function() { + return this.getToken(FlinkSqlParser.REDUCE, 0); +}; + +NonReservedContext.prototype.REFRESH = function() { + return this.getToken(FlinkSqlParser.REFRESH, 0); +}; + +NonReservedContext.prototype.RENAME = function() { + return this.getToken(FlinkSqlParser.RENAME, 0); +}; + +NonReservedContext.prototype.REPAIR = function() { + return this.getToken(FlinkSqlParser.REPAIR, 0); +}; + +NonReservedContext.prototype.REPLACE = function() { + return this.getToken(FlinkSqlParser.REPLACE, 0); +}; + +NonReservedContext.prototype.RESET = function() { + return this.getToken(FlinkSqlParser.RESET, 0); +}; + +NonReservedContext.prototype.RESTRICT = function() { + return this.getToken(FlinkSqlParser.RESTRICT, 0); +}; + +NonReservedContext.prototype.REVOKE = function() { + return this.getToken(FlinkSqlParser.REVOKE, 0); +}; + +NonReservedContext.prototype.RLIKE = function() { + return this.getToken(FlinkSqlParser.RLIKE, 0); +}; + +NonReservedContext.prototype.ROLE = function() { + return this.getToken(FlinkSqlParser.ROLE, 0); +}; + +NonReservedContext.prototype.ROLES = function() { + return this.getToken(FlinkSqlParser.ROLES, 0); +}; + +NonReservedContext.prototype.ROLLBACK = function() { + return this.getToken(FlinkSqlParser.ROLLBACK, 0); +}; + +NonReservedContext.prototype.ROLLUP = function() { + return this.getToken(FlinkSqlParser.ROLLUP, 0); +}; + +NonReservedContext.prototype.ROW = function() { + return this.getToken(FlinkSqlParser.ROW, 0); +}; + +NonReservedContext.prototype.ROWS = function() { + return this.getToken(FlinkSqlParser.ROWS, 0); +}; + +NonReservedContext.prototype.SELECT = function() { + return this.getToken(FlinkSqlParser.SELECT, 0); +}; + +NonReservedContext.prototype.SEPARATED = function() { + return this.getToken(FlinkSqlParser.SEPARATED, 0); +}; + +NonReservedContext.prototype.SERDE = function() { + return this.getToken(FlinkSqlParser.SERDE, 0); +}; + +NonReservedContext.prototype.SERDEPROPERTIES = function() { + return this.getToken(FlinkSqlParser.SERDEPROPERTIES, 0); +}; + +NonReservedContext.prototype.SET = function() { + return this.getToken(FlinkSqlParser.SET, 0); +}; + +NonReservedContext.prototype.SETS = function() { + return this.getToken(FlinkSqlParser.SETS, 0); +}; + +NonReservedContext.prototype.SHOW = function() { + return this.getToken(FlinkSqlParser.SHOW, 0); +}; + +NonReservedContext.prototype.SKEWED = function() { + return this.getToken(FlinkSqlParser.SKEWED, 0); +}; + +NonReservedContext.prototype.SMALLINT = function() { + return this.getToken(FlinkSqlParser.SMALLINT, 0); +}; + +NonReservedContext.prototype.SORT = function() { + return this.getToken(FlinkSqlParser.SORT, 0); +}; + +NonReservedContext.prototype.SORTED = function() { + return this.getToken(FlinkSqlParser.SORTED, 0); +}; + +NonReservedContext.prototype.START = function() { + return this.getToken(FlinkSqlParser.START, 0); +}; + +NonReservedContext.prototype.STATISTICS = function() { + return this.getToken(FlinkSqlParser.STATISTICS, 0); +}; + +NonReservedContext.prototype.STORED = function() { + return this.getToken(FlinkSqlParser.STORED, 0); +}; + +NonReservedContext.prototype.STRATIFY = function() { + return this.getToken(FlinkSqlParser.STRATIFY, 0); +}; + +NonReservedContext.prototype.STRING = function() { + return this.getToken(FlinkSqlParser.STRING, 0); +}; + +NonReservedContext.prototype.STRUCT = function() { + return this.getToken(FlinkSqlParser.STRUCT, 0); +}; + +NonReservedContext.prototype.SYSTEM = function() { + return this.getToken(FlinkSqlParser.SYSTEM, 0); +}; + +NonReservedContext.prototype.SYSTEM_TIME = function() { + return this.getToken(FlinkSqlParser.SYSTEM_TIME, 0); +}; + +NonReservedContext.prototype.TABLE = function() { + return this.getToken(FlinkSqlParser.TABLE, 0); +}; + +NonReservedContext.prototype.TABLES = function() { + return this.getToken(FlinkSqlParser.TABLES, 0); +}; + +NonReservedContext.prototype.TABLESAMPLE = function() { + return this.getToken(FlinkSqlParser.TABLESAMPLE, 0); +}; + +NonReservedContext.prototype.TBLPROPERTIES = function() { + return this.getToken(FlinkSqlParser.TBLPROPERTIES, 0); +}; + +NonReservedContext.prototype.TEMPORARY = function() { + return this.getToken(FlinkSqlParser.TEMPORARY, 0); +}; + +NonReservedContext.prototype.TERMINATED = function() { + return this.getToken(FlinkSqlParser.TERMINATED, 0); +}; + +NonReservedContext.prototype.THEN = function() { + return this.getToken(FlinkSqlParser.THEN, 0); +}; + +NonReservedContext.prototype.TIME = function() { + return this.getToken(FlinkSqlParser.TIME, 0); +}; + +NonReservedContext.prototype.TIMESTAMP = function() { + return this.getToken(FlinkSqlParser.TIMESTAMP, 0); +}; + +NonReservedContext.prototype.TINYINT = function() { + return this.getToken(FlinkSqlParser.TINYINT, 0); +}; + +NonReservedContext.prototype.TO = function() { + return this.getToken(FlinkSqlParser.TO, 0); +}; + +NonReservedContext.prototype.TOUCH = function() { + return this.getToken(FlinkSqlParser.TOUCH, 0); +}; + +NonReservedContext.prototype.TRAILING = function() { + return this.getToken(FlinkSqlParser.TRAILING, 0); +}; + +NonReservedContext.prototype.TRANSACTION = function() { + return this.getToken(FlinkSqlParser.TRANSACTION, 0); +}; + +NonReservedContext.prototype.TRANSACTIONS = function() { + return this.getToken(FlinkSqlParser.TRANSACTIONS, 0); +}; + +NonReservedContext.prototype.TRANSFORM = function() { + return this.getToken(FlinkSqlParser.TRANSFORM, 0); +}; + +NonReservedContext.prototype.TRUE = function() { + return this.getToken(FlinkSqlParser.TRUE, 0); +}; + +NonReservedContext.prototype.TRUNCATE = function() { + return this.getToken(FlinkSqlParser.TRUNCATE, 0); +}; + +NonReservedContext.prototype.UNARCHIVE = function() { + return this.getToken(FlinkSqlParser.UNARCHIVE, 0); +}; + +NonReservedContext.prototype.UNBOUNDED = function() { + return this.getToken(FlinkSqlParser.UNBOUNDED, 0); +}; + +NonReservedContext.prototype.UNCACHE = function() { + return this.getToken(FlinkSqlParser.UNCACHE, 0); +}; + +NonReservedContext.prototype.UNLOCK = function() { + return this.getToken(FlinkSqlParser.UNLOCK, 0); +}; + +NonReservedContext.prototype.UNSET = function() { + return this.getToken(FlinkSqlParser.UNSET, 0); +}; + +NonReservedContext.prototype.UNNEST = function() { + return this.getToken(FlinkSqlParser.UNNEST, 0); +}; + +NonReservedContext.prototype.USE = function() { + return this.getToken(FlinkSqlParser.USE, 0); +}; + +NonReservedContext.prototype.VALUES = function() { + return this.getToken(FlinkSqlParser.VALUES, 0); +}; + +NonReservedContext.prototype.VARBINARY = function() { + return this.getToken(FlinkSqlParser.VARBINARY, 0); +}; + +NonReservedContext.prototype.VARCHAR = function() { + return this.getToken(FlinkSqlParser.VARCHAR, 0); +}; + +NonReservedContext.prototype.VIEW = function() { + return this.getToken(FlinkSqlParser.VIEW, 0); +}; + +NonReservedContext.prototype.VIEWS = function() { + return this.getToken(FlinkSqlParser.VIEWS, 0); +}; + +NonReservedContext.prototype.WATERMARK = function() { + return this.getToken(FlinkSqlParser.WATERMARK, 0); +}; + +NonReservedContext.prototype.WHEN = function() { + return this.getToken(FlinkSqlParser.WHEN, 0); +}; + +NonReservedContext.prototype.WHERE = function() { + return this.getToken(FlinkSqlParser.WHERE, 0); +}; + +NonReservedContext.prototype.WINDOW = function() { + return this.getToken(FlinkSqlParser.WINDOW, 0); +}; + +NonReservedContext.prototype.WITH = function() { + return this.getToken(FlinkSqlParser.WITH, 0); +}; + +NonReservedContext.prototype.WITHIN = function() { + return this.getToken(FlinkSqlParser.WITHIN, 0); +}; + +NonReservedContext.prototype.WS = function() { + return this.getToken(FlinkSqlParser.WS, 0); +}; + +NonReservedContext.prototype.enterRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.enterNonReserved(this); + } +}; + +NonReservedContext.prototype.exitRule = function(listener) { + if(listener instanceof FlinkSqlParserListener ) { + listener.exitNonReserved(this); + } +}; + +NonReservedContext.prototype.accept = function(visitor) { + if ( visitor instanceof FlinkSqlParserVisitor ) { + return visitor.visitNonReserved(this); + } else { + return visitor.visitChildren(this); + } +}; + + + + +FlinkSqlParser.NonReservedContext = NonReservedContext; + +FlinkSqlParser.prototype.nonReserved = function() { + + var localctx = new NonReservedContext(this, this._ctx, this.state); + this.enterRule(localctx, 230, FlinkSqlParser.RULE_nonReserved); + var _la = 0; // Token type + try { + this.enterOuterAlt(localctx, 1); + this.state = 1359; + _la = this._input.LA(1); + if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << FlinkSqlParser.SELECT) | (1 << FlinkSqlParser.FROM) | (1 << FlinkSqlParser.ADD) | (1 << FlinkSqlParser.AS) | (1 << FlinkSqlParser.ALL) | (1 << FlinkSqlParser.ANY) | (1 << FlinkSqlParser.DISTINCT) | (1 << FlinkSqlParser.WHERE) | (1 << FlinkSqlParser.GROUP) | (1 << FlinkSqlParser.BY) | (1 << FlinkSqlParser.GROUPING) | (1 << FlinkSqlParser.SETS) | (1 << FlinkSqlParser.CUBE) | (1 << FlinkSqlParser.ROLLUP) | (1 << FlinkSqlParser.ORDER) | (1 << FlinkSqlParser.HAVING) | (1 << FlinkSqlParser.LIMIT) | (1 << FlinkSqlParser.AT) | (1 << FlinkSqlParser.OR) | (1 << FlinkSqlParser.AND) | (1 << FlinkSqlParser.IN) | (1 << FlinkSqlParser.NOT) | (1 << FlinkSqlParser.NO) | (1 << FlinkSqlParser.EXISTS) | (1 << FlinkSqlParser.BETWEEN) | (1 << FlinkSqlParser.LIKE) | (1 << FlinkSqlParser.RLIKE) | (1 << FlinkSqlParser.IS))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (FlinkSqlParser.TRUE - 32)) | (1 << (FlinkSqlParser.FALSE - 32)) | (1 << (FlinkSqlParser.NULLS - 32)) | (1 << (FlinkSqlParser.ASC - 32)) | (1 << (FlinkSqlParser.DESC - 32)) | (1 << (FlinkSqlParser.FOR - 32)) | (1 << (FlinkSqlParser.INTERVAL - 32)) | (1 << (FlinkSqlParser.CASE - 32)) | (1 << (FlinkSqlParser.WHEN - 32)) | (1 << (FlinkSqlParser.THEN - 32)) | (1 << (FlinkSqlParser.ELSE - 32)) | (1 << (FlinkSqlParser.END - 32)) | (1 << (FlinkSqlParser.OUTER - 32)) | (1 << (FlinkSqlParser.PIVOT - 32)) | (1 << (FlinkSqlParser.LATERAL - 32)) | (1 << (FlinkSqlParser.WINDOW - 32)) | (1 << (FlinkSqlParser.OVER - 32)) | (1 << (FlinkSqlParser.PARTITION - 32)) | (1 << (FlinkSqlParser.RANGE - 32)) | (1 << (FlinkSqlParser.ROWS - 32)) | (1 << (FlinkSqlParser.UNBOUNDED - 32)) | (1 << (FlinkSqlParser.PRECEDING - 32)) | (1 << (FlinkSqlParser.FOLLOWING - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (FlinkSqlParser.CURRENT - 64)) | (1 << (FlinkSqlParser.FIRST - 64)) | (1 << (FlinkSqlParser.AFTER - 64)) | (1 << (FlinkSqlParser.LAST - 64)) | (1 << (FlinkSqlParser.WITH - 64)) | (1 << (FlinkSqlParser.VALUES - 64)) | (1 << (FlinkSqlParser.CREATE - 64)) | (1 << (FlinkSqlParser.TABLE - 64)) | (1 << (FlinkSqlParser.DIRECTORY - 64)) | (1 << (FlinkSqlParser.VIEW - 64)) | (1 << (FlinkSqlParser.REPLACE - 64)) | (1 << (FlinkSqlParser.INSERT - 64)) | (1 << (FlinkSqlParser.DELETE - 64)) | (1 << (FlinkSqlParser.INTO - 64)) | (1 << (FlinkSqlParser.DESCRIBE - 64)) | (1 << (FlinkSqlParser.EXPLAIN - 64)) | (1 << (FlinkSqlParser.FORMAT - 64)) | (1 << (FlinkSqlParser.LOGICAL - 64)) | (1 << (FlinkSqlParser.CODEGEN - 64)) | (1 << (FlinkSqlParser.COST - 64)) | (1 << (FlinkSqlParser.CAST - 64)) | (1 << (FlinkSqlParser.SHOW - 64)) | (1 << (FlinkSqlParser.TABLES - 64)) | (1 << (FlinkSqlParser.COLUMNS - 64)) | (1 << (FlinkSqlParser.COLUMN - 64)) | (1 << (FlinkSqlParser.USE - 64)) | (1 << (FlinkSqlParser.PARTITIONS - 64)) | (1 << (FlinkSqlParser.FUNCTIONS - 64)) | (1 << (FlinkSqlParser.DROP - 64)))) !== 0) || ((((_la - 97)) & ~0x1f) == 0 && ((1 << (_la - 97)) & ((1 << (FlinkSqlParser.TO - 97)) | (1 << (FlinkSqlParser.TABLESAMPLE - 97)) | (1 << (FlinkSqlParser.STRATIFY - 97)) | (1 << (FlinkSqlParser.ALTER - 97)) | (1 << (FlinkSqlParser.RENAME - 97)) | (1 << (FlinkSqlParser.STRUCT - 97)) | (1 << (FlinkSqlParser.COMMENT - 97)) | (1 << (FlinkSqlParser.SET - 97)) | (1 << (FlinkSqlParser.RESET - 97)) | (1 << (FlinkSqlParser.DATA - 97)) | (1 << (FlinkSqlParser.START - 97)) | (1 << (FlinkSqlParser.TRANSACTION - 97)) | (1 << (FlinkSqlParser.COMMIT - 97)) | (1 << (FlinkSqlParser.ROLLBACK - 97)) | (1 << (FlinkSqlParser.MACRO - 97)) | (1 << (FlinkSqlParser.IGNORE - 97)) | (1 << (FlinkSqlParser.BOTH - 97)) | (1 << (FlinkSqlParser.LEADING - 97)) | (1 << (FlinkSqlParser.TRAILING - 97)) | (1 << (FlinkSqlParser.IF - 97)) | (1 << (FlinkSqlParser.POSITION - 97)) | (1 << (FlinkSqlParser.EXTRACT - 97)) | (1 << (FlinkSqlParser.MINUS - 97)) | (1 << (FlinkSqlParser.DIV - 97)) | (1 << (FlinkSqlParser.PERCENTLIT - 97)) | (1 << (FlinkSqlParser.BUCKET - 97)) | (1 << (FlinkSqlParser.OUT - 97)) | (1 << (FlinkSqlParser.OF - 97)) | (1 << (FlinkSqlParser.SORT - 97)) | (1 << (FlinkSqlParser.CLUSTER - 97)) | (1 << (FlinkSqlParser.DISTRIBUTE - 97)) | (1 << (FlinkSqlParser.OVERWRITE - 97)))) !== 0) || ((((_la - 129)) & ~0x1f) == 0 && ((1 << (_la - 129)) & ((1 << (FlinkSqlParser.TRANSFORM - 129)) | (1 << (FlinkSqlParser.REDUCE - 129)) | (1 << (FlinkSqlParser.SERDE - 129)) | (1 << (FlinkSqlParser.SERDEPROPERTIES - 129)) | (1 << (FlinkSqlParser.RECORDREADER - 129)) | (1 << (FlinkSqlParser.RECORDWRITER - 129)) | (1 << (FlinkSqlParser.DELIMITED - 129)) | (1 << (FlinkSqlParser.FIELDS - 129)) | (1 << (FlinkSqlParser.TERMINATED - 129)) | (1 << (FlinkSqlParser.COLLECTION - 129)) | (1 << (FlinkSqlParser.ITEMS - 129)) | (1 << (FlinkSqlParser.KEYS - 129)) | (1 << (FlinkSqlParser.ESCAPED - 129)) | (1 << (FlinkSqlParser.LINES - 129)) | (1 << (FlinkSqlParser.SEPARATED - 129)) | (1 << (FlinkSqlParser.FUNCTION - 129)) | (1 << (FlinkSqlParser.EXTENDED - 129)) | (1 << (FlinkSqlParser.REFRESH - 129)) | (1 << (FlinkSqlParser.CLEAR - 129)) | (1 << (FlinkSqlParser.CACHE - 129)) | (1 << (FlinkSqlParser.UNCACHE - 129)) | (1 << (FlinkSqlParser.LAZY - 129)) | (1 << (FlinkSqlParser.FORMATTED - 129)) | (1 << (FlinkSqlParser.GLOBAL - 129)) | (1 << (FlinkSqlParser.TEMPORARY - 129)) | (1 << (FlinkSqlParser.OPTIONS - 129)) | (1 << (FlinkSqlParser.UNSET - 129)) | (1 << (FlinkSqlParser.TBLPROPERTIES - 129)) | (1 << (FlinkSqlParser.DBPROPERTIES - 129)) | (1 << (FlinkSqlParser.BUCKETS - 129)) | (1 << (FlinkSqlParser.SKEWED - 129)))) !== 0) || ((((_la - 161)) & ~0x1f) == 0 && ((1 << (_la - 161)) & ((1 << (FlinkSqlParser.STORED - 161)) | (1 << (FlinkSqlParser.DIRECTORIES - 161)) | (1 << (FlinkSqlParser.LOCATION - 161)) | (1 << (FlinkSqlParser.EXCHANGE - 161)) | (1 << (FlinkSqlParser.UNARCHIVE - 161)) | (1 << (FlinkSqlParser.FILEFORMAT - 161)) | (1 << (FlinkSqlParser.TOUCH - 161)) | (1 << (FlinkSqlParser.COMPACT - 161)) | (1 << (FlinkSqlParser.CONCATENATE - 161)) | (1 << (FlinkSqlParser.CHANGE - 161)) | (1 << (FlinkSqlParser.CASCADE - 161)) | (1 << (FlinkSqlParser.CONSTRAINT - 161)) | (1 << (FlinkSqlParser.RESTRICT - 161)) | (1 << (FlinkSqlParser.CLUSTERED - 161)) | (1 << (FlinkSqlParser.SORTED - 161)) | (1 << (FlinkSqlParser.PURGE - 161)) | (1 << (FlinkSqlParser.INPUTFORMAT - 161)) | (1 << (FlinkSqlParser.OUTPUTFORMAT - 161)) | (1 << (FlinkSqlParser.DATABASE - 161)) | (1 << (FlinkSqlParser.DATABASES - 161)) | (1 << (FlinkSqlParser.DFS - 161)) | (1 << (FlinkSqlParser.TRUNCATE - 161)) | (1 << (FlinkSqlParser.ANALYZE - 161)) | (1 << (FlinkSqlParser.COMPUTE - 161)) | (1 << (FlinkSqlParser.LIST - 161)) | (1 << (FlinkSqlParser.STATISTICS - 161)) | (1 << (FlinkSqlParser.PARTITIONED - 161)) | (1 << (FlinkSqlParser.EXTERNAL - 161)) | (1 << (FlinkSqlParser.DEFINED - 161)) | (1 << (FlinkSqlParser.REVOKE - 161)) | (1 << (FlinkSqlParser.GRANT - 161)))) !== 0) || ((((_la - 193)) & ~0x1f) == 0 && ((1 << (_la - 193)) & ((1 << (FlinkSqlParser.LOCK - 193)) | (1 << (FlinkSqlParser.UNLOCK - 193)) | (1 << (FlinkSqlParser.MSCK - 193)) | (1 << (FlinkSqlParser.REPAIR - 193)) | (1 << (FlinkSqlParser.RECOVER - 193)) | (1 << (FlinkSqlParser.EXPORT - 193)) | (1 << (FlinkSqlParser.IMPORT - 193)) | (1 << (FlinkSqlParser.LOAD - 193)) | (1 << (FlinkSqlParser.ROLE - 193)) | (1 << (FlinkSqlParser.ROLES - 193)) | (1 << (FlinkSqlParser.COMPACTIONS - 193)) | (1 << (FlinkSqlParser.PRINCIPALS - 193)) | (1 << (FlinkSqlParser.TRANSACTIONS - 193)) | (1 << (FlinkSqlParser.INDEX - 193)) | (1 << (FlinkSqlParser.INDEXES - 193)) | (1 << (FlinkSqlParser.LOCKS - 193)) | (1 << (FlinkSqlParser.OPTION - 193)) | (1 << (FlinkSqlParser.LOCAL - 193)) | (1 << (FlinkSqlParser.INPATH - 193)) | (1 << (FlinkSqlParser.WATERMARK - 193)) | (1 << (FlinkSqlParser.UNNEST - 193)) | (1 << (FlinkSqlParser.MATCH - 193)) | (1 << (FlinkSqlParser.NEXT - 193)) | (1 << (FlinkSqlParser.WITHIN - 193)) | (1 << (FlinkSqlParser.WS - 193)) | (1 << (FlinkSqlParser.SYSTEM - 193)) | (1 << (FlinkSqlParser.INCLUDING - 193)) | (1 << (FlinkSqlParser.EXCLUDING - 193)) | (1 << (FlinkSqlParser.CONSTRAINTS - 193)) | (1 << (FlinkSqlParser.GENERATED - 193)) | (1 << (FlinkSqlParser.CATALOG - 193)))) !== 0) || ((((_la - 225)) & ~0x1f) == 0 && ((1 << (_la - 225)) & ((1 << (FlinkSqlParser.LANGUAGE - 225)) | (1 << (FlinkSqlParser.CATALOGS - 225)) | (1 << (FlinkSqlParser.VIEWS - 225)) | (1 << (FlinkSqlParser.PRIMARY - 225)) | (1 << (FlinkSqlParser.KEY - 225)) | (1 << (FlinkSqlParser.PERIOD - 225)) | (1 << (FlinkSqlParser.SYSTEM_TIME - 225)) | (1 << (FlinkSqlParser.STRING - 225)) | (1 << (FlinkSqlParser.ARRAY - 225)) | (1 << (FlinkSqlParser.MAP - 225)) | (1 << (FlinkSqlParser.CHAR - 225)) | (1 << (FlinkSqlParser.VARCHAR - 225)) | (1 << (FlinkSqlParser.BINARY - 225)) | (1 << (FlinkSqlParser.VARBINARY - 225)) | (1 << (FlinkSqlParser.BYTES - 225)) | (1 << (FlinkSqlParser.DECIMAL - 225)) | (1 << (FlinkSqlParser.TINYINT - 225)) | (1 << (FlinkSqlParser.SMALLINT - 225)) | (1 << (FlinkSqlParser.INT - 225)) | (1 << (FlinkSqlParser.BIGINT - 225)) | (1 << (FlinkSqlParser.FLOAT - 225)) | (1 << (FlinkSqlParser.DOUBLE - 225)) | (1 << (FlinkSqlParser.DATE - 225)) | (1 << (FlinkSqlParser.TIME - 225)) | (1 << (FlinkSqlParser.TIMESTAMP - 225)) | (1 << (FlinkSqlParser.MULTISET - 225)) | (1 << (FlinkSqlParser.BOOLEAN - 225)) | (1 << (FlinkSqlParser.RAW - 225)) | (1 << (FlinkSqlParser.ROW - 225)) | (1 << (FlinkSqlParser.NULL - 225)) | (1 << (FlinkSqlParser.DATETIME - 225)))) !== 0))) { + this._errHandler.recoverInline(this); + } + else { + this._errHandler.reportMatch(this); + this.consume(); + } + } catch (re) { + if(re instanceof antlr4.error.RecognitionException) { + localctx.exception = re; + this._errHandler.reportError(this, re); + this._errHandler.recover(this, re); + } else { + throw re; + } + } finally { + this.exitRule(); + } + return localctx; +}; + + +FlinkSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { + switch(ruleIndex) { + case 44: + return this.queryStatement_sempred(localctx, predIndex); + case 50: + return this.tableExpression_sempred(localctx, predIndex); + case 68: + return this.booleanExpression_sempred(localctx, predIndex); + case 70: + return this.valueExpression_sempred(localctx, predIndex); + case 71: + return this.primaryExpression_sempred(localctx, predIndex); + default: + throw "No predicate with index:" + ruleIndex; + } +}; + +FlinkSqlParser.prototype.queryStatement_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 0: + return this.precpred(this._ctx, 3); + default: + throw "No predicate with index:" + predIndex; + } +}; + +FlinkSqlParser.prototype.tableExpression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 1: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } +}; + +FlinkSqlParser.prototype.booleanExpression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 2: + return this.precpred(this._ctx, 2); + case 3: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } +}; + +FlinkSqlParser.prototype.valueExpression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 4: + return this.precpred(this._ctx, 6); + case 5: + return this.precpred(this._ctx, 5); + case 6: + return this.precpred(this._ctx, 4); + case 7: + return this.precpred(this._ctx, 3); + case 8: + return this.precpred(this._ctx, 2); + case 9: + return this.precpred(this._ctx, 1); + default: + throw "No predicate with index:" + predIndex; + } +}; + +FlinkSqlParser.prototype.primaryExpression_sempred = function(localctx, predIndex) { + switch(predIndex) { + case 10: + return this.precpred(this._ctx, 4); + default: + throw "No predicate with index:" + predIndex; + } +}; + + +exports.FlinkSqlParser = FlinkSqlParser; diff --git a/src/lib/flinksql/FlinkSqlParser.tokens b/src/lib/flinksql/FlinkSqlParser.tokens new file mode 100644 index 0000000..dc7c732 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlParser.tokens @@ -0,0 +1,571 @@ +SPACE=1 +COMMENT_INPUT=2 +LINE_COMMENT=3 +SELECT=4 +FROM=5 +ADD=6 +AS=7 +ALL=8 +ANY=9 +DISTINCT=10 +WHERE=11 +GROUP=12 +BY=13 +GROUPING=14 +SETS=15 +CUBE=16 +ROLLUP=17 +ORDER=18 +HAVING=19 +LIMIT=20 +AT=21 +OR=22 +AND=23 +IN=24 +NOT=25 +NO=26 +EXISTS=27 +BETWEEN=28 +LIKE=29 +RLIKE=30 +IS=31 +TRUE=32 +FALSE=33 +NULLS=34 +ASC=35 +DESC=36 +FOR=37 +INTERVAL=38 +CASE=39 +WHEN=40 +THEN=41 +ELSE=42 +END=43 +JOIN=44 +CROSS=45 +OUTER=46 +INNER=47 +LEFT=48 +SEMI=49 +RIGHT=50 +FULL=51 +NATURAL=52 +ON=53 +PIVOT=54 +LATERAL=55 +WINDOW=56 +OVER=57 +PARTITION=58 +RANGE=59 +ROWS=60 +UNBOUNDED=61 +PRECEDING=62 +FOLLOWING=63 +CURRENT=64 +FIRST=65 +AFTER=66 +LAST=67 +WITH=68 +VALUES=69 +CREATE=70 +TABLE=71 +DIRECTORY=72 +VIEW=73 +REPLACE=74 +INSERT=75 +DELETE=76 +INTO=77 +DESCRIBE=78 +EXPLAIN=79 +FORMAT=80 +LOGICAL=81 +CODEGEN=82 +COST=83 +CAST=84 +SHOW=85 +TABLES=86 +COLUMNS=87 +COLUMN=88 +USE=89 +PARTITIONS=90 +FUNCTIONS=91 +DROP=92 +UNION=93 +EXCEPT=94 +SETMINUS=95 +INTERSECT=96 +TO=97 +TABLESAMPLE=98 +STRATIFY=99 +ALTER=100 +RENAME=101 +STRUCT=102 +COMMENT=103 +SET=104 +RESET=105 +DATA=106 +START=107 +TRANSACTION=108 +COMMIT=109 +ROLLBACK=110 +MACRO=111 +IGNORE=112 +BOTH=113 +LEADING=114 +TRAILING=115 +IF=116 +POSITION=117 +EXTRACT=118 +MINUS=119 +DIV=120 +PERCENTLIT=121 +BUCKET=122 +OUT=123 +OF=124 +SORT=125 +CLUSTER=126 +DISTRIBUTE=127 +OVERWRITE=128 +TRANSFORM=129 +REDUCE=130 +USING=131 +SERDE=132 +SERDEPROPERTIES=133 +RECORDREADER=134 +RECORDWRITER=135 +DELIMITED=136 +FIELDS=137 +TERMINATED=138 +COLLECTION=139 +ITEMS=140 +KEYS=141 +ESCAPED=142 +LINES=143 +SEPARATED=144 +FUNCTION=145 +EXTENDED=146 +REFRESH=147 +CLEAR=148 +CACHE=149 +UNCACHE=150 +LAZY=151 +FORMATTED=152 +GLOBAL=153 +TEMPORARY=154 +OPTIONS=155 +UNSET=156 +TBLPROPERTIES=157 +DBPROPERTIES=158 +BUCKETS=159 +SKEWED=160 +STORED=161 +DIRECTORIES=162 +LOCATION=163 +EXCHANGE=164 +ARCHIVE=165 +UNARCHIVE=166 +FILEFORMAT=167 +TOUCH=168 +COMPACT=169 +CONCATENATE=170 +CHANGE=171 +CASCADE=172 +CONSTRAINT=173 +RESTRICT=174 +CLUSTERED=175 +SORTED=176 +PURGE=177 +INPUTFORMAT=178 +OUTPUTFORMAT=179 +DATABASE=180 +DATABASES=181 +DFS=182 +TRUNCATE=183 +ANALYZE=184 +COMPUTE=185 +LIST=186 +STATISTICS=187 +PARTITIONED=188 +EXTERNAL=189 +DEFINED=190 +REVOKE=191 +GRANT=192 +LOCK=193 +UNLOCK=194 +MSCK=195 +REPAIR=196 +RECOVER=197 +EXPORT=198 +IMPORT=199 +LOAD=200 +ROLE=201 +ROLES=202 +COMPACTIONS=203 +PRINCIPALS=204 +TRANSACTIONS=205 +INDEX=206 +INDEXES=207 +LOCKS=208 +OPTION=209 +ANTI=210 +LOCAL=211 +INPATH=212 +WATERMARK=213 +UNNEST=214 +MATCH=215 +NEXT=216 +WITHIN=217 +WS=218 +SYSTEM=219 +INCLUDING=220 +EXCLUDING=221 +CONSTRAINTS=222 +GENERATED=223 +CATALOG=224 +LANGUAGE=225 +CATALOGS=226 +VIEWS=227 +PRIMARY=228 +KEY=229 +PERIOD=230 +SYSTEM_TIME=231 +STRING=232 +ARRAY=233 +MAP=234 +CHAR=235 +VARCHAR=236 +BINARY=237 +VARBINARY=238 +BYTES=239 +DECIMAL=240 +TINYINT=241 +SMALLINT=242 +INT=243 +BIGINT=244 +FLOAT=245 +DOUBLE=246 +DATE=247 +TIME=248 +TIMESTAMP=249 +MULTISET=250 +BOOLEAN=251 +RAW=252 +ROW=253 +NULL=254 +DATETIME=255 +EQUAL_SYMBOL=256 +GREATER_SYMBOL=257 +LESS_SYMBOL=258 +EXCLAMATION_SYMBOL=259 +BIT_NOT_OP=260 +BIT_OR_OP=261 +BIT_AND_OP=262 +BIT_XOR_OP=263 +DOT=264 +LS_BRACKET=265 +RS_BRACKET=266 +LR_BRACKET=267 +RR_BRACKET=268 +COMMA=269 +SEMICOLON=270 +AT_SIGN=271 +SINGLE_QUOTE_SYMB=272 +DOUBLE_QUOTE_SYMB=273 +REVERSE_QUOTE_SYMB=274 +COLON_SYMB=275 +ASTERISK_SIGN=276 +UNDERLINE_SIGN=277 +HYPNEN_SIGN=278 +ADD_SIGN=279 +PENCENT_SIGN=280 +DOUBLE_VERTICAL_SIGN=281 +DOUBLE_HYPNEN_SIGN=282 +SLASH_SIGN=283 +DOT_ID=284 +PLUS_DOT_ID=285 +STRING_LITERAL=286 +DIG_LITERAL=287 +REAL_LITERAL=288 +BIT_STRING=289 +ID_LITERAL=290 +PLUS_ID_LITERAL=291 +'SELECT'=4 +'FROM'=5 +'ADD'=6 +'AS'=7 +'ALL'=8 +'ANY'=9 +'DISTINCT'=10 +'WHERE'=11 +'GROUP'=12 +'BY'=13 +'GROUPING'=14 +'SETS'=15 +'CUBE'=16 +'ROLLUP'=17 +'ORDER'=18 +'HAVING'=19 +'LIMIT'=20 +'AT'=21 +'OR'=22 +'AND'=23 +'IN'=24 +'NOT'=25 +'NO'=26 +'EXISTS'=27 +'BETWEEN'=28 +'LIKE'=29 +'RLIKE'=30 +'IS'=31 +'TRUE'=32 +'FALSE'=33 +'NULLS'=34 +'ASC'=35 +'DESC'=36 +'FOR'=37 +'INTERVAL'=38 +'CASE'=39 +'WHEN'=40 +'THEN'=41 +'ELSE'=42 +'END'=43 +'JOIN'=44 +'CROSS'=45 +'OUTER'=46 +'INNER'=47 +'LEFT'=48 +'SEMI'=49 +'RIGHT'=50 +'FULL'=51 +'NATURAL'=52 +'ON'=53 +'PIVOT'=54 +'LATERAL'=55 +'WINDOW'=56 +'OVER'=57 +'PARTITION'=58 +'RANGE'=59 +'ROWS'=60 +'UNBOUNDED'=61 +'PRECEDING'=62 +'FOLLOWING'=63 +'CURRENT'=64 +'FIRST'=65 +'AFTER'=66 +'LAST'=67 +'WITH'=68 +'VALUES'=69 +'CREATE'=70 +'TABLE'=71 +'DIRECTORY'=72 +'VIEW'=73 +'REPLACE'=74 +'INSERT'=75 +'DELETE'=76 +'INTO'=77 +'DESCRIBE'=78 +'EXPLAIN'=79 +'FORMAT'=80 +'LOGICAL'=81 +'CODEGEN'=82 +'COST'=83 +'CAST'=84 +'SHOW'=85 +'TABLES'=86 +'COLUMNS'=87 +'COLUMN'=88 +'USE'=89 +'PARTITIONS'=90 +'FUNCTIONS'=91 +'DROP'=92 +'UNION'=93 +'EXCEPT'=94 +'SETMINUS'=95 +'INTERSECT'=96 +'TO'=97 +'TABLESAMPLE'=98 +'STRATIFY'=99 +'ALTER'=100 +'RENAME'=101 +'STRUCT'=102 +'COMMENT'=103 +'SET'=104 +'RESET'=105 +'DATA'=106 +'START'=107 +'TRANSACTION'=108 +'COMMIT'=109 +'ROLLBACK'=110 +'MACRO'=111 +'IGNORE'=112 +'BOTH'=113 +'LEADING'=114 +'TRAILING'=115 +'IF'=116 +'POSITION'=117 +'EXTRACT'=118 +'MINUS'=119 +'DIV'=120 +'PERCENTLIT'=121 +'BUCKET'=122 +'OUT'=123 +'OF'=124 +'SORT'=125 +'CLUSTER'=126 +'DISTRIBUTE'=127 +'OVERWRITE'=128 +'TRANSFORM'=129 +'REDUCE'=130 +'USING'=131 +'SERDE'=132 +'SERDEPROPERTIES'=133 +'RECORDREADER'=134 +'RECORDWRITER'=135 +'DELIMITED'=136 +'FIELDS'=137 +'TERMINATED'=138 +'COLLECTION'=139 +'ITEMS'=140 +'KEYS'=141 +'ESCAPED'=142 +'LINES'=143 +'SEPARATED'=144 +'FUNCTION'=145 +'EXTENDED'=146 +'REFRESH'=147 +'CLEAR'=148 +'CACHE'=149 +'UNCACHE'=150 +'LAZY'=151 +'FORMATTED'=152 +'GLOBAL'=153 +'TEMPORARY'=154 +'OPTIONS'=155 +'UNSET'=156 +'TBLPROPERTIES'=157 +'DBPROPERTIES'=158 +'BUCKETS'=159 +'SKEWED'=160 +'STORED'=161 +'DIRECTORIES'=162 +'LOCATION'=163 +'EXCHANGE'=164 +'ARCHIVE'=165 +'UNARCHIVE'=166 +'FILEFORMAT'=167 +'TOUCH'=168 +'COMPACT'=169 +'CONCATENATE'=170 +'CHANGE'=171 +'CASCADE'=172 +'CONSTRAINT'=173 +'RESTRICT'=174 +'CLUSTERED'=175 +'SORTED'=176 +'PURGE'=177 +'INPUTFORMAT'=178 +'OUTPUTFORMAT'=179 +'DATABASE'=180 +'DATABASES'=181 +'DFS'=182 +'TRUNCATE'=183 +'ANALYZE'=184 +'COMPUTE'=185 +'LIST'=186 +'STATISTICS'=187 +'PARTITIONED'=188 +'EXTERNAL'=189 +'DEFINED'=190 +'REVOKE'=191 +'GRANT'=192 +'LOCK'=193 +'UNLOCK'=194 +'MSCK'=195 +'REPAIR'=196 +'RECOVER'=197 +'EXPORT'=198 +'IMPORT'=199 +'LOAD'=200 +'ROLE'=201 +'ROLES'=202 +'COMPACTIONS'=203 +'PRINCIPALS'=204 +'TRANSACTIONS'=205 +'INDEX'=206 +'INDEXES'=207 +'LOCKS'=208 +'OPTION'=209 +'ANTI'=210 +'LOCAL'=211 +'INPATH'=212 +'WATERMARK'=213 +'UNNEST'=214 +'MATCH'=215 +'NEXT'=216 +'WITHIN'=217 +'WS'=218 +'SYSTEM'=219 +'INCLUDING'=220 +'EXCLUDING'=221 +'CONSTRAINTS'=222 +'GENERATED'=223 +'CATALOG'=224 +'LANGUAGE'=225 +'CATALOGS'=226 +'VIEWS'=227 +'PRIMARY'=228 +'KEY'=229 +'PERIOD'=230 +'SYSTEM_TIME'=231 +'STRING'=232 +'ARRAY'=233 +'MAP'=234 +'CHAR'=235 +'VARCHAR'=236 +'BINARY'=237 +'VARBINARY'=238 +'BYTES'=239 +'DECIMAL'=240 +'TINYINT'=241 +'SMALLINT'=242 +'INT'=243 +'BIGINT'=244 +'FLOAT'=245 +'DOUBLE'=246 +'DATE'=247 +'TIME'=248 +'TIMESTAMP'=249 +'MULTISET'=250 +'BOOLEAN'=251 +'RAW'=252 +'ROW'=253 +'NULL'=254 +'DATETIME'=255 +'='=256 +'>'=257 +'<'=258 +'!'=259 +'~'=260 +'|'=261 +'&'=262 +'^'=263 +'.'=264 +'['=265 +']'=266 +'('=267 +')'=268 +','=269 +';'=270 +'@'=271 +'\''=272 +'"'=273 +'`'=274 +':'=275 +'*'=276 +'_'=277 +'-'=278 +'+'=279 +'%'=280 +'||'=281 +'--'=282 +'/'=283 diff --git a/src/lib/flinksql/FlinkSqlParserListener.js b/src/lib/flinksql/FlinkSqlParserListener.js new file mode 100644 index 0000000..ee71518 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlParserListener.js @@ -0,0 +1,1275 @@ +// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete listener for a parse tree produced by FlinkSqlParser. +function FlinkSqlParserListener() { + antlr4.tree.ParseTreeListener.call(this); + return this; +} + +FlinkSqlParserListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); +FlinkSqlParserListener.prototype.constructor = FlinkSqlParserListener; + +// Enter a parse tree produced by FlinkSqlParser#program. +FlinkSqlParserListener.prototype.enterProgram = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#program. +FlinkSqlParserListener.prototype.exitProgram = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#statement. +FlinkSqlParserListener.prototype.enterStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#statement. +FlinkSqlParserListener.prototype.exitStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#sqlStatements. +FlinkSqlParserListener.prototype.enterSqlStatements = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#sqlStatements. +FlinkSqlParserListener.prototype.exitSqlStatements = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#sqlStatement. +FlinkSqlParserListener.prototype.enterSqlStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#sqlStatement. +FlinkSqlParserListener.prototype.exitSqlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#emptyStatement. +FlinkSqlParserListener.prototype.enterEmptyStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#emptyStatement. +FlinkSqlParserListener.prototype.exitEmptyStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#ddlStatement. +FlinkSqlParserListener.prototype.enterDdlStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#ddlStatement. +FlinkSqlParserListener.prototype.exitDdlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dmlStatement. +FlinkSqlParserListener.prototype.enterDmlStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dmlStatement. +FlinkSqlParserListener.prototype.exitDmlStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#describeStatement. +FlinkSqlParserListener.prototype.enterDescribeStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#describeStatement. +FlinkSqlParserListener.prototype.exitDescribeStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#explainStatement. +FlinkSqlParserListener.prototype.enterExplainStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#explainStatement. +FlinkSqlParserListener.prototype.exitExplainStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#useStatement. +FlinkSqlParserListener.prototype.enterUseStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#useStatement. +FlinkSqlParserListener.prototype.exitUseStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#showStatememt. +FlinkSqlParserListener.prototype.enterShowStatememt = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#showStatememt. +FlinkSqlParserListener.prototype.exitShowStatememt = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#createTable. +FlinkSqlParserListener.prototype.enterCreateTable = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#createTable. +FlinkSqlParserListener.prototype.exitCreateTable = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnOptionDefinition. +FlinkSqlParserListener.prototype.enterColumnOptionDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnOptionDefinition. +FlinkSqlParserListener.prototype.exitColumnOptionDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnName. +FlinkSqlParserListener.prototype.enterColumnName = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnName. +FlinkSqlParserListener.prototype.exitColumnName = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnNameList. +FlinkSqlParserListener.prototype.enterColumnNameList = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnNameList. +FlinkSqlParserListener.prototype.exitColumnNameList = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnType. +FlinkSqlParserListener.prototype.enterColumnType = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnType. +FlinkSqlParserListener.prototype.exitColumnType = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#lengthOneDimension. +FlinkSqlParserListener.prototype.enterLengthOneDimension = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#lengthOneDimension. +FlinkSqlParserListener.prototype.exitLengthOneDimension = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#commentSpec. +FlinkSqlParserListener.prototype.enterCommentSpec = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#commentSpec. +FlinkSqlParserListener.prototype.exitCommentSpec = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#watermarkDefinition. +FlinkSqlParserListener.prototype.enterWatermarkDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#watermarkDefinition. +FlinkSqlParserListener.prototype.exitWatermarkDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tableConstraint. +FlinkSqlParserListener.prototype.enterTableConstraint = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tableConstraint. +FlinkSqlParserListener.prototype.exitTableConstraint = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#selfDefinitionClause. +FlinkSqlParserListener.prototype.enterSelfDefinitionClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#selfDefinitionClause. +FlinkSqlParserListener.prototype.exitSelfDefinitionClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#partitionDefinition. +FlinkSqlParserListener.prototype.enterPartitionDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#partitionDefinition. +FlinkSqlParserListener.prototype.exitPartitionDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#transformList. +FlinkSqlParserListener.prototype.enterTransformList = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#transformList. +FlinkSqlParserListener.prototype.exitTransformList = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#identityTransform. +FlinkSqlParserListener.prototype.enterIdentityTransform = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#identityTransform. +FlinkSqlParserListener.prototype.exitIdentityTransform = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#applyTransform. +FlinkSqlParserListener.prototype.enterApplyTransform = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#applyTransform. +FlinkSqlParserListener.prototype.exitApplyTransform = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#transformArgument. +FlinkSqlParserListener.prototype.enterTransformArgument = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#transformArgument. +FlinkSqlParserListener.prototype.exitTransformArgument = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#likeDefinition. +FlinkSqlParserListener.prototype.enterLikeDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#likeDefinition. +FlinkSqlParserListener.prototype.exitLikeDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#likeOption. +FlinkSqlParserListener.prototype.enterLikeOption = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#likeOption. +FlinkSqlParserListener.prototype.exitLikeOption = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#createCatalog. +FlinkSqlParserListener.prototype.enterCreateCatalog = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#createCatalog. +FlinkSqlParserListener.prototype.exitCreateCatalog = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#createDatabase. +FlinkSqlParserListener.prototype.enterCreateDatabase = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#createDatabase. +FlinkSqlParserListener.prototype.exitCreateDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#createView. +FlinkSqlParserListener.prototype.enterCreateView = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#createView. +FlinkSqlParserListener.prototype.exitCreateView = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#createFunction. +FlinkSqlParserListener.prototype.enterCreateFunction = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#createFunction. +FlinkSqlParserListener.prototype.exitCreateFunction = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#alterTable. +FlinkSqlParserListener.prototype.enterAlterTable = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#alterTable. +FlinkSqlParserListener.prototype.exitAlterTable = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#renameDefinition. +FlinkSqlParserListener.prototype.enterRenameDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#renameDefinition. +FlinkSqlParserListener.prototype.exitRenameDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#setKeyValueDefinition. +FlinkSqlParserListener.prototype.enterSetKeyValueDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#setKeyValueDefinition. +FlinkSqlParserListener.prototype.exitSetKeyValueDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#alterDatabase. +FlinkSqlParserListener.prototype.enterAlterDatabase = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#alterDatabase. +FlinkSqlParserListener.prototype.exitAlterDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#alterFunction. +FlinkSqlParserListener.prototype.enterAlterFunction = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#alterFunction. +FlinkSqlParserListener.prototype.exitAlterFunction = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dropTable. +FlinkSqlParserListener.prototype.enterDropTable = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dropTable. +FlinkSqlParserListener.prototype.exitDropTable = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dropDatabase. +FlinkSqlParserListener.prototype.enterDropDatabase = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dropDatabase. +FlinkSqlParserListener.prototype.exitDropDatabase = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dropView. +FlinkSqlParserListener.prototype.enterDropView = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dropView. +FlinkSqlParserListener.prototype.exitDropView = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dropFunction. +FlinkSqlParserListener.prototype.enterDropFunction = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dropFunction. +FlinkSqlParserListener.prototype.exitDropFunction = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#insertStatement. +FlinkSqlParserListener.prototype.enterInsertStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#insertStatement. +FlinkSqlParserListener.prototype.exitInsertStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#insertPartitionDefinition. +FlinkSqlParserListener.prototype.enterInsertPartitionDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#insertPartitionDefinition. +FlinkSqlParserListener.prototype.exitInsertPartitionDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#valuesDefinition. +FlinkSqlParserListener.prototype.enterValuesDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#valuesDefinition. +FlinkSqlParserListener.prototype.exitValuesDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#valuesRowDefinition. +FlinkSqlParserListener.prototype.enterValuesRowDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#valuesRowDefinition. +FlinkSqlParserListener.prototype.exitValuesRowDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#queryStatement. +FlinkSqlParserListener.prototype.enterQueryStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#queryStatement. +FlinkSqlParserListener.prototype.exitQueryStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#valuesCaluse. +FlinkSqlParserListener.prototype.enterValuesCaluse = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#valuesCaluse. +FlinkSqlParserListener.prototype.exitValuesCaluse = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#selectStatement. +FlinkSqlParserListener.prototype.enterSelectStatement = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#selectStatement. +FlinkSqlParserListener.prototype.exitSelectStatement = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#selectClause. +FlinkSqlParserListener.prototype.enterSelectClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#selectClause. +FlinkSqlParserListener.prototype.exitSelectClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#projectItemDefinition. +FlinkSqlParserListener.prototype.enterProjectItemDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#projectItemDefinition. +FlinkSqlParserListener.prototype.exitProjectItemDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#fromClause. +FlinkSqlParserListener.prototype.enterFromClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#fromClause. +FlinkSqlParserListener.prototype.exitFromClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tableExpression. +FlinkSqlParserListener.prototype.enterTableExpression = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tableExpression. +FlinkSqlParserListener.prototype.exitTableExpression = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tableReference. +FlinkSqlParserListener.prototype.enterTableReference = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tableReference. +FlinkSqlParserListener.prototype.exitTableReference = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tablePrimary. +FlinkSqlParserListener.prototype.enterTablePrimary = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tablePrimary. +FlinkSqlParserListener.prototype.exitTablePrimary = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#joinCondition. +FlinkSqlParserListener.prototype.enterJoinCondition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#joinCondition. +FlinkSqlParserListener.prototype.exitJoinCondition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#whereClause. +FlinkSqlParserListener.prototype.enterWhereClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#whereClause. +FlinkSqlParserListener.prototype.exitWhereClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#groupByClause. +FlinkSqlParserListener.prototype.enterGroupByClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#groupByClause. +FlinkSqlParserListener.prototype.exitGroupByClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#groupItemDefinition. +FlinkSqlParserListener.prototype.enterGroupItemDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#groupItemDefinition. +FlinkSqlParserListener.prototype.exitGroupItemDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#havingClause. +FlinkSqlParserListener.prototype.enterHavingClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#havingClause. +FlinkSqlParserListener.prototype.exitHavingClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#orderByCaluse. +FlinkSqlParserListener.prototype.enterOrderByCaluse = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#orderByCaluse. +FlinkSqlParserListener.prototype.exitOrderByCaluse = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#orderItemDefition. +FlinkSqlParserListener.prototype.enterOrderItemDefition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#orderItemDefition. +FlinkSqlParserListener.prototype.exitOrderItemDefition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#limitClause. +FlinkSqlParserListener.prototype.enterLimitClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#limitClause. +FlinkSqlParserListener.prototype.exitLimitClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#windowClause. +FlinkSqlParserListener.prototype.enterWindowClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#windowClause. +FlinkSqlParserListener.prototype.exitWindowClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#namedWindow. +FlinkSqlParserListener.prototype.enterNamedWindow = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#namedWindow. +FlinkSqlParserListener.prototype.exitNamedWindow = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#windowSpec. +FlinkSqlParserListener.prototype.enterWindowSpec = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#windowSpec. +FlinkSqlParserListener.prototype.exitWindowSpec = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#sortItem. +FlinkSqlParserListener.prototype.enterSortItem = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#sortItem. +FlinkSqlParserListener.prototype.exitSortItem = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#windowFrame. +FlinkSqlParserListener.prototype.enterWindowFrame = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#windowFrame. +FlinkSqlParserListener.prototype.exitWindowFrame = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#frameBound. +FlinkSqlParserListener.prototype.enterFrameBound = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#frameBound. +FlinkSqlParserListener.prototype.exitFrameBound = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#expression. +FlinkSqlParserListener.prototype.enterExpression = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#expression. +FlinkSqlParserListener.prototype.exitExpression = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#logicalNot. +FlinkSqlParserListener.prototype.enterLogicalNot = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#logicalNot. +FlinkSqlParserListener.prototype.exitLogicalNot = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#predicated. +FlinkSqlParserListener.prototype.enterPredicated = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#predicated. +FlinkSqlParserListener.prototype.exitPredicated = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#exists. +FlinkSqlParserListener.prototype.enterExists = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#exists. +FlinkSqlParserListener.prototype.exitExists = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#logicalBinary. +FlinkSqlParserListener.prototype.enterLogicalBinary = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#logicalBinary. +FlinkSqlParserListener.prototype.exitLogicalBinary = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#predicate. +FlinkSqlParserListener.prototype.enterPredicate = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#predicate. +FlinkSqlParserListener.prototype.exitPredicate = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#valueExpressionDefault. +FlinkSqlParserListener.prototype.enterValueExpressionDefault = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#valueExpressionDefault. +FlinkSqlParserListener.prototype.exitValueExpressionDefault = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#comparison. +FlinkSqlParserListener.prototype.enterComparison = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#comparison. +FlinkSqlParserListener.prototype.exitComparison = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#arithmeticBinary. +FlinkSqlParserListener.prototype.enterArithmeticBinary = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#arithmeticBinary. +FlinkSqlParserListener.prototype.exitArithmeticBinary = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#arithmeticUnary. +FlinkSqlParserListener.prototype.enterArithmeticUnary = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#arithmeticUnary. +FlinkSqlParserListener.prototype.exitArithmeticUnary = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dereference. +FlinkSqlParserListener.prototype.enterDereference = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dereference. +FlinkSqlParserListener.prototype.exitDereference = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#simpleCase. +FlinkSqlParserListener.prototype.enterSimpleCase = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#simpleCase. +FlinkSqlParserListener.prototype.exitSimpleCase = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnReference. +FlinkSqlParserListener.prototype.enterColumnReference = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnReference. +FlinkSqlParserListener.prototype.exitColumnReference = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#last. +FlinkSqlParserListener.prototype.enterLast = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#last. +FlinkSqlParserListener.prototype.exitLast = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#star. +FlinkSqlParserListener.prototype.enterStar = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#star. +FlinkSqlParserListener.prototype.exitStar = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#subscript. +FlinkSqlParserListener.prototype.enterSubscript = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#subscript. +FlinkSqlParserListener.prototype.exitSubscript = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#subqueryExpression. +FlinkSqlParserListener.prototype.enterSubqueryExpression = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#subqueryExpression. +FlinkSqlParserListener.prototype.exitSubqueryExpression = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#cast. +FlinkSqlParserListener.prototype.enterCast = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#cast. +FlinkSqlParserListener.prototype.exitCast = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#constantDefault. +FlinkSqlParserListener.prototype.enterConstantDefault = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#constantDefault. +FlinkSqlParserListener.prototype.exitConstantDefault = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#parenthesizedExpression. +FlinkSqlParserListener.prototype.enterParenthesizedExpression = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#parenthesizedExpression. +FlinkSqlParserListener.prototype.exitParenthesizedExpression = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#functionCall. +FlinkSqlParserListener.prototype.enterFunctionCall = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#functionCall. +FlinkSqlParserListener.prototype.exitFunctionCall = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#searchedCase. +FlinkSqlParserListener.prototype.enterSearchedCase = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#searchedCase. +FlinkSqlParserListener.prototype.exitSearchedCase = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#position. +FlinkSqlParserListener.prototype.enterPosition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#position. +FlinkSqlParserListener.prototype.exitPosition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#first. +FlinkSqlParserListener.prototype.enterFirst = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#first. +FlinkSqlParserListener.prototype.exitFirst = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#functionName. +FlinkSqlParserListener.prototype.enterFunctionName = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#functionName. +FlinkSqlParserListener.prototype.exitFunctionName = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#dereferenceDefinition. +FlinkSqlParserListener.prototype.enterDereferenceDefinition = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#dereferenceDefinition. +FlinkSqlParserListener.prototype.exitDereferenceDefinition = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#qualifiedName. +FlinkSqlParserListener.prototype.enterQualifiedName = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#qualifiedName. +FlinkSqlParserListener.prototype.exitQualifiedName = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#interval. +FlinkSqlParserListener.prototype.enterInterval = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#interval. +FlinkSqlParserListener.prototype.exitInterval = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#errorCapturingMultiUnitsInterval. +FlinkSqlParserListener.prototype.enterErrorCapturingMultiUnitsInterval = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#errorCapturingMultiUnitsInterval. +FlinkSqlParserListener.prototype.exitErrorCapturingMultiUnitsInterval = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#multiUnitsInterval. +FlinkSqlParserListener.prototype.enterMultiUnitsInterval = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#multiUnitsInterval. +FlinkSqlParserListener.prototype.exitMultiUnitsInterval = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#errorCapturingUnitToUnitInterval. +FlinkSqlParserListener.prototype.enterErrorCapturingUnitToUnitInterval = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#errorCapturingUnitToUnitInterval. +FlinkSqlParserListener.prototype.exitErrorCapturingUnitToUnitInterval = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#unitToUnitInterval. +FlinkSqlParserListener.prototype.enterUnitToUnitInterval = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#unitToUnitInterval. +FlinkSqlParserListener.prototype.exitUnitToUnitInterval = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#intervalValue. +FlinkSqlParserListener.prototype.enterIntervalValue = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#intervalValue. +FlinkSqlParserListener.prototype.exitIntervalValue = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#columnAlias. +FlinkSqlParserListener.prototype.enterColumnAlias = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#columnAlias. +FlinkSqlParserListener.prototype.exitColumnAlias = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tableAlias. +FlinkSqlParserListener.prototype.enterTableAlias = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tableAlias. +FlinkSqlParserListener.prototype.exitTableAlias = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#errorCapturingIdentifier. +FlinkSqlParserListener.prototype.enterErrorCapturingIdentifier = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#errorCapturingIdentifier. +FlinkSqlParserListener.prototype.exitErrorCapturingIdentifier = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#errorIdent. +FlinkSqlParserListener.prototype.enterErrorIdent = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#errorIdent. +FlinkSqlParserListener.prototype.exitErrorIdent = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#realIdent. +FlinkSqlParserListener.prototype.enterRealIdent = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#realIdent. +FlinkSqlParserListener.prototype.exitRealIdent = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#identifierList. +FlinkSqlParserListener.prototype.enterIdentifierList = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#identifierList. +FlinkSqlParserListener.prototype.exitIdentifierList = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#identifierSeq. +FlinkSqlParserListener.prototype.enterIdentifierSeq = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#identifierSeq. +FlinkSqlParserListener.prototype.exitIdentifierSeq = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#identifier. +FlinkSqlParserListener.prototype.enterIdentifier = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#identifier. +FlinkSqlParserListener.prototype.exitIdentifier = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#unquotedIdentifierAlternative. +FlinkSqlParserListener.prototype.enterUnquotedIdentifierAlternative = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#unquotedIdentifierAlternative. +FlinkSqlParserListener.prototype.exitUnquotedIdentifierAlternative = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#quotedIdentifierAlternative. +FlinkSqlParserListener.prototype.enterQuotedIdentifierAlternative = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#quotedIdentifierAlternative. +FlinkSqlParserListener.prototype.exitQuotedIdentifierAlternative = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#ansiNonReservedKeywords. +FlinkSqlParserListener.prototype.enterAnsiNonReservedKeywords = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#ansiNonReservedKeywords. +FlinkSqlParserListener.prototype.exitAnsiNonReservedKeywords = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#nonReservedKeywords. +FlinkSqlParserListener.prototype.enterNonReservedKeywords = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#nonReservedKeywords. +FlinkSqlParserListener.prototype.exitNonReservedKeywords = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#unquotedIdentifier. +FlinkSqlParserListener.prototype.enterUnquotedIdentifier = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#unquotedIdentifier. +FlinkSqlParserListener.prototype.exitUnquotedIdentifier = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#quotedIdentifier. +FlinkSqlParserListener.prototype.enterQuotedIdentifier = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#quotedIdentifier. +FlinkSqlParserListener.prototype.exitQuotedIdentifier = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#whenClause. +FlinkSqlParserListener.prototype.enterWhenClause = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#whenClause. +FlinkSqlParserListener.prototype.exitWhenClause = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#uidList. +FlinkSqlParserListener.prototype.enterUidList = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#uidList. +FlinkSqlParserListener.prototype.exitUidList = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#uid. +FlinkSqlParserListener.prototype.enterUid = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#uid. +FlinkSqlParserListener.prototype.exitUid = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#plusUid. +FlinkSqlParserListener.prototype.enterPlusUid = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#plusUid. +FlinkSqlParserListener.prototype.exitPlusUid = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#withOption. +FlinkSqlParserListener.prototype.enterWithOption = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#withOption. +FlinkSqlParserListener.prototype.exitWithOption = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#ifNotExists. +FlinkSqlParserListener.prototype.enterIfNotExists = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#ifNotExists. +FlinkSqlParserListener.prototype.exitIfNotExists = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#ifExists. +FlinkSqlParserListener.prototype.enterIfExists = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#ifExists. +FlinkSqlParserListener.prototype.exitIfExists = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tablePropertyList. +FlinkSqlParserListener.prototype.enterTablePropertyList = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tablePropertyList. +FlinkSqlParserListener.prototype.exitTablePropertyList = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tableProperty. +FlinkSqlParserListener.prototype.enterTableProperty = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tableProperty. +FlinkSqlParserListener.prototype.exitTableProperty = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tablePropertyKey. +FlinkSqlParserListener.prototype.enterTablePropertyKey = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tablePropertyKey. +FlinkSqlParserListener.prototype.exitTablePropertyKey = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#tablePropertyValue. +FlinkSqlParserListener.prototype.enterTablePropertyValue = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#tablePropertyValue. +FlinkSqlParserListener.prototype.exitTablePropertyValue = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#logicalOperator. +FlinkSqlParserListener.prototype.enterLogicalOperator = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#logicalOperator. +FlinkSqlParserListener.prototype.exitLogicalOperator = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#comparisonOperator. +FlinkSqlParserListener.prototype.enterComparisonOperator = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#comparisonOperator. +FlinkSqlParserListener.prototype.exitComparisonOperator = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#bitOperator. +FlinkSqlParserListener.prototype.enterBitOperator = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#bitOperator. +FlinkSqlParserListener.prototype.exitBitOperator = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#mathOperator. +FlinkSqlParserListener.prototype.enterMathOperator = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#mathOperator. +FlinkSqlParserListener.prototype.exitMathOperator = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#unaryOperator. +FlinkSqlParserListener.prototype.enterUnaryOperator = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#unaryOperator. +FlinkSqlParserListener.prototype.exitUnaryOperator = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#fullColumnName. +FlinkSqlParserListener.prototype.enterFullColumnName = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#fullColumnName. +FlinkSqlParserListener.prototype.exitFullColumnName = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#constant. +FlinkSqlParserListener.prototype.enterConstant = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#constant. +FlinkSqlParserListener.prototype.exitConstant = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#stringLiteral. +FlinkSqlParserListener.prototype.enterStringLiteral = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#stringLiteral. +FlinkSqlParserListener.prototype.exitStringLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#decimalLiteral. +FlinkSqlParserListener.prototype.enterDecimalLiteral = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#decimalLiteral. +FlinkSqlParserListener.prototype.exitDecimalLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#booleanLiteral. +FlinkSqlParserListener.prototype.enterBooleanLiteral = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#booleanLiteral. +FlinkSqlParserListener.prototype.exitBooleanLiteral = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#setQuantifier. +FlinkSqlParserListener.prototype.enterSetQuantifier = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#setQuantifier. +FlinkSqlParserListener.prototype.exitSetQuantifier = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#ansiNonReserved. +FlinkSqlParserListener.prototype.enterAnsiNonReserved = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#ansiNonReserved. +FlinkSqlParserListener.prototype.exitAnsiNonReserved = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#strictNonReserved. +FlinkSqlParserListener.prototype.enterStrictNonReserved = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#strictNonReserved. +FlinkSqlParserListener.prototype.exitStrictNonReserved = function(ctx) { +}; + + +// Enter a parse tree produced by FlinkSqlParser#nonReserved. +FlinkSqlParserListener.prototype.enterNonReserved = function(ctx) { +}; + +// Exit a parse tree produced by FlinkSqlParser#nonReserved. +FlinkSqlParserListener.prototype.exitNonReserved = function(ctx) { +}; + + + +exports.FlinkSqlParserListener = FlinkSqlParserListener; \ No newline at end of file diff --git a/src/lib/flinksql/FlinkSqlParserVisitor.js b/src/lib/flinksql/FlinkSqlParserVisitor.js new file mode 100644 index 0000000..12090b9 --- /dev/null +++ b/src/lib/flinksql/FlinkSqlParserVisitor.js @@ -0,0 +1,856 @@ +// Generated from /Users/erindeng/Desktop/dt-sql-parser/src/grammar/flinksql/FlinkSqlParser.g4 by ANTLR 4.8 +// jshint ignore: start +var antlr4 = require('antlr4/index'); + +// This class defines a complete generic visitor for a parse tree produced by FlinkSqlParser. + +function FlinkSqlParserVisitor() { + antlr4.tree.ParseTreeVisitor.call(this); + return this; +} + +FlinkSqlParserVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); +FlinkSqlParserVisitor.prototype.constructor = FlinkSqlParserVisitor; + +// Visit a parse tree produced by FlinkSqlParser#program. +FlinkSqlParserVisitor.prototype.visitProgram = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#statement. +FlinkSqlParserVisitor.prototype.visitStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#sqlStatements. +FlinkSqlParserVisitor.prototype.visitSqlStatements = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#sqlStatement. +FlinkSqlParserVisitor.prototype.visitSqlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#emptyStatement. +FlinkSqlParserVisitor.prototype.visitEmptyStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#ddlStatement. +FlinkSqlParserVisitor.prototype.visitDdlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dmlStatement. +FlinkSqlParserVisitor.prototype.visitDmlStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#describeStatement. +FlinkSqlParserVisitor.prototype.visitDescribeStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#explainStatement. +FlinkSqlParserVisitor.prototype.visitExplainStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#useStatement. +FlinkSqlParserVisitor.prototype.visitUseStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#showStatememt. +FlinkSqlParserVisitor.prototype.visitShowStatememt = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#createTable. +FlinkSqlParserVisitor.prototype.visitCreateTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnOptionDefinition. +FlinkSqlParserVisitor.prototype.visitColumnOptionDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnName. +FlinkSqlParserVisitor.prototype.visitColumnName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnNameList. +FlinkSqlParserVisitor.prototype.visitColumnNameList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnType. +FlinkSqlParserVisitor.prototype.visitColumnType = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#lengthOneDimension. +FlinkSqlParserVisitor.prototype.visitLengthOneDimension = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#commentSpec. +FlinkSqlParserVisitor.prototype.visitCommentSpec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#watermarkDefinition. +FlinkSqlParserVisitor.prototype.visitWatermarkDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tableConstraint. +FlinkSqlParserVisitor.prototype.visitTableConstraint = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#selfDefinitionClause. +FlinkSqlParserVisitor.prototype.visitSelfDefinitionClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#partitionDefinition. +FlinkSqlParserVisitor.prototype.visitPartitionDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#transformList. +FlinkSqlParserVisitor.prototype.visitTransformList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#identityTransform. +FlinkSqlParserVisitor.prototype.visitIdentityTransform = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#applyTransform. +FlinkSqlParserVisitor.prototype.visitApplyTransform = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#transformArgument. +FlinkSqlParserVisitor.prototype.visitTransformArgument = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#likeDefinition. +FlinkSqlParserVisitor.prototype.visitLikeDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#likeOption. +FlinkSqlParserVisitor.prototype.visitLikeOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#createCatalog. +FlinkSqlParserVisitor.prototype.visitCreateCatalog = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#createDatabase. +FlinkSqlParserVisitor.prototype.visitCreateDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#createView. +FlinkSqlParserVisitor.prototype.visitCreateView = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#createFunction. +FlinkSqlParserVisitor.prototype.visitCreateFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#alterTable. +FlinkSqlParserVisitor.prototype.visitAlterTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#renameDefinition. +FlinkSqlParserVisitor.prototype.visitRenameDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#setKeyValueDefinition. +FlinkSqlParserVisitor.prototype.visitSetKeyValueDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#alterDatabase. +FlinkSqlParserVisitor.prototype.visitAlterDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#alterFunction. +FlinkSqlParserVisitor.prototype.visitAlterFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dropTable. +FlinkSqlParserVisitor.prototype.visitDropTable = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dropDatabase. +FlinkSqlParserVisitor.prototype.visitDropDatabase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dropView. +FlinkSqlParserVisitor.prototype.visitDropView = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dropFunction. +FlinkSqlParserVisitor.prototype.visitDropFunction = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#insertStatement. +FlinkSqlParserVisitor.prototype.visitInsertStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#insertPartitionDefinition. +FlinkSqlParserVisitor.prototype.visitInsertPartitionDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#valuesDefinition. +FlinkSqlParserVisitor.prototype.visitValuesDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#valuesRowDefinition. +FlinkSqlParserVisitor.prototype.visitValuesRowDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#queryStatement. +FlinkSqlParserVisitor.prototype.visitQueryStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#valuesCaluse. +FlinkSqlParserVisitor.prototype.visitValuesCaluse = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#selectStatement. +FlinkSqlParserVisitor.prototype.visitSelectStatement = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#selectClause. +FlinkSqlParserVisitor.prototype.visitSelectClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#projectItemDefinition. +FlinkSqlParserVisitor.prototype.visitProjectItemDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#fromClause. +FlinkSqlParserVisitor.prototype.visitFromClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tableExpression. +FlinkSqlParserVisitor.prototype.visitTableExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tableReference. +FlinkSqlParserVisitor.prototype.visitTableReference = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tablePrimary. +FlinkSqlParserVisitor.prototype.visitTablePrimary = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#joinCondition. +FlinkSqlParserVisitor.prototype.visitJoinCondition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#whereClause. +FlinkSqlParserVisitor.prototype.visitWhereClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#groupByClause. +FlinkSqlParserVisitor.prototype.visitGroupByClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#groupItemDefinition. +FlinkSqlParserVisitor.prototype.visitGroupItemDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#havingClause. +FlinkSqlParserVisitor.prototype.visitHavingClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#orderByCaluse. +FlinkSqlParserVisitor.prototype.visitOrderByCaluse = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#orderItemDefition. +FlinkSqlParserVisitor.prototype.visitOrderItemDefition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#limitClause. +FlinkSqlParserVisitor.prototype.visitLimitClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#windowClause. +FlinkSqlParserVisitor.prototype.visitWindowClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#namedWindow. +FlinkSqlParserVisitor.prototype.visitNamedWindow = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#windowSpec. +FlinkSqlParserVisitor.prototype.visitWindowSpec = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#sortItem. +FlinkSqlParserVisitor.prototype.visitSortItem = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#windowFrame. +FlinkSqlParserVisitor.prototype.visitWindowFrame = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#frameBound. +FlinkSqlParserVisitor.prototype.visitFrameBound = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#expression. +FlinkSqlParserVisitor.prototype.visitExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#logicalNot. +FlinkSqlParserVisitor.prototype.visitLogicalNot = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#predicated. +FlinkSqlParserVisitor.prototype.visitPredicated = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#exists. +FlinkSqlParserVisitor.prototype.visitExists = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#logicalBinary. +FlinkSqlParserVisitor.prototype.visitLogicalBinary = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#predicate. +FlinkSqlParserVisitor.prototype.visitPredicate = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#valueExpressionDefault. +FlinkSqlParserVisitor.prototype.visitValueExpressionDefault = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#comparison. +FlinkSqlParserVisitor.prototype.visitComparison = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#arithmeticBinary. +FlinkSqlParserVisitor.prototype.visitArithmeticBinary = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#arithmeticUnary. +FlinkSqlParserVisitor.prototype.visitArithmeticUnary = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dereference. +FlinkSqlParserVisitor.prototype.visitDereference = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#simpleCase. +FlinkSqlParserVisitor.prototype.visitSimpleCase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnReference. +FlinkSqlParserVisitor.prototype.visitColumnReference = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#last. +FlinkSqlParserVisitor.prototype.visitLast = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#star. +FlinkSqlParserVisitor.prototype.visitStar = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#subscript. +FlinkSqlParserVisitor.prototype.visitSubscript = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#subqueryExpression. +FlinkSqlParserVisitor.prototype.visitSubqueryExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#cast. +FlinkSqlParserVisitor.prototype.visitCast = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#constantDefault. +FlinkSqlParserVisitor.prototype.visitConstantDefault = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#parenthesizedExpression. +FlinkSqlParserVisitor.prototype.visitParenthesizedExpression = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#functionCall. +FlinkSqlParserVisitor.prototype.visitFunctionCall = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#searchedCase. +FlinkSqlParserVisitor.prototype.visitSearchedCase = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#position. +FlinkSqlParserVisitor.prototype.visitPosition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#first. +FlinkSqlParserVisitor.prototype.visitFirst = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#functionName. +FlinkSqlParserVisitor.prototype.visitFunctionName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#dereferenceDefinition. +FlinkSqlParserVisitor.prototype.visitDereferenceDefinition = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#qualifiedName. +FlinkSqlParserVisitor.prototype.visitQualifiedName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#interval. +FlinkSqlParserVisitor.prototype.visitInterval = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#errorCapturingMultiUnitsInterval. +FlinkSqlParserVisitor.prototype.visitErrorCapturingMultiUnitsInterval = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#multiUnitsInterval. +FlinkSqlParserVisitor.prototype.visitMultiUnitsInterval = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#errorCapturingUnitToUnitInterval. +FlinkSqlParserVisitor.prototype.visitErrorCapturingUnitToUnitInterval = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#unitToUnitInterval. +FlinkSqlParserVisitor.prototype.visitUnitToUnitInterval = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#intervalValue. +FlinkSqlParserVisitor.prototype.visitIntervalValue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#columnAlias. +FlinkSqlParserVisitor.prototype.visitColumnAlias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tableAlias. +FlinkSqlParserVisitor.prototype.visitTableAlias = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#errorCapturingIdentifier. +FlinkSqlParserVisitor.prototype.visitErrorCapturingIdentifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#errorIdent. +FlinkSqlParserVisitor.prototype.visitErrorIdent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#realIdent. +FlinkSqlParserVisitor.prototype.visitRealIdent = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#identifierList. +FlinkSqlParserVisitor.prototype.visitIdentifierList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#identifierSeq. +FlinkSqlParserVisitor.prototype.visitIdentifierSeq = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#identifier. +FlinkSqlParserVisitor.prototype.visitIdentifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#unquotedIdentifierAlternative. +FlinkSqlParserVisitor.prototype.visitUnquotedIdentifierAlternative = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#quotedIdentifierAlternative. +FlinkSqlParserVisitor.prototype.visitQuotedIdentifierAlternative = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#ansiNonReservedKeywords. +FlinkSqlParserVisitor.prototype.visitAnsiNonReservedKeywords = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#nonReservedKeywords. +FlinkSqlParserVisitor.prototype.visitNonReservedKeywords = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#unquotedIdentifier. +FlinkSqlParserVisitor.prototype.visitUnquotedIdentifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#quotedIdentifier. +FlinkSqlParserVisitor.prototype.visitQuotedIdentifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#whenClause. +FlinkSqlParserVisitor.prototype.visitWhenClause = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#uidList. +FlinkSqlParserVisitor.prototype.visitUidList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#uid. +FlinkSqlParserVisitor.prototype.visitUid = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#plusUid. +FlinkSqlParserVisitor.prototype.visitPlusUid = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#withOption. +FlinkSqlParserVisitor.prototype.visitWithOption = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#ifNotExists. +FlinkSqlParserVisitor.prototype.visitIfNotExists = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#ifExists. +FlinkSqlParserVisitor.prototype.visitIfExists = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tablePropertyList. +FlinkSqlParserVisitor.prototype.visitTablePropertyList = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tableProperty. +FlinkSqlParserVisitor.prototype.visitTableProperty = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tablePropertyKey. +FlinkSqlParserVisitor.prototype.visitTablePropertyKey = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#tablePropertyValue. +FlinkSqlParserVisitor.prototype.visitTablePropertyValue = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#logicalOperator. +FlinkSqlParserVisitor.prototype.visitLogicalOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#comparisonOperator. +FlinkSqlParserVisitor.prototype.visitComparisonOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#bitOperator. +FlinkSqlParserVisitor.prototype.visitBitOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#mathOperator. +FlinkSqlParserVisitor.prototype.visitMathOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#unaryOperator. +FlinkSqlParserVisitor.prototype.visitUnaryOperator = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#fullColumnName. +FlinkSqlParserVisitor.prototype.visitFullColumnName = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#constant. +FlinkSqlParserVisitor.prototype.visitConstant = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#stringLiteral. +FlinkSqlParserVisitor.prototype.visitStringLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#decimalLiteral. +FlinkSqlParserVisitor.prototype.visitDecimalLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#booleanLiteral. +FlinkSqlParserVisitor.prototype.visitBooleanLiteral = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#setQuantifier. +FlinkSqlParserVisitor.prototype.visitSetQuantifier = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#ansiNonReserved. +FlinkSqlParserVisitor.prototype.visitAnsiNonReserved = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#strictNonReserved. +FlinkSqlParserVisitor.prototype.visitStrictNonReserved = function(ctx) { + return this.visitChildren(ctx); +}; + + +// Visit a parse tree produced by FlinkSqlParser#nonReserved. +FlinkSqlParserVisitor.prototype.visitNonReserved = function(ctx) { + return this.visitChildren(ctx); +}; + + + +exports.FlinkSqlParserVisitor = FlinkSqlParserVisitor; \ No newline at end of file diff --git a/src/lib/hive/HiveSql.interp b/src/lib/hive/HiveSql.interp index 227fd24..36f8355 100644 --- a/src/lib/hive/HiveSql.interp +++ b/src/lib/hive/HiveSql.interp @@ -1,369 +1,371 @@ token literal names: null -'@' -'#' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'+' +':' +',' +'||' '/' -'%' '.' -'*' +'..' +'=' +'==' +'#' '!' +'<>' +'!=' +'>' +'>=' +'<' +'<=' +'*' +'%' +'@' +'{' +'(' +'[' +'}' +')' +']' ';' '-' -'+' -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null -null null null null @@ -377,355 +379,330 @@ null token symbolic names: null -null -null -null -null -null -null -null -null -null -null -T_GO -T_BEGIN -T_SEMICOLON -T_END -T_EXCEPTION -T_WHEN -L_ID -T_THEN -T_NULL -T_SET -T_COMMA -T_COLON -T_EQUAL -T_OPEN_P -T_CLOSE_P -T_ALLOCATE -T_CURSOR -T_FOR -T_RESULT -T_PROCEDURE -T_ASSOCIATE -T_LOCATOR -T_LOCATORS -T_WITH -T_TRANSACTION -T_BREAK -T_CALL -T_DECLARE -T_AS -T_CONSTANT -T_CONDITION -T_IS -T_RETURN -T_ONLY -T_TO -T_CALLER -T_CLIENT -T_WITHOUT -T_CONTINUE -T_EXIT -T_HANDLER -T_SQLEXCEPTION -T_SQLWARNING -T_NOT -T_FOUND -T_GLOBAL -T_TEMPORARY -T_TABLE -T_CREATE -T_IF -T_EXISTS -T_LOCAL -T_MULTISET -T_VOLATILE -T_LIKE -T_CONSTRAINT -T_PRIMARY -T_KEY -T_UNIQUE -T_REFERENCES -T_IDENTITY -L_INT -T_AUTO_INCREMENT -T_ENABLE -T_CLUSTERED -T_ASC -T_DESC -T_FOREIGN -T_ON -T_UPDATE -T_DELETE -T_NO T_ACTION -T_RESTRICT -T_DEFAULT -T_CASCADE -T_LOG -T_FALLBACK -T_COMMIT -T_PRESERVE -T_ROWS -T_SEGMENT -T_CREATION -T_IMMEDIATE -T_DEFERRED -T_PCTFREE -T_PCTUSED -T_INITRANS -T_MAXTRANS -T_NOCOMPRESS -T_LOGGING -T_NOLOGGING -T_STORAGE -T_TABLESPACE -T_INDEX -T_IN -T_REPLACE -T_DISTRIBUTE -T_BY -T_HASH -T_LOGGED -T_COMPRESS -T_YES -T_DEFINITION -T_DROP -T_DATA -T_STORED -T_ROW -T_FORMAT -T_DELIMITED -T_FIELDS -T_TERMINATED -T_ESCAPED -T_COLLECTION -T_ITEMS -T_MAP -T_KEYS -T_LINES -T_DEFINED -T_TEXTIMAGE_ON -T_COMMENT -T_CHARACTER -T_CHARSET -T_ENGINE -T_ALTER T_ADD2 -T_CHAR +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN T_BIGINT T_BINARY_DOUBLE T_BINARY_FLOAT T_BINARY_INTEGER T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA T_DATE T_DATETIME +T_DAY +T_DAYS T_DEC T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO T_DOUBLE -T_PRECISION +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT T_INT T_INT2 T_INT4 T_INT8 T_INTEGER -T_NCHAR -T_NVARCHAR -T_NUMBER -T_NUMERIC -T_PLS_INTEGER -T_REAL -T_RESULT_SET_LOCATOR -T_VARYING -T_SIMPLE_FLOAT -T_SIMPLE_DOUBLE -T_SIMPLE_INTEGER -T_SMALLINT -T_SMALLDATETIME -T_STRING -T_SYS_REFCURSOR -T_TIMESTAMP -T_TINYINT -T_VARCHAR -T_VARCHAR2 -T_XML -T_TYPE -T_ROWTYPE -T_MAX -T_BYTE -T_CASESPECIFIC -T_CS -T_DATABASE -T_SCHEMA -T_LOCATION -T_OR -T_FUNCTION -T_RETURNS -T_PACKAGE -T_PROC -T_BODY -T_OUT -T_INOUT -T_LANGUAGE -T_SQL -T_SECURITY -T_CREATOR -T_DEFINER -T_INVOKER -T_OWNER -T_DYNAMIC -T_SETS -T_EXEC -T_EXECUTE -T_INTO -T_ELSE -T_ELSIF -T_ELSEIF -T_INCLUDE -T_INSERT -T_OVERWRITE -T_VALUES -T_DIRECTORY -T_GET -T_DIAGNOSTICS -T_MESSAGE_TEXT -T_ROW_COUNT -T_GRANT -T_ROLE -T_LEAVE -T_OBJECT -T_AT -T_OPEN -T_FETCH -T_FROM -T_COLLECT -T_STATISTICS -T_STATS -T_COLUMN -T_CLOSE -T_CMP -T_SUM -T_COPY -T_HDFS -T_BATCHSIZE -T_DELIMITER -T_SQLINSERT -T_IGNORE -T_WORK -T_PRINT -T_QUIT -T_RAISE -T_RESIGNAL -T_SQLSTATE -T_VALUE -T_ROLLBACK -T_CURRENT -T_CURRENT_SCHEMA -T_ANSI_NULLS -T_ANSI_PADDING -T_NOCOUNT -T_QUOTED_IDENTIFIER -T_XACT_ABORT -T_OFF -T_QUERY_BAND -T_NONE -T_SESSION -T_SIGNAL -T_SUMMARY -T_TOP -T_LIMIT -T_TRUNCATE -T_USE -T_WHILE -T_DO -T_LOOP -T_REVERSE -T_DOT2 -T_STEP -L_LABEL -T_LESS -T_GREATER -T_USING -T_UNION -T_ALL -T_EXCEPT T_INTERSECT -T_SELECT -T_SEL -T_DISTINCT -T_TITLE -L_S_STRING -T_INNER -T_JOIN -T_LEFT -T_RIGHT -T_FULL -T_OUTER -T_WHERE -T_GROUP -T_HAVING -T_QUALIFY -T_ORDER -T_RR -T_RS -T_UR -T_AND -T_KEEP -T_EXCLUSIVE -T_SHARE -T_LOCKS -T_MERGE -T_MATCHED -T_DESCRIBE -T_BETWEEN -T_EQUAL2 -T_NOTEQUAL -T_NOTEQUAL2 -T_LESSEQUAL -T_GREATEREQUAL -T_RLIKE -T_REGEXP -T_MUL -T_DIV -T_ADD -T_SUB T_INTERVAL -T_DAY -T_DAYS +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT T_MICROSECOND T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA T_SECOND T_SECONDS -T_PIPE -T_CONCAT -T_CASE -T_ISOPEN -T_NOTFOUND -T_AVG -T_COUNT -T_COUNT_BIG +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER T_DENSE_RANK T_FIRST_VALUE T_LAG T_LAST_VALUE T_LEAD -T_MIN -T_RANK -T_ROW_NUMBER -T_STDEV -T_VAR -T_VARIANCE -T_OVER -T_PARTITION -T_ACTIVITY_COUNT -T_CAST -T_CURRENT_DATE -T_CURRENT_TIMESTAMP -T_CURRENT_USER -T_USER T_MAX_PART_STRING T_MIN_PART_STRING T_MAX_PART_INT @@ -734,23 +711,50 @@ T_MAX_PART_DATE T_MIN_PART_DATE T_PART_COUNT T_PART_LOC -T_TRIM -T_SUBSTRING +T_RANK +T_ROW_NUMBER +T_STDEV T_SYSDATE -T_HIVE -T_HOST -L_FILE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING L_D_STRING +L_INT L_DEC -T_TRUE -T_FALSE -T_DIR -T_FILE -T_FILES -T_NEW -T_PWD -T_SESSIONS -T_SUBDIR +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL rule names: program @@ -982,4 +986,4 @@ non_reserved_words atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 376, 3345, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 460, 10, 3, 3, 3, 5, 3, 463, 10, 3, 6, 3, 465, 10, 3, 13, 3, 14, 3, 466, 3, 4, 5, 4, 470, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 475, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 482, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 488, 10, 5, 5, 5, 490, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 6, 7, 497, 10, 7, 13, 7, 14, 7, 498, 3, 7, 5, 7, 502, 10, 7, 5, 7, 504, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 567, 10, 8, 3, 9, 3, 9, 3, 10, 3, 10, 6, 10, 573, 10, 10, 13, 10, 14, 10, 574, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 591, 10, 14, 3, 14, 3, 14, 3, 14, 7, 14, 596, 10, 14, 12, 14, 14, 14, 599, 11, 14, 5, 14, 601, 10, 14, 3, 15, 3, 15, 3, 15, 5, 15, 606, 10, 15, 3, 16, 3, 16, 5, 16, 610, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 619, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 624, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 630, 10, 17, 12, 17, 14, 17, 633, 11, 17, 3, 17, 3, 17, 5, 17, 637, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 644, 10, 17, 12, 17, 14, 17, 647, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 656, 10, 18, 12, 18, 14, 18, 659, 11, 18, 3, 18, 3, 18, 5, 18, 663, 10, 18, 3, 18, 5, 18, 666, 10, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 680, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 687, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 694, 10, 20, 12, 20, 14, 20, 697, 11, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 713, 10, 23, 3, 23, 3, 23, 5, 23, 717, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 723, 10, 24, 12, 24, 14, 24, 726, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 734, 10, 25, 12, 25, 14, 25, 737, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 744, 10, 26, 12, 26, 14, 26, 747, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 754, 10, 27, 3, 28, 3, 28, 3, 28, 7, 28, 759, 10, 28, 12, 28, 14, 28, 762, 11, 28, 3, 28, 5, 28, 765, 10, 28, 3, 28, 3, 28, 5, 28, 769, 10, 28, 3, 28, 7, 28, 772, 10, 28, 12, 28, 14, 28, 775, 11, 28, 3, 28, 5, 28, 778, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 783, 10, 28, 3, 28, 3, 28, 5, 28, 787, 10, 28, 3, 28, 3, 28, 5, 28, 791, 10, 28, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 801, 10, 30, 3, 30, 3, 30, 5, 30, 805, 10, 30, 3, 30, 3, 30, 3, 30, 5, 30, 810, 10, 30, 3, 31, 3, 31, 3, 31, 5, 31, 815, 10, 31, 3, 31, 3, 31, 5, 31, 819, 10, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 832, 10, 33, 3, 33, 3, 33, 3, 34, 5, 34, 837, 10, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 843, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 852, 10, 35, 3, 35, 3, 35, 5, 35, 856, 10, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 864, 10, 36, 3, 36, 5, 36, 867, 10, 36, 3, 36, 3, 36, 3, 36, 5, 36, 872, 10, 36, 3, 36, 3, 36, 3, 37, 5, 37, 877, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 884, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 893, 10, 37, 3, 37, 5, 37, 896, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 901, 10, 38, 12, 38, 14, 38, 904, 11, 38, 3, 39, 3, 39, 3, 39, 5, 39, 909, 10, 39, 3, 39, 7, 39, 912, 10, 39, 12, 39, 14, 39, 915, 11, 39, 3, 39, 7, 39, 918, 10, 39, 12, 39, 14, 39, 921, 11, 39, 3, 39, 3, 39, 5, 39, 925, 10, 39, 3, 39, 5, 39, 928, 10, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 934, 10, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 946, 10, 41, 12, 41, 14, 41, 949, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 956, 10, 41, 12, 41, 14, 41, 959, 11, 41, 3, 41, 3, 41, 3, 41, 5, 41, 964, 10, 41, 3, 42, 3, 42, 3, 42, 5, 42, 969, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 974, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 979, 10, 42, 7, 42, 981, 10, 42, 12, 42, 14, 42, 984, 11, 42, 3, 42, 3, 42, 5, 42, 988, 10, 42, 3, 42, 5, 42, 991, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 999, 10, 42, 12, 42, 14, 42, 1002, 11, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 1011, 10, 42, 12, 42, 14, 42, 1014, 11, 42, 3, 42, 3, 42, 7, 42, 1018, 10, 42, 12, 42, 14, 42, 1021, 11, 42, 5, 42, 1023, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1035, 10, 43, 3, 44, 6, 44, 1038, 10, 44, 13, 44, 14, 44, 1039, 3, 45, 3, 45, 3, 45, 5, 45, 1045, 10, 45, 3, 46, 5, 46, 1048, 10, 46, 3, 46, 3, 46, 3, 47, 6, 47, 1053, 10, 47, 13, 47, 14, 47, 1054, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 1067, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 6, 49, 1080, 10, 49, 13, 49, 14, 49, 1081, 3, 49, 3, 49, 3, 49, 5, 49, 1087, 10, 49, 3, 50, 5, 50, 1090, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 7, 50, 1103, 10, 50, 12, 50, 14, 50, 1106, 11, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1111, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1122, 10, 50, 3, 51, 5, 51, 1125, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 1133, 10, 51, 12, 51, 14, 51, 1136, 11, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1142, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1148, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 1154, 10, 53, 12, 53, 14, 53, 1157, 11, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1166, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1186, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 1192, 10, 55, 3, 56, 3, 56, 5, 56, 1196, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1201, 10, 56, 3, 56, 3, 56, 5, 56, 1205, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1210, 10, 56, 3, 56, 5, 56, 1213, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1218, 10, 56, 3, 56, 5, 56, 1221, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 5, 59, 1233, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 5, 60, 1240, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1245, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1250, 10, 60, 7, 60, 1252, 10, 60, 12, 60, 14, 60, 1255, 11, 60, 3, 60, 3, 60, 5, 60, 1259, 10, 60, 3, 60, 5, 60, 1262, 10, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1270, 10, 60, 12, 60, 14, 60, 1273, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1282, 10, 60, 12, 60, 14, 60, 1285, 11, 60, 3, 60, 3, 60, 7, 60, 1289, 10, 60, 12, 60, 14, 60, 1292, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1299, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1314, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1345, 10, 61, 5, 61, 1347, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1352, 10, 62, 3, 62, 3, 62, 5, 62, 1356, 10, 62, 3, 62, 3, 62, 3, 63, 5, 63, 1361, 10, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 1368, 10, 63, 3, 63, 5, 63, 1371, 10, 63, 3, 64, 5, 64, 1374, 10, 64, 3, 64, 3, 64, 3, 64, 5, 64, 1379, 10, 64, 3, 64, 3, 64, 5, 64, 1383, 10, 64, 5, 64, 1385, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1392, 10, 65, 3, 65, 3, 65, 7, 65, 1396, 10, 65, 12, 65, 14, 65, 1399, 11, 65, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1405, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1411, 10, 67, 3, 67, 5, 67, 1414, 10, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1419, 10, 67, 3, 67, 3, 67, 5, 67, 1423, 10, 67, 3, 67, 5, 67, 1426, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 5, 68, 1433, 10, 68, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1439, 10, 69, 3, 69, 5, 69, 1442, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1452, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 1459, 10, 70, 12, 70, 14, 70, 1462, 11, 70, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1468, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1475, 10, 71, 5, 71, 1477, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1483, 10, 72, 3, 72, 5, 72, 1486, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1497, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1504, 10, 73, 12, 73, 14, 73, 1507, 11, 73, 3, 74, 3, 74, 3, 74, 5, 74, 1512, 10, 74, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1518, 10, 75, 3, 75, 5, 75, 1521, 10, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1526, 10, 75, 3, 75, 5, 75, 1529, 10, 75, 3, 75, 5, 75, 1532, 10, 75, 3, 75, 5, 75, 1535, 10, 75, 3, 75, 5, 75, 1538, 10, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1544, 10, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1552, 10, 76, 12, 76, 14, 76, 1555, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1563, 10, 76, 12, 76, 14, 76, 1566, 11, 76, 5, 76, 1568, 10, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1575, 10, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1580, 10, 77, 3, 77, 7, 77, 1583, 10, 77, 12, 77, 14, 77, 1586, 11, 77, 3, 77, 5, 77, 1589, 10, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1597, 10, 77, 3, 77, 3, 77, 5, 77, 1601, 10, 77, 3, 77, 7, 77, 1604, 10, 77, 12, 77, 14, 77, 1607, 11, 77, 3, 77, 5, 77, 1610, 10, 77, 5, 77, 1612, 10, 77, 3, 78, 6, 78, 1615, 10, 78, 13, 78, 14, 78, 1616, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1625, 10, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1630, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1636, 10, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1643, 10, 80, 3, 80, 5, 80, 1646, 10, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 1653, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1661, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 7, 82, 1667, 10, 82, 12, 82, 14, 82, 1670, 11, 82, 5, 82, 1672, 10, 82, 3, 82, 5, 82, 1675, 10, 82, 3, 83, 3, 83, 3, 83, 5, 83, 1680, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 7, 84, 1687, 10, 84, 12, 84, 14, 84, 1690, 11, 84, 3, 84, 5, 84, 1693, 10, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1703, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 1722, 10, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1729, 10, 90, 5, 90, 1731, 10, 90, 3, 90, 3, 90, 5, 90, 1735, 10, 90, 3, 90, 3, 90, 5, 90, 1739, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 7, 91, 1745, 10, 91, 12, 91, 14, 91, 1748, 11, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 7, 92, 1756, 10, 92, 12, 92, 14, 92, 1759, 11, 92, 3, 93, 3, 93, 3, 93, 3, 93, 7, 93, 1765, 10, 93, 12, 93, 14, 93, 1768, 11, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 5, 94, 1775, 10, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 5, 95, 1783, 10, 95, 3, 95, 3, 95, 5, 95, 1787, 10, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 5, 97, 1795, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 1811, 10, 100, 12, 100, 14, 100, 1814, 11, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 5, 102, 1827, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1834, 10, 103, 3, 103, 3, 103, 5, 103, 1838, 10, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1845, 10, 104, 5, 104, 1847, 10, 104, 3, 105, 3, 105, 5, 105, 1851, 10, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 7, 105, 1858, 10, 105, 12, 105, 14, 105, 1861, 11, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1868, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 7, 107, 1875, 10, 107, 12, 107, 14, 107, 1878, 11, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 5, 110, 1893, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1899, 10, 110, 3, 110, 3, 110, 5, 110, 1903, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1911, 10, 111, 12, 111, 14, 111, 1914, 11, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1919, 10, 111, 12, 111, 14, 111, 1922, 11, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 5, 112, 1930, 10, 112, 3, 112, 3, 112, 5, 112, 1934, 10, 112, 3, 112, 3, 112, 7, 112, 1938, 10, 112, 12, 112, 14, 112, 1941, 11, 112, 3, 113, 3, 113, 5, 113, 1945, 10, 113, 3, 114, 3, 114, 5, 114, 1949, 10, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1959, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 5, 117, 1965, 10, 117, 3, 118, 3, 118, 5, 118, 1969, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 7, 118, 1979, 10, 118, 12, 118, 14, 118, 1982, 11, 118, 3, 118, 3, 118, 3, 119, 3, 119, 5, 119, 1988, 10, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 7, 121, 2002, 10, 121, 12, 121, 14, 121, 2005, 11, 121, 3, 121, 3, 121, 7, 121, 2009, 10, 121, 12, 121, 14, 121, 2012, 11, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2021, 10, 122, 3, 123, 5, 123, 2024, 10, 123, 3, 123, 3, 123, 5, 123, 2028, 10, 123, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 5, 125, 2035, 10, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 2042, 10, 125, 5, 125, 2044, 10, 125, 3, 126, 3, 126, 5, 126, 2048, 10, 126, 3, 127, 3, 127, 5, 127, 2052, 10, 127, 3, 128, 3, 128, 3, 128, 5, 128, 2057, 10, 128, 3, 129, 5, 129, 2060, 10, 129, 3, 129, 3, 129, 5, 129, 2064, 10, 129, 3, 129, 5, 129, 2067, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2078, 10, 131, 3, 131, 5, 131, 2081, 10, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 5, 133, 2092, 10, 133, 3, 133, 3, 133, 3, 133, 3, 133, 5, 133, 2098, 10, 133, 3, 133, 3, 133, 5, 133, 2102, 10, 133, 5, 133, 2104, 10, 133, 3, 134, 3, 134, 5, 134, 2108, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 5, 136, 2117, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2122, 10, 136, 12, 136, 14, 136, 2125, 11, 136, 3, 136, 5, 136, 2128, 10, 136, 3, 136, 3, 136, 5, 136, 2132, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2137, 10, 136, 12, 136, 14, 136, 2140, 11, 136, 3, 136, 5, 136, 2143, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2151, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2157, 10, 138, 3, 138, 3, 138, 5, 138, 2161, 10, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2172, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2179, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2192, 10, 140, 3, 141, 3, 141, 3, 141, 3, 141, 7, 141, 2198, 10, 141, 12, 141, 14, 141, 2201, 11, 141, 3, 142, 5, 142, 2204, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 7, 143, 2212, 10, 143, 12, 143, 14, 143, 2215, 11, 143, 3, 144, 3, 144, 5, 144, 2219, 10, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 2230, 10, 145, 12, 145, 14, 145, 2233, 11, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 7, 146, 2241, 10, 146, 12, 146, 14, 146, 2244, 11, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 2251, 10, 147, 3, 148, 3, 148, 5, 148, 2255, 10, 148, 3, 148, 3, 148, 5, 148, 2259, 10, 148, 3, 148, 3, 148, 5, 148, 2263, 10, 148, 5, 148, 2265, 10, 148, 3, 149, 3, 149, 3, 149, 5, 149, 2270, 10, 149, 3, 149, 5, 149, 2273, 10, 149, 3, 149, 5, 149, 2276, 10, 149, 3, 149, 5, 149, 2279, 10, 149, 3, 149, 3, 149, 5, 149, 2283, 10, 149, 3, 149, 5, 149, 2286, 10, 149, 3, 149, 5, 149, 2289, 10, 149, 3, 150, 5, 150, 2292, 10, 150, 3, 150, 5, 150, 2295, 10, 150, 3, 150, 3, 150, 3, 150, 7, 150, 2300, 10, 150, 12, 150, 14, 150, 2303, 11, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 5, 153, 2313, 10, 153, 3, 153, 3, 153, 5, 153, 2317, 10, 153, 3, 153, 5, 153, 2320, 10, 153, 3, 154, 3, 154, 5, 154, 2324, 10, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 2331, 10, 154, 3, 155, 3, 155, 5, 155, 2335, 10, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 7, 156, 2343, 10, 156, 12, 156, 14, 156, 2346, 11, 156, 3, 157, 3, 157, 3, 157, 7, 157, 2351, 10, 157, 12, 157, 14, 157, 2354, 11, 157, 3, 158, 3, 158, 3, 158, 5, 158, 2359, 10, 158, 3, 159, 3, 159, 5, 159, 2363, 10, 159, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 2369, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 2378, 10, 161, 3, 162, 5, 162, 2381, 10, 162, 3, 162, 3, 162, 3, 162, 5, 162, 2386, 10, 162, 3, 162, 5, 162, 2389, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 7, 163, 2397, 10, 163, 12, 163, 14, 163, 2400, 11, 163, 3, 163, 3, 163, 5, 163, 2404, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 2411, 10, 164, 12, 164, 14, 164, 2414, 11, 164, 3, 164, 3, 164, 5, 164, 2418, 10, 164, 3, 165, 3, 165, 5, 165, 2422, 10, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 2429, 10, 165, 12, 165, 14, 165, 2432, 11, 165, 3, 165, 5, 165, 2435, 10, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 7, 168, 2447, 10, 168, 12, 168, 14, 168, 2450, 11, 168, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2462, 10, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2467, 10, 171, 7, 171, 2469, 10, 171, 12, 171, 14, 171, 2472, 11, 171, 3, 172, 6, 172, 2475, 10, 172, 13, 172, 14, 172, 2476, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2488, 10, 173, 5, 173, 2490, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2497, 10, 174, 3, 174, 5, 174, 2500, 10, 174, 3, 175, 3, 175, 3, 175, 7, 175, 2505, 10, 175, 12, 175, 14, 175, 2508, 11, 175, 3, 176, 3, 176, 5, 176, 2512, 10, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2518, 10, 176, 3, 176, 5, 176, 2521, 10, 176, 3, 176, 5, 176, 2524, 10, 176, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 6, 178, 2537, 10, 178, 13, 178, 14, 178, 2538, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2546, 10, 179, 3, 179, 5, 179, 2549, 10, 179, 3, 179, 5, 179, 2552, 10, 179, 3, 180, 3, 180, 5, 180, 2556, 10, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2561, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2567, 10, 180, 3, 181, 3, 181, 5, 181, 2571, 10, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 7, 181, 2580, 10, 181, 12, 181, 14, 181, 2583, 11, 181, 3, 181, 5, 181, 2586, 10, 181, 3, 181, 5, 181, 2589, 10, 181, 3, 182, 3, 182, 5, 182, 2593, 10, 182, 3, 182, 3, 182, 5, 182, 2597, 10, 182, 3, 182, 3, 182, 5, 182, 2601, 10, 182, 3, 183, 3, 183, 5, 183, 2605, 10, 183, 3, 183, 3, 183, 3, 184, 3, 184, 5, 184, 2611, 10, 184, 3, 184, 3, 184, 3, 185, 3, 185, 5, 185, 2617, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2624, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 7, 185, 2630, 10, 185, 12, 185, 14, 185, 2633, 11, 185, 3, 186, 3, 186, 3, 186, 5, 186, 2638, 10, 186, 3, 187, 3, 187, 3, 187, 5, 187, 2643, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2654, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2663, 10, 187, 3, 188, 3, 188, 5, 188, 2667, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 7, 188, 2674, 10, 188, 12, 188, 14, 188, 2677, 11, 188, 3, 188, 5, 188, 2680, 10, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 2688, 10, 189, 12, 189, 14, 189, 2691, 11, 189, 3, 189, 3, 189, 5, 189, 2695, 10, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2717, 10, 192, 3, 192, 5, 192, 2720, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2739, 10, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2755, 10, 193, 12, 193, 14, 193, 2758, 11, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2768, 10, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2781, 10, 197, 12, 197, 14, 197, 2784, 11, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 5, 198, 2795, 10, 198, 3, 199, 3, 199, 5, 199, 2799, 10, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 6, 200, 2808, 10, 200, 13, 200, 14, 200, 2809, 3, 200, 3, 200, 5, 200, 2814, 10, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 6, 201, 2824, 10, 201, 13, 201, 14, 201, 2825, 3, 201, 3, 201, 5, 201, 2830, 10, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 5, 203, 2841, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2846, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2851, 10, 203, 3, 203, 3, 203, 5, 203, 2855, 10, 203, 3, 203, 3, 203, 5, 203, 2859, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2864, 10, 203, 3, 203, 3, 203, 5, 203, 2868, 10, 203, 3, 203, 3, 203, 5, 203, 2872, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2895, 10, 203, 5, 203, 2897, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2915, 10, 203, 5, 203, 2917, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2925, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2930, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2935, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2940, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2953, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2958, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2963, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2968, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2973, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2978, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2983, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2988, 10, 203, 5, 203, 2990, 10, 203, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2997, 10, 205, 3, 205, 5, 205, 3000, 10, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 7, 206, 3009, 10, 206, 12, 206, 14, 206, 3012, 11, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3021, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3029, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3038, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3044, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3059, 10, 207, 12, 207, 14, 207, 3062, 11, 207, 5, 207, 3064, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3078, 10, 207, 12, 207, 14, 207, 3081, 11, 207, 5, 207, 3083, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3097, 10, 207, 12, 207, 14, 207, 3100, 11, 207, 5, 207, 3102, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3116, 10, 207, 12, 207, 14, 207, 3119, 11, 207, 5, 207, 3121, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3135, 10, 207, 12, 207, 14, 207, 3138, 11, 207, 5, 207, 3140, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3154, 10, 207, 12, 207, 14, 207, 3157, 11, 207, 5, 207, 3159, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3171, 10, 207, 12, 207, 14, 207, 3174, 11, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 6, 207, 3186, 10, 207, 13, 207, 14, 207, 3187, 3, 207, 3, 207, 5, 207, 3192, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3208, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3214, 10, 207, 3, 208, 3, 208, 3, 208, 5, 208, 3219, 10, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 7, 209, 3226, 10, 209, 12, 209, 14, 209, 3229, 11, 209, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 3235, 10, 210, 5, 210, 3237, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 5, 211, 3243, 10, 211, 3, 212, 3, 212, 5, 212, 3247, 10, 212, 3, 213, 3, 213, 7, 213, 3251, 10, 213, 12, 213, 14, 213, 3254, 11, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 5, 214, 3268, 10, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 3275, 10, 215, 3, 216, 7, 216, 3278, 10, 216, 12, 216, 14, 216, 3281, 11, 216, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 3290, 10, 218, 3, 218, 3, 218, 3, 218, 7, 218, 3295, 10, 218, 12, 218, 14, 218, 3298, 11, 218, 5, 218, 3300, 10, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 221, 5, 221, 3309, 10, 221, 3, 221, 3, 221, 5, 221, 3313, 10, 221, 3, 221, 3, 221, 3, 221, 5, 221, 3318, 10, 221, 7, 221, 3320, 10, 221, 12, 221, 14, 221, 3323, 11, 221, 3, 222, 3, 222, 5, 222, 3327, 10, 222, 3, 223, 5, 223, 3330, 10, 223, 3, 223, 3, 223, 3, 224, 5, 224, 3335, 10, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 3279, 4, 368, 384, 228, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 2, 51, 4, 2, 3, 5, 15, 15, 4, 2, 16, 16, 18, 18, 3, 2, 34, 35, 5, 2, 30, 30, 41, 41, 44, 44, 3, 2, 48, 49, 3, 2, 51, 52, 4, 2, 22, 22, 65, 65, 3, 2, 78, 79, 3, 2, 82, 83, 3, 2, 89, 90, 4, 2, 83, 83, 92, 92, 3, 2, 96, 97, 3, 2, 98, 101, 3, 2, 103, 104, 4, 2, 84, 84, 115, 115, 3, 2, 177, 178, 4, 2, 74, 74, 179, 179, 4, 2, 139, 139, 180, 180, 3, 2, 181, 182, 3, 2, 183, 184, 4, 2, 41, 41, 44, 44, 4, 2, 45, 45, 188, 188, 4, 2, 32, 32, 190, 190, 3, 2, 197, 200, 3, 2, 203, 204, 3, 2, 207, 208, 3, 2, 227, 228, 4, 2, 217, 217, 232, 232, 5, 2, 83, 83, 211, 211, 238, 238, 3, 2, 249, 253, 4, 2, 81, 81, 254, 254, 4, 2, 37, 37, 257, 257, 5, 2, 14, 14, 20, 20, 265, 266, 4, 2, 264, 264, 266, 266, 4, 2, 111, 111, 269, 269, 3, 2, 278, 279, 4, 2, 275, 275, 280, 280, 3, 2, 285, 287, 4, 2, 182, 182, 294, 296, 4, 2, 82, 82, 299, 300, 4, 2, 79, 79, 304, 304, 4, 2, 186, 186, 297, 297, 4, 2, 67, 67, 311, 312, 3, 2, 318, 323, 3, 2, 324, 325, 4, 2, 57, 57, 327, 328, 3, 2, 11, 12, 3, 2, 368, 369, 24, 2, 13, 14, 17, 17, 20, 20, 22, 22, 28, 73, 75, 142, 144, 160, 162, 166, 168, 172, 174, 176, 179, 205, 209, 267, 269, 269, 273, 273, 275, 281, 283, 288, 290, 305, 311, 312, 317, 323, 325, 351, 358, 364, 368, 376, 2, 3772, 2, 454, 3, 2, 2, 2, 4, 464, 3, 2, 2, 2, 6, 469, 3, 2, 2, 2, 8, 489, 3, 2, 2, 2, 10, 491, 3, 2, 2, 2, 12, 503, 3, 2, 2, 2, 14, 566, 3, 2, 2, 2, 16, 568, 3, 2, 2, 2, 18, 570, 3, 2, 2, 2, 20, 576, 3, 2, 2, 2, 22, 582, 3, 2, 2, 2, 24, 584, 3, 2, 2, 2, 26, 600, 3, 2, 2, 2, 28, 605, 3, 2, 2, 2, 30, 623, 3, 2, 2, 2, 32, 625, 3, 2, 2, 2, 34, 662, 3, 2, 2, 2, 36, 672, 3, 2, 2, 2, 38, 683, 3, 2, 2, 2, 40, 703, 3, 2, 2, 2, 42, 706, 3, 2, 2, 2, 44, 708, 3, 2, 2, 2, 46, 718, 3, 2, 2, 2, 48, 727, 3, 2, 2, 2, 50, 738, 3, 2, 2, 2, 52, 753, 3, 2, 2, 2, 54, 790, 3, 2, 2, 2, 56, 792, 3, 2, 2, 2, 58, 800, 3, 2, 2, 2, 60, 811, 3, 2, 2, 2, 62, 820, 3, 2, 2, 2, 64, 823, 3, 2, 2, 2, 66, 836, 3, 2, 2, 2, 68, 846, 3, 2, 2, 2, 70, 859, 3, 2, 2, 2, 72, 892, 3, 2, 2, 2, 74, 897, 3, 2, 2, 2, 76, 927, 3, 2, 2, 2, 78, 929, 3, 2, 2, 2, 80, 963, 3, 2, 2, 2, 82, 1022, 3, 2, 2, 2, 84, 1024, 3, 2, 2, 2, 86, 1037, 3, 2, 2, 2, 88, 1044, 3, 2, 2, 2, 90, 1047, 3, 2, 2, 2, 92, 1052, 3, 2, 2, 2, 94, 1066, 3, 2, 2, 2, 96, 1086, 3, 2, 2, 2, 98, 1121, 3, 2, 2, 2, 100, 1141, 3, 2, 2, 2, 102, 1147, 3, 2, 2, 2, 104, 1149, 3, 2, 2, 2, 106, 1185, 3, 2, 2, 2, 108, 1191, 3, 2, 2, 2, 110, 1220, 3, 2, 2, 2, 112, 1222, 3, 2, 2, 2, 114, 1227, 3, 2, 2, 2, 116, 1229, 3, 2, 2, 2, 118, 1298, 3, 2, 2, 2, 120, 1346, 3, 2, 2, 2, 122, 1348, 3, 2, 2, 2, 124, 1370, 3, 2, 2, 2, 126, 1384, 3, 2, 2, 2, 128, 1386, 3, 2, 2, 2, 130, 1404, 3, 2, 2, 2, 132, 1413, 3, 2, 2, 2, 134, 1429, 3, 2, 2, 2, 136, 1441, 3, 2, 2, 2, 138, 1453, 3, 2, 2, 2, 140, 1476, 3, 2, 2, 2, 142, 1485, 3, 2, 2, 2, 144, 1498, 3, 2, 2, 2, 146, 1511, 3, 2, 2, 2, 148, 1520, 3, 2, 2, 2, 150, 1567, 3, 2, 2, 2, 152, 1611, 3, 2, 2, 2, 154, 1614, 3, 2, 2, 2, 156, 1629, 3, 2, 2, 2, 158, 1645, 3, 2, 2, 2, 160, 1647, 3, 2, 2, 2, 162, 1650, 3, 2, 2, 2, 164, 1679, 3, 2, 2, 2, 166, 1681, 3, 2, 2, 2, 168, 1697, 3, 2, 2, 2, 170, 1704, 3, 2, 2, 2, 172, 1710, 3, 2, 2, 2, 174, 1715, 3, 2, 2, 2, 176, 1718, 3, 2, 2, 2, 178, 1723, 3, 2, 2, 2, 180, 1740, 3, 2, 2, 2, 182, 1751, 3, 2, 2, 2, 184, 1760, 3, 2, 2, 2, 186, 1771, 3, 2, 2, 2, 188, 1780, 3, 2, 2, 2, 190, 1788, 3, 2, 2, 2, 192, 1794, 3, 2, 2, 2, 194, 1796, 3, 2, 2, 2, 196, 1802, 3, 2, 2, 2, 198, 1806, 3, 2, 2, 2, 200, 1819, 3, 2, 2, 2, 202, 1824, 3, 2, 2, 2, 204, 1828, 3, 2, 2, 2, 206, 1839, 3, 2, 2, 2, 208, 1848, 3, 2, 2, 2, 210, 1862, 3, 2, 2, 2, 212, 1869, 3, 2, 2, 2, 214, 1881, 3, 2, 2, 2, 216, 1884, 3, 2, 2, 2, 218, 1898, 3, 2, 2, 2, 220, 1904, 3, 2, 2, 2, 222, 1923, 3, 2, 2, 2, 224, 1944, 3, 2, 2, 2, 226, 1948, 3, 2, 2, 2, 228, 1958, 3, 2, 2, 2, 230, 1960, 3, 2, 2, 2, 232, 1962, 3, 2, 2, 2, 234, 1966, 3, 2, 2, 2, 236, 1985, 3, 2, 2, 2, 238, 1989, 3, 2, 2, 2, 240, 1991, 3, 2, 2, 2, 242, 2020, 3, 2, 2, 2, 244, 2023, 3, 2, 2, 2, 246, 2029, 3, 2, 2, 2, 248, 2031, 3, 2, 2, 2, 250, 2045, 3, 2, 2, 2, 252, 2049, 3, 2, 2, 2, 254, 2056, 3, 2, 2, 2, 256, 2063, 3, 2, 2, 2, 258, 2070, 3, 2, 2, 2, 260, 2073, 3, 2, 2, 2, 262, 2085, 3, 2, 2, 2, 264, 2088, 3, 2, 2, 2, 266, 2105, 3, 2, 2, 2, 268, 2111, 3, 2, 2, 2, 270, 2114, 3, 2, 2, 2, 272, 2144, 3, 2, 2, 2, 274, 2152, 3, 2, 2, 2, 276, 2167, 3, 2, 2, 2, 278, 2191, 3, 2, 2, 2, 280, 2193, 3, 2, 2, 2, 282, 2203, 3, 2, 2, 2, 284, 2207, 3, 2, 2, 2, 286, 2216, 3, 2, 2, 2, 288, 2225, 3, 2, 2, 2, 290, 2236, 3, 2, 2, 2, 292, 2250, 3, 2, 2, 2, 294, 2264, 3, 2, 2, 2, 296, 2266, 3, 2, 2, 2, 298, 2291, 3, 2, 2, 2, 300, 2304, 3, 2, 2, 2, 302, 2306, 3, 2, 2, 2, 304, 2319, 3, 2, 2, 2, 306, 2330, 3, 2, 2, 2, 308, 2334, 3, 2, 2, 2, 310, 2338, 3, 2, 2, 2, 312, 2347, 3, 2, 2, 2, 314, 2358, 3, 2, 2, 2, 316, 2360, 3, 2, 2, 2, 318, 2364, 3, 2, 2, 2, 320, 2377, 3, 2, 2, 2, 322, 2388, 3, 2, 2, 2, 324, 2390, 3, 2, 2, 2, 326, 2417, 3, 2, 2, 2, 328, 2419, 3, 2, 2, 2, 330, 2436, 3, 2, 2, 2, 332, 2438, 3, 2, 2, 2, 334, 2441, 3, 2, 2, 2, 336, 2451, 3, 2, 2, 2, 338, 2454, 3, 2, 2, 2, 340, 2457, 3, 2, 2, 2, 342, 2474, 3, 2, 2, 2, 344, 2489, 3, 2, 2, 2, 346, 2491, 3, 2, 2, 2, 348, 2501, 3, 2, 2, 2, 350, 2517, 3, 2, 2, 2, 352, 2525, 3, 2, 2, 2, 354, 2528, 3, 2, 2, 2, 356, 2545, 3, 2, 2, 2, 358, 2566, 3, 2, 2, 2, 360, 2588, 3, 2, 2, 2, 362, 2590, 3, 2, 2, 2, 364, 2602, 3, 2, 2, 2, 366, 2608, 3, 2, 2, 2, 368, 2623, 3, 2, 2, 2, 370, 2637, 3, 2, 2, 2, 372, 2662, 3, 2, 2, 2, 374, 2664, 3, 2, 2, 2, 376, 2683, 3, 2, 2, 2, 378, 2701, 3, 2, 2, 2, 380, 2705, 3, 2, 2, 2, 382, 2719, 3, 2, 2, 2, 384, 2738, 3, 2, 2, 2, 386, 2767, 3, 2, 2, 2, 388, 2769, 3, 2, 2, 2, 390, 2773, 3, 2, 2, 2, 392, 2775, 3, 2, 2, 2, 394, 2794, 3, 2, 2, 2, 396, 2798, 3, 2, 2, 2, 398, 2800, 3, 2, 2, 2, 400, 2817, 3, 2, 2, 2, 402, 2833, 3, 2, 2, 2, 404, 2989, 3, 2, 2, 2, 406, 2991, 3, 2, 2, 2, 408, 2993, 3, 2, 2, 2, 410, 3003, 3, 2, 2, 2, 412, 3213, 3, 2, 2, 2, 414, 3215, 3, 2, 2, 2, 416, 3222, 3, 2, 2, 2, 418, 3230, 3, 2, 2, 2, 420, 3242, 3, 2, 2, 2, 422, 3246, 3, 2, 2, 2, 424, 3248, 3, 2, 2, 2, 426, 3267, 3, 2, 2, 2, 428, 3274, 3, 2, 2, 2, 430, 3279, 3, 2, 2, 2, 432, 3282, 3, 2, 2, 2, 434, 3299, 3, 2, 2, 2, 436, 3301, 3, 2, 2, 2, 438, 3304, 3, 2, 2, 2, 440, 3308, 3, 2, 2, 2, 442, 3326, 3, 2, 2, 2, 444, 3329, 3, 2, 2, 2, 446, 3334, 3, 2, 2, 2, 448, 3338, 3, 2, 2, 2, 450, 3340, 3, 2, 2, 2, 452, 3342, 3, 2, 2, 2, 454, 455, 5, 4, 3, 2, 455, 456, 7, 2, 2, 3, 456, 3, 3, 2, 2, 2, 457, 460, 5, 6, 4, 2, 458, 460, 5, 14, 8, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 462, 3, 2, 2, 2, 461, 463, 7, 13, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 465, 3, 2, 2, 2, 464, 459, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 464, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 5, 3, 2, 2, 2, 468, 470, 5, 48, 25, 2, 469, 468, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 7, 14, 2, 2, 472, 474, 5, 4, 3, 2, 473, 475, 5, 18, 10, 2, 474, 473, 3, 2, 2, 2, 474, 475, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 5, 10, 6, 2, 477, 7, 3, 2, 2, 2, 478, 479, 7, 14, 2, 2, 479, 481, 5, 4, 3, 2, 480, 482, 5, 18, 10, 2, 481, 480, 3, 2, 2, 2, 481, 482, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 484, 5, 10, 6, 2, 484, 490, 3, 2, 2, 2, 485, 487, 5, 14, 8, 2, 486, 488, 7, 15, 2, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 490, 3, 2, 2, 2, 489, 478, 3, 2, 2, 2, 489, 485, 3, 2, 2, 2, 490, 9, 3, 2, 2, 2, 491, 492, 6, 6, 2, 2, 492, 493, 7, 16, 2, 2, 493, 11, 3, 2, 2, 2, 494, 504, 5, 6, 4, 2, 495, 497, 5, 14, 8, 2, 496, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 501, 3, 2, 2, 2, 500, 502, 7, 13, 2, 2, 501, 500, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 504, 3, 2, 2, 2, 503, 494, 3, 2, 2, 2, 503, 496, 3, 2, 2, 2, 504, 13, 3, 2, 2, 2, 505, 567, 5, 26, 14, 2, 506, 567, 5, 36, 19, 2, 507, 567, 5, 112, 57, 2, 508, 567, 5, 38, 20, 2, 509, 567, 5, 40, 21, 2, 510, 567, 5, 42, 22, 2, 511, 567, 5, 44, 23, 2, 512, 567, 5, 210, 106, 2, 513, 567, 5, 214, 108, 2, 514, 567, 5, 216, 109, 2, 515, 567, 5, 220, 111, 2, 516, 567, 5, 222, 112, 2, 517, 567, 5, 232, 117, 2, 518, 567, 5, 128, 65, 2, 519, 567, 5, 132, 67, 2, 520, 567, 5, 234, 118, 2, 521, 567, 5, 70, 36, 2, 522, 567, 5, 136, 69, 2, 523, 567, 5, 142, 72, 2, 524, 567, 5, 148, 75, 2, 525, 567, 5, 68, 35, 2, 526, 567, 5, 46, 24, 2, 527, 567, 5, 362, 182, 2, 528, 567, 5, 366, 184, 2, 529, 567, 5, 158, 80, 2, 530, 567, 5, 160, 81, 2, 531, 567, 5, 162, 82, 2, 532, 567, 5, 188, 95, 2, 533, 567, 5, 208, 105, 2, 534, 567, 5, 274, 138, 2, 535, 567, 5, 276, 139, 2, 536, 567, 5, 164, 83, 2, 537, 567, 5, 176, 89, 2, 538, 567, 5, 178, 90, 2, 539, 567, 5, 186, 94, 2, 540, 567, 5, 190, 96, 2, 541, 567, 5, 198, 100, 2, 542, 567, 5, 202, 102, 2, 543, 567, 5, 204, 103, 2, 544, 567, 5, 354, 178, 2, 545, 567, 5, 206, 104, 2, 546, 567, 5, 242, 122, 2, 547, 567, 5, 244, 123, 2, 548, 567, 5, 246, 124, 2, 549, 567, 5, 248, 125, 2, 550, 567, 5, 250, 126, 2, 551, 567, 5, 252, 127, 2, 552, 567, 5, 282, 142, 2, 553, 567, 5, 262, 132, 2, 554, 567, 5, 264, 133, 2, 555, 567, 5, 346, 174, 2, 556, 567, 5, 268, 135, 2, 557, 567, 5, 266, 134, 2, 558, 567, 5, 270, 136, 2, 559, 567, 5, 272, 137, 2, 560, 567, 5, 278, 140, 2, 561, 567, 5, 424, 213, 2, 562, 567, 5, 428, 215, 2, 563, 567, 5, 22, 12, 2, 564, 567, 5, 24, 13, 2, 565, 567, 5, 16, 9, 2, 566, 505, 3, 2, 2, 2, 566, 506, 3, 2, 2, 2, 566, 507, 3, 2, 2, 2, 566, 508, 3, 2, 2, 2, 566, 509, 3, 2, 2, 2, 566, 510, 3, 2, 2, 2, 566, 511, 3, 2, 2, 2, 566, 512, 3, 2, 2, 2, 566, 513, 3, 2, 2, 2, 566, 514, 3, 2, 2, 2, 566, 515, 3, 2, 2, 2, 566, 516, 3, 2, 2, 2, 566, 517, 3, 2, 2, 2, 566, 518, 3, 2, 2, 2, 566, 519, 3, 2, 2, 2, 566, 520, 3, 2, 2, 2, 566, 521, 3, 2, 2, 2, 566, 522, 3, 2, 2, 2, 566, 523, 3, 2, 2, 2, 566, 524, 3, 2, 2, 2, 566, 525, 3, 2, 2, 2, 566, 526, 3, 2, 2, 2, 566, 527, 3, 2, 2, 2, 566, 528, 3, 2, 2, 2, 566, 529, 3, 2, 2, 2, 566, 530, 3, 2, 2, 2, 566, 531, 3, 2, 2, 2, 566, 532, 3, 2, 2, 2, 566, 533, 3, 2, 2, 2, 566, 534, 3, 2, 2, 2, 566, 535, 3, 2, 2, 2, 566, 536, 3, 2, 2, 2, 566, 537, 3, 2, 2, 2, 566, 538, 3, 2, 2, 2, 566, 539, 3, 2, 2, 2, 566, 540, 3, 2, 2, 2, 566, 541, 3, 2, 2, 2, 566, 542, 3, 2, 2, 2, 566, 543, 3, 2, 2, 2, 566, 544, 3, 2, 2, 2, 566, 545, 3, 2, 2, 2, 566, 546, 3, 2, 2, 2, 566, 547, 3, 2, 2, 2, 566, 548, 3, 2, 2, 2, 566, 549, 3, 2, 2, 2, 566, 550, 3, 2, 2, 2, 566, 551, 3, 2, 2, 2, 566, 552, 3, 2, 2, 2, 566, 553, 3, 2, 2, 2, 566, 554, 3, 2, 2, 2, 566, 555, 3, 2, 2, 2, 566, 556, 3, 2, 2, 2, 566, 557, 3, 2, 2, 2, 566, 558, 3, 2, 2, 2, 566, 559, 3, 2, 2, 2, 566, 560, 3, 2, 2, 2, 566, 561, 3, 2, 2, 2, 566, 562, 3, 2, 2, 2, 566, 563, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 565, 3, 2, 2, 2, 567, 15, 3, 2, 2, 2, 568, 569, 9, 2, 2, 2, 569, 17, 3, 2, 2, 2, 570, 572, 7, 17, 2, 2, 571, 573, 5, 20, 11, 2, 572, 571, 3, 2, 2, 2, 573, 574, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 574, 575, 3, 2, 2, 2, 575, 19, 3, 2, 2, 2, 576, 577, 7, 18, 2, 2, 577, 578, 7, 19, 2, 2, 578, 579, 7, 20, 2, 2, 579, 580, 5, 4, 3, 2, 580, 581, 10, 3, 2, 2, 581, 21, 3, 2, 2, 2, 582, 583, 7, 21, 2, 2, 583, 23, 3, 2, 2, 2, 584, 585, 6, 13, 3, 2, 585, 586, 5, 384, 193, 2, 586, 25, 3, 2, 2, 2, 587, 588, 7, 22, 2, 2, 588, 601, 5, 254, 128, 2, 589, 591, 7, 22, 2, 2, 590, 589, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 597, 5, 28, 15, 2, 593, 594, 7, 23, 2, 2, 594, 596, 5, 28, 15, 2, 595, 593, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 601, 3, 2, 2, 2, 599, 597, 3, 2, 2, 2, 600, 587, 3, 2, 2, 2, 600, 590, 3, 2, 2, 2, 601, 27, 3, 2, 2, 2, 602, 606, 5, 30, 16, 2, 603, 606, 5, 32, 17, 2, 604, 606, 5, 34, 18, 2, 605, 602, 3, 2, 2, 2, 605, 603, 3, 2, 2, 2, 605, 604, 3, 2, 2, 2, 606, 29, 3, 2, 2, 2, 607, 609, 5, 440, 221, 2, 608, 610, 7, 24, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 612, 7, 25, 2, 2, 612, 613, 5, 384, 193, 2, 613, 624, 3, 2, 2, 2, 614, 615, 7, 26, 2, 2, 615, 616, 5, 440, 221, 2, 616, 618, 7, 27, 2, 2, 617, 619, 7, 24, 2, 2, 618, 617, 3, 2, 2, 2, 618, 619, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 621, 7, 25, 2, 2, 621, 622, 5, 384, 193, 2, 622, 624, 3, 2, 2, 2, 623, 607, 3, 2, 2, 2, 623, 614, 3, 2, 2, 2, 624, 31, 3, 2, 2, 2, 625, 626, 7, 26, 2, 2, 626, 631, 5, 440, 221, 2, 627, 628, 7, 23, 2, 2, 628, 630, 5, 440, 221, 2, 629, 627, 3, 2, 2, 2, 630, 633, 3, 2, 2, 2, 631, 629, 3, 2, 2, 2, 631, 632, 3, 2, 2, 2, 632, 634, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 634, 636, 7, 27, 2, 2, 635, 637, 7, 24, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 25, 2, 2, 639, 640, 7, 26, 2, 2, 640, 645, 5, 384, 193, 2, 641, 642, 7, 23, 2, 2, 642, 644, 5, 384, 193, 2, 643, 641, 3, 2, 2, 2, 644, 647, 3, 2, 2, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 645, 3, 2, 2, 2, 648, 649, 7, 27, 2, 2, 649, 33, 3, 2, 2, 2, 650, 663, 5, 440, 221, 2, 651, 652, 7, 26, 2, 2, 652, 657, 5, 440, 221, 2, 653, 654, 7, 23, 2, 2, 654, 656, 5, 440, 221, 2, 655, 653, 3, 2, 2, 2, 656, 659, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 657, 3, 2, 2, 2, 660, 661, 7, 27, 2, 2, 661, 663, 3, 2, 2, 2, 662, 650, 3, 2, 2, 2, 662, 651, 3, 2, 2, 2, 663, 665, 3, 2, 2, 2, 664, 666, 7, 24, 2, 2, 665, 664, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 7, 25, 2, 2, 668, 669, 7, 26, 2, 2, 669, 670, 5, 282, 142, 2, 670, 671, 7, 27, 2, 2, 671, 35, 3, 2, 2, 2, 672, 673, 7, 28, 2, 2, 673, 674, 5, 440, 221, 2, 674, 675, 7, 29, 2, 2, 675, 679, 7, 30, 2, 2, 676, 677, 7, 31, 2, 2, 677, 680, 7, 22, 2, 2, 678, 680, 7, 32, 2, 2, 679, 676, 3, 2, 2, 2, 679, 678, 3, 2, 2, 2, 680, 681, 3, 2, 2, 2, 681, 682, 5, 440, 221, 2, 682, 37, 3, 2, 2, 2, 683, 686, 7, 33, 2, 2, 684, 685, 7, 31, 2, 2, 685, 687, 7, 22, 2, 2, 686, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 689, 9, 4, 2, 2, 689, 690, 7, 26, 2, 2, 690, 695, 5, 440, 221, 2, 691, 692, 7, 23, 2, 2, 692, 694, 5, 440, 221, 2, 693, 691, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 695, 696, 3, 2, 2, 2, 696, 698, 3, 2, 2, 2, 697, 695, 3, 2, 2, 2, 698, 699, 7, 27, 2, 2, 699, 700, 7, 36, 2, 2, 700, 701, 7, 32, 2, 2, 701, 702, 5, 440, 221, 2, 702, 39, 3, 2, 2, 2, 703, 704, 7, 14, 2, 2, 704, 705, 7, 37, 2, 2, 705, 41, 3, 2, 2, 2, 706, 707, 7, 38, 2, 2, 707, 43, 3, 2, 2, 2, 708, 709, 7, 39, 2, 2, 709, 716, 5, 440, 221, 2, 710, 712, 7, 26, 2, 2, 711, 713, 5, 416, 209, 2, 712, 711, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 717, 7, 27, 2, 2, 715, 717, 5, 416, 209, 2, 716, 710, 3, 2, 2, 2, 716, 715, 3, 2, 2, 2, 716, 717, 3, 2, 2, 2, 717, 45, 3, 2, 2, 2, 718, 719, 7, 40, 2, 2, 719, 724, 5, 52, 27, 2, 720, 721, 7, 23, 2, 2, 721, 723, 5, 52, 27, 2, 722, 720, 3, 2, 2, 2, 723, 726, 3, 2, 2, 2, 724, 722, 3, 2, 2, 2, 724, 725, 3, 2, 2, 2, 725, 47, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 727, 728, 7, 40, 2, 2, 728, 729, 5, 52, 27, 2, 729, 735, 7, 15, 2, 2, 730, 731, 5, 52, 27, 2, 731, 732, 7, 15, 2, 2, 732, 734, 3, 2, 2, 2, 733, 730, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 49, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 5, 52, 27, 2, 739, 745, 7, 15, 2, 2, 740, 741, 5, 52, 27, 2, 741, 742, 7, 15, 2, 2, 742, 744, 3, 2, 2, 2, 743, 740, 3, 2, 2, 2, 744, 747, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 51, 3, 2, 2, 2, 747, 745, 3, 2, 2, 2, 748, 754, 5, 58, 30, 2, 749, 754, 5, 56, 29, 2, 750, 754, 5, 64, 33, 2, 751, 754, 5, 54, 28, 2, 752, 754, 5, 66, 34, 2, 753, 748, 3, 2, 2, 2, 753, 749, 3, 2, 2, 2, 753, 750, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 752, 3, 2, 2, 2, 754, 53, 3, 2, 2, 2, 755, 760, 5, 440, 221, 2, 756, 757, 7, 23, 2, 2, 757, 759, 5, 440, 221, 2, 758, 756, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 764, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 765, 7, 41, 2, 2, 764, 763, 3, 2, 2, 2, 764, 765, 3, 2, 2, 2, 765, 766, 3, 2, 2, 2, 766, 768, 5, 120, 61, 2, 767, 769, 5, 122, 62, 2, 768, 767, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 773, 3, 2, 2, 2, 770, 772, 5, 124, 63, 2, 771, 770, 3, 2, 2, 2, 772, 775, 3, 2, 2, 2, 773, 771, 3, 2, 2, 2, 773, 774, 3, 2, 2, 2, 774, 777, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 776, 778, 5, 126, 64, 2, 777, 776, 3, 2, 2, 2, 777, 778, 3, 2, 2, 2, 778, 791, 3, 2, 2, 2, 779, 780, 5, 440, 221, 2, 780, 782, 7, 42, 2, 2, 781, 783, 7, 41, 2, 2, 782, 781, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 786, 5, 120, 61, 2, 785, 787, 5, 122, 62, 2, 786, 785, 3, 2, 2, 2, 786, 787, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 789, 5, 126, 64, 2, 789, 791, 3, 2, 2, 2, 790, 755, 3, 2, 2, 2, 790, 779, 3, 2, 2, 2, 791, 55, 3, 2, 2, 2, 792, 793, 5, 440, 221, 2, 793, 794, 7, 43, 2, 2, 794, 57, 3, 2, 2, 2, 795, 796, 7, 29, 2, 2, 796, 801, 5, 440, 221, 2, 797, 798, 5, 440, 221, 2, 798, 799, 7, 29, 2, 2, 799, 801, 3, 2, 2, 2, 800, 795, 3, 2, 2, 2, 800, 797, 3, 2, 2, 2, 801, 804, 3, 2, 2, 2, 802, 805, 5, 60, 31, 2, 803, 805, 5, 62, 32, 2, 804, 802, 3, 2, 2, 2, 804, 803, 3, 2, 2, 2, 804, 805, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 809, 9, 5, 2, 2, 807, 810, 5, 282, 142, 2, 808, 810, 5, 384, 193, 2, 809, 807, 3, 2, 2, 2, 809, 808, 3, 2, 2, 2, 810, 59, 3, 2, 2, 2, 811, 812, 7, 36, 2, 2, 812, 814, 7, 45, 2, 2, 813, 815, 7, 46, 2, 2, 814, 813, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 818, 3, 2, 2, 2, 816, 817, 7, 47, 2, 2, 817, 819, 9, 6, 2, 2, 818, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 61, 3, 2, 2, 2, 820, 821, 7, 50, 2, 2, 821, 822, 7, 45, 2, 2, 822, 63, 3, 2, 2, 2, 823, 824, 9, 7, 2, 2, 824, 825, 7, 53, 2, 2, 825, 831, 7, 30, 2, 2, 826, 832, 7, 54, 2, 2, 827, 832, 7, 55, 2, 2, 828, 829, 7, 56, 2, 2, 829, 832, 7, 57, 2, 2, 830, 832, 5, 440, 221, 2, 831, 826, 3, 2, 2, 2, 831, 827, 3, 2, 2, 2, 831, 828, 3, 2, 2, 2, 831, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 5, 8, 5, 2, 834, 65, 3, 2, 2, 2, 835, 837, 7, 58, 2, 2, 836, 835, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 838, 3, 2, 2, 2, 838, 839, 7, 59, 2, 2, 839, 840, 7, 60, 2, 2, 840, 842, 5, 440, 221, 2, 841, 843, 5, 86, 44, 2, 842, 841, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 5, 72, 37, 2, 845, 67, 3, 2, 2, 2, 846, 847, 7, 61, 2, 2, 847, 851, 7, 60, 2, 2, 848, 849, 7, 62, 2, 2, 849, 850, 7, 56, 2, 2, 850, 852, 7, 63, 2, 2, 851, 848, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 855, 5, 330, 166, 2, 854, 856, 5, 86, 44, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 858, 5, 72, 37, 2, 858, 69, 3, 2, 2, 2, 859, 866, 7, 61, 2, 2, 860, 861, 7, 64, 2, 2, 861, 867, 7, 59, 2, 2, 862, 864, 9, 8, 2, 2, 863, 862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867, 7, 66, 2, 2, 866, 860, 3, 2, 2, 2, 866, 863, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 7, 60, 2, 2, 869, 871, 5, 440, 221, 2, 870, 872, 5, 86, 44, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 874, 5, 72, 37, 2, 874, 71, 3, 2, 2, 2, 875, 877, 7, 41, 2, 2, 876, 875, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 26, 2, 2, 879, 880, 5, 282, 142, 2, 880, 881, 7, 27, 2, 2, 881, 893, 3, 2, 2, 2, 882, 884, 7, 41, 2, 2, 883, 882, 3, 2, 2, 2, 883, 884, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 893, 5, 282, 142, 2, 886, 887, 7, 26, 2, 2, 887, 888, 5, 74, 38, 2, 888, 889, 7, 27, 2, 2, 889, 893, 3, 2, 2, 2, 890, 891, 7, 67, 2, 2, 891, 893, 5, 330, 166, 2, 892, 876, 3, 2, 2, 2, 892, 883, 3, 2, 2, 2, 892, 886, 3, 2, 2, 2, 892, 890, 3, 2, 2, 2, 893, 895, 3, 2, 2, 2, 894, 896, 5, 92, 47, 2, 895, 894, 3, 2, 2, 2, 895, 896, 3, 2, 2, 2, 896, 73, 3, 2, 2, 2, 897, 902, 5, 76, 39, 2, 898, 899, 7, 23, 2, 2, 899, 901, 5, 76, 39, 2, 900, 898, 3, 2, 2, 2, 901, 904, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 902, 903, 3, 2, 2, 2, 903, 75, 3, 2, 2, 2, 904, 902, 3, 2, 2, 2, 905, 906, 5, 78, 40, 2, 906, 908, 5, 120, 61, 2, 907, 909, 5, 122, 62, 2, 908, 907, 3, 2, 2, 2, 908, 909, 3, 2, 2, 2, 909, 913, 3, 2, 2, 2, 910, 912, 5, 124, 63, 2, 911, 910, 3, 2, 2, 2, 912, 915, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 913, 914, 3, 2, 2, 2, 914, 919, 3, 2, 2, 2, 915, 913, 3, 2, 2, 2, 916, 918, 5, 80, 41, 2, 917, 916, 3, 2, 2, 2, 918, 921, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 919, 920, 3, 2, 2, 2, 920, 928, 3, 2, 2, 2, 921, 919, 3, 2, 2, 2, 922, 923, 7, 68, 2, 2, 923, 925, 5, 440, 221, 2, 924, 922, 3, 2, 2, 2, 924, 925, 3, 2, 2, 2, 925, 926, 3, 2, 2, 2, 926, 928, 5, 82, 42, 2, 927, 905, 3, 2, 2, 2, 927, 924, 3, 2, 2, 2, 928, 77, 3, 2, 2, 2, 929, 930, 5, 440, 221, 2, 930, 79, 3, 2, 2, 2, 931, 964, 5, 126, 64, 2, 932, 934, 7, 56, 2, 2, 933, 932, 3, 2, 2, 2, 933, 934, 3, 2, 2, 2, 934, 935, 3, 2, 2, 2, 935, 964, 7, 21, 2, 2, 936, 937, 7, 69, 2, 2, 937, 964, 7, 70, 2, 2, 938, 964, 7, 71, 2, 2, 939, 940, 7, 72, 2, 2, 940, 941, 5, 330, 166, 2, 941, 942, 7, 26, 2, 2, 942, 943, 5, 440, 221, 2, 943, 947, 7, 27, 2, 2, 944, 946, 5, 84, 43, 2, 945, 944, 3, 2, 2, 2, 946, 949, 3, 2, 2, 2, 947, 945, 3, 2, 2, 2, 947, 948, 3, 2, 2, 2, 948, 964, 3, 2, 2, 2, 949, 947, 3, 2, 2, 2, 950, 951, 7, 73, 2, 2, 951, 952, 7, 26, 2, 2, 952, 957, 7, 74, 2, 2, 953, 954, 7, 23, 2, 2, 954, 956, 7, 74, 2, 2, 955, 953, 3, 2, 2, 2, 956, 959, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 957, 958, 3, 2, 2, 2, 958, 960, 3, 2, 2, 2, 959, 957, 3, 2, 2, 2, 960, 964, 7, 27, 2, 2, 961, 964, 7, 75, 2, 2, 962, 964, 7, 76, 2, 2, 963, 931, 3, 2, 2, 2, 963, 933, 3, 2, 2, 2, 963, 936, 3, 2, 2, 2, 963, 938, 3, 2, 2, 2, 963, 939, 3, 2, 2, 2, 963, 950, 3, 2, 2, 2, 963, 961, 3, 2, 2, 2, 963, 962, 3, 2, 2, 2, 964, 81, 3, 2, 2, 2, 965, 966, 7, 69, 2, 2, 966, 968, 7, 70, 2, 2, 967, 969, 7, 77, 2, 2, 968, 967, 3, 2, 2, 2, 968, 969, 3, 2, 2, 2, 969, 970, 3, 2, 2, 2, 970, 971, 7, 26, 2, 2, 971, 973, 5, 440, 221, 2, 972, 974, 9, 9, 2, 2, 973, 972, 3, 2, 2, 2, 973, 974, 3, 2, 2, 2, 974, 982, 3, 2, 2, 2, 975, 976, 7, 23, 2, 2, 976, 978, 5, 440, 221, 2, 977, 979, 9, 9, 2, 2, 978, 977, 3, 2, 2, 2, 978, 979, 3, 2, 2, 2, 979, 981, 3, 2, 2, 2, 980, 975, 3, 2, 2, 2, 981, 984, 3, 2, 2, 2, 982, 980, 3, 2, 2, 2, 982, 983, 3, 2, 2, 2, 983, 985, 3, 2, 2, 2, 984, 982, 3, 2, 2, 2, 985, 987, 7, 27, 2, 2, 986, 988, 7, 76, 2, 2, 987, 986, 3, 2, 2, 2, 987, 988, 3, 2, 2, 2, 988, 990, 3, 2, 2, 2, 989, 991, 5, 238, 120, 2, 990, 989, 3, 2, 2, 2, 990, 991, 3, 2, 2, 2, 991, 1023, 3, 2, 2, 2, 992, 993, 7, 80, 2, 2, 993, 994, 7, 70, 2, 2, 994, 995, 7, 26, 2, 2, 995, 1000, 5, 440, 221, 2, 996, 997, 7, 23, 2, 2, 997, 999, 5, 440, 221, 2, 998, 996, 3, 2, 2, 2, 999, 1002, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1000, 1001, 3, 2, 2, 2, 1001, 1003, 3, 2, 2, 2, 1002, 1000, 3, 2, 2, 2, 1003, 1004, 7, 27, 2, 2, 1004, 1005, 7, 72, 2, 2, 1005, 1006, 5, 330, 166, 2, 1006, 1007, 7, 26, 2, 2, 1007, 1012, 5, 440, 221, 2, 1008, 1009, 7, 23, 2, 2, 1009, 1011, 5, 440, 221, 2, 1010, 1008, 3, 2, 2, 2, 1011, 1014, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1012, 1013, 3, 2, 2, 2, 1013, 1015, 3, 2, 2, 2, 1014, 1012, 3, 2, 2, 2, 1015, 1019, 7, 27, 2, 2, 1016, 1018, 5, 84, 43, 2, 1017, 1016, 3, 2, 2, 2, 1018, 1021, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1019, 1020, 3, 2, 2, 2, 1020, 1023, 3, 2, 2, 2, 1021, 1019, 3, 2, 2, 2, 1022, 965, 3, 2, 2, 2, 1022, 992, 3, 2, 2, 2, 1023, 83, 3, 2, 2, 2, 1024, 1025, 7, 81, 2, 2, 1025, 1034, 9, 10, 2, 2, 1026, 1027, 7, 84, 2, 2, 1027, 1035, 7, 85, 2, 2, 1028, 1035, 7, 86, 2, 2, 1029, 1030, 7, 22, 2, 2, 1030, 1035, 7, 21, 2, 2, 1031, 1032, 7, 22, 2, 2, 1032, 1035, 7, 87, 2, 2, 1033, 1035, 7, 88, 2, 2, 1034, 1026, 3, 2, 2, 2, 1034, 1028, 3, 2, 2, 2, 1034, 1029, 3, 2, 2, 2, 1034, 1031, 3, 2, 2, 2, 1034, 1033, 3, 2, 2, 2, 1035, 85, 3, 2, 2, 2, 1036, 1038, 5, 88, 45, 2, 1037, 1036, 3, 2, 2, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1037, 3, 2, 2, 2, 1039, 1040, 3, 2, 2, 2, 1040, 87, 3, 2, 2, 2, 1041, 1042, 7, 23, 2, 2, 1042, 1045, 5, 90, 46, 2, 1043, 1045, 5, 102, 52, 2, 1044, 1041, 3, 2, 2, 2, 1044, 1043, 3, 2, 2, 2, 1045, 89, 3, 2, 2, 2, 1046, 1048, 7, 84, 2, 2, 1047, 1046, 3, 2, 2, 2, 1047, 1048, 3, 2, 2, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1050, 9, 11, 2, 2, 1050, 91, 3, 2, 2, 2, 1051, 1053, 5, 94, 48, 2, 1052, 1051, 3, 2, 2, 2, 1053, 1054, 3, 2, 2, 2, 1054, 1052, 3, 2, 2, 2, 1054, 1055, 3, 2, 2, 2, 1055, 93, 3, 2, 2, 2, 1056, 1057, 7, 81, 2, 2, 1057, 1058, 7, 91, 2, 2, 1058, 1059, 9, 12, 2, 2, 1059, 1067, 7, 93, 2, 2, 1060, 1067, 5, 96, 49, 2, 1061, 1067, 5, 98, 50, 2, 1062, 1067, 5, 100, 51, 2, 1063, 1067, 5, 102, 52, 2, 1064, 1067, 5, 108, 55, 2, 1065, 1067, 5, 110, 56, 2, 1066, 1056, 3, 2, 2, 2, 1066, 1060, 3, 2, 2, 2, 1066, 1061, 3, 2, 2, 2, 1066, 1062, 3, 2, 2, 2, 1066, 1063, 3, 2, 2, 2, 1066, 1064, 3, 2, 2, 2, 1066, 1065, 3, 2, 2, 2, 1067, 95, 3, 2, 2, 2, 1068, 1069, 7, 94, 2, 2, 1069, 1070, 7, 95, 2, 2, 1070, 1087, 9, 13, 2, 2, 1071, 1072, 9, 14, 2, 2, 1072, 1087, 7, 74, 2, 2, 1073, 1087, 7, 102, 2, 2, 1074, 1087, 9, 15, 2, 2, 1075, 1076, 7, 105, 2, 2, 1076, 1079, 7, 26, 2, 2, 1077, 1080, 5, 440, 221, 2, 1078, 1080, 7, 74, 2, 2, 1079, 1077, 3, 2, 2, 2, 1079, 1078, 3, 2, 2, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1079, 3, 2, 2, 2, 1081, 1082, 3, 2, 2, 2, 1082, 1083, 3, 2, 2, 2, 1083, 1087, 7, 27, 2, 2, 1084, 1085, 7, 106, 2, 2, 1085, 1087, 5, 440, 221, 2, 1086, 1068, 3, 2, 2, 2, 1086, 1071, 3, 2, 2, 2, 1086, 1073, 3, 2, 2, 2, 1086, 1074, 3, 2, 2, 2, 1086, 1075, 3, 2, 2, 2, 1086, 1084, 3, 2, 2, 2, 1087, 97, 3, 2, 2, 2, 1088, 1090, 7, 107, 2, 2, 1089, 1088, 3, 2, 2, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 3, 2, 2, 2, 1091, 1092, 7, 108, 2, 2, 1092, 1122, 5, 440, 221, 2, 1093, 1094, 7, 36, 2, 2, 1094, 1122, 7, 109, 2, 2, 1095, 1096, 7, 110, 2, 2, 1096, 1097, 7, 111, 2, 2, 1097, 1098, 7, 112, 2, 2, 1098, 1099, 7, 26, 2, 2, 1099, 1104, 5, 440, 221, 2, 1100, 1101, 7, 23, 2, 2, 1101, 1103, 5, 440, 221, 2, 1102, 1100, 3, 2, 2, 2, 1103, 1106, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1104, 1105, 3, 2, 2, 2, 1105, 1107, 3, 2, 2, 2, 1106, 1104, 3, 2, 2, 2, 1107, 1108, 7, 27, 2, 2, 1108, 1122, 3, 2, 2, 2, 1109, 1111, 7, 56, 2, 2, 1110, 1109, 3, 2, 2, 2, 1110, 1111, 3, 2, 2, 2, 1111, 1112, 3, 2, 2, 2, 1112, 1122, 7, 113, 2, 2, 1113, 1114, 7, 114, 2, 2, 1114, 1122, 9, 16, 2, 2, 1115, 1116, 7, 116, 2, 2, 1116, 1122, 7, 46, 2, 2, 1117, 1118, 7, 36, 2, 2, 1118, 1119, 7, 86, 2, 2, 1119, 1120, 7, 81, 2, 2, 1120, 1122, 7, 117, 2, 2, 1121, 1089, 3, 2, 2, 2, 1121, 1093, 3, 2, 2, 2, 1121, 1095, 3, 2, 2, 2, 1121, 1110, 3, 2, 2, 2, 1121, 1113, 3, 2, 2, 2, 1121, 1115, 3, 2, 2, 2, 1121, 1117, 3, 2, 2, 2, 1122, 99, 3, 2, 2, 2, 1123, 1125, 7, 71, 2, 2, 1124, 1123, 3, 2, 2, 2, 1124, 1125, 3, 2, 2, 2, 1125, 1126, 3, 2, 2, 2, 1126, 1127, 7, 69, 2, 2, 1127, 1128, 7, 107, 2, 2, 1128, 1129, 7, 26, 2, 2, 1129, 1134, 5, 440, 221, 2, 1130, 1131, 7, 23, 2, 2, 1131, 1133, 5, 440, 221, 2, 1132, 1130, 3, 2, 2, 2, 1133, 1136, 3, 2, 2, 2, 1134, 1132, 3, 2, 2, 2, 1134, 1135, 3, 2, 2, 2, 1135, 1137, 3, 2, 2, 2, 1136, 1134, 3, 2, 2, 2, 1137, 1138, 7, 27, 2, 2, 1138, 1142, 3, 2, 2, 2, 1139, 1140, 7, 36, 2, 2, 1140, 1142, 7, 118, 2, 2, 1141, 1124, 3, 2, 2, 2, 1141, 1139, 3, 2, 2, 2, 1142, 101, 3, 2, 2, 2, 1143, 1148, 5, 104, 53, 2, 1144, 1145, 7, 119, 2, 2, 1145, 1146, 7, 41, 2, 2, 1146, 1148, 5, 440, 221, 2, 1147, 1143, 3, 2, 2, 2, 1147, 1144, 3, 2, 2, 2, 1148, 103, 3, 2, 2, 2, 1149, 1150, 7, 120, 2, 2, 1150, 1151, 7, 121, 2, 2, 1151, 1155, 7, 122, 2, 2, 1152, 1154, 5, 106, 54, 2, 1153, 1152, 3, 2, 2, 2, 1154, 1157, 3, 2, 2, 2, 1155, 1153, 3, 2, 2, 2, 1155, 1156, 3, 2, 2, 2, 1156, 105, 3, 2, 2, 2, 1157, 1155, 3, 2, 2, 2, 1158, 1159, 7, 123, 2, 2, 1159, 1160, 7, 124, 2, 2, 1160, 1161, 7, 111, 2, 2, 1161, 1165, 5, 384, 193, 2, 1162, 1163, 7, 125, 2, 2, 1163, 1164, 7, 111, 2, 2, 1164, 1166, 5, 384, 193, 2, 1165, 1162, 3, 2, 2, 2, 1165, 1166, 3, 2, 2, 2, 1166, 1186, 3, 2, 2, 2, 1167, 1168, 7, 126, 2, 2, 1168, 1169, 7, 127, 2, 2, 1169, 1170, 7, 124, 2, 2, 1170, 1171, 7, 111, 2, 2, 1171, 1186, 5, 384, 193, 2, 1172, 1173, 7, 128, 2, 2, 1173, 1174, 7, 129, 2, 2, 1174, 1175, 7, 124, 2, 2, 1175, 1176, 7, 111, 2, 2, 1176, 1186, 5, 384, 193, 2, 1177, 1178, 7, 130, 2, 2, 1178, 1179, 7, 124, 2, 2, 1179, 1180, 7, 111, 2, 2, 1180, 1186, 5, 384, 193, 2, 1181, 1182, 7, 21, 2, 2, 1182, 1183, 7, 131, 2, 2, 1183, 1184, 7, 41, 2, 2, 1184, 1186, 5, 384, 193, 2, 1185, 1158, 3, 2, 2, 2, 1185, 1167, 3, 2, 2, 2, 1185, 1172, 3, 2, 2, 2, 1185, 1177, 3, 2, 2, 2, 1185, 1181, 3, 2, 2, 2, 1186, 107, 3, 2, 2, 2, 1187, 1188, 7, 81, 2, 2, 1188, 1192, 5, 440, 221, 2, 1189, 1190, 7, 132, 2, 2, 1190, 1192, 5, 440, 221, 2, 1191, 1187, 3, 2, 2, 2, 1191, 1189, 3, 2, 2, 2, 1192, 109, 3, 2, 2, 2, 1193, 1195, 7, 75, 2, 2, 1194, 1196, 7, 25, 2, 2, 1195, 1194, 3, 2, 2, 2, 1195, 1196, 3, 2, 2, 2, 1196, 1197, 3, 2, 2, 2, 1197, 1221, 5, 384, 193, 2, 1198, 1200, 7, 133, 2, 2, 1199, 1201, 7, 25, 2, 2, 1200, 1199, 3, 2, 2, 2, 1200, 1201, 3, 2, 2, 2, 1201, 1202, 3, 2, 2, 2, 1202, 1221, 5, 384, 193, 2, 1203, 1205, 7, 87, 2, 2, 1204, 1203, 3, 2, 2, 2, 1204, 1205, 3, 2, 2, 2, 1205, 1209, 3, 2, 2, 2, 1206, 1207, 7, 134, 2, 2, 1207, 1210, 7, 22, 2, 2, 1208, 1210, 7, 135, 2, 2, 1209, 1206, 3, 2, 2, 2, 1209, 1208, 3, 2, 2, 2, 1210, 1212, 3, 2, 2, 2, 1211, 1213, 7, 25, 2, 2, 1212, 1211, 3, 2, 2, 2, 1212, 1213, 3, 2, 2, 2, 1213, 1214, 3, 2, 2, 2, 1214, 1221, 5, 384, 193, 2, 1215, 1217, 7, 136, 2, 2, 1216, 1218, 7, 25, 2, 2, 1217, 1216, 3, 2, 2, 2, 1217, 1218, 3, 2, 2, 2, 1218, 1219, 3, 2, 2, 2, 1219, 1221, 5, 384, 193, 2, 1220, 1193, 3, 2, 2, 2, 1220, 1198, 3, 2, 2, 2, 1220, 1204, 3, 2, 2, 2, 1220, 1215, 3, 2, 2, 2, 1221, 111, 3, 2, 2, 2, 1222, 1223, 7, 137, 2, 2, 1223, 1224, 7, 60, 2, 2, 1224, 1225, 5, 330, 166, 2, 1225, 1226, 5, 114, 58, 2, 1226, 113, 3, 2, 2, 2, 1227, 1228, 5, 116, 59, 2, 1228, 115, 3, 2, 2, 2, 1229, 1232, 7, 138, 2, 2, 1230, 1231, 7, 68, 2, 2, 1231, 1233, 5, 440, 221, 2, 1232, 1230, 3, 2, 2, 2, 1232, 1233, 3, 2, 2, 2, 1233, 1234, 3, 2, 2, 2, 1234, 1235, 5, 118, 60, 2, 1235, 117, 3, 2, 2, 2, 1236, 1237, 7, 69, 2, 2, 1237, 1239, 7, 70, 2, 2, 1238, 1240, 7, 77, 2, 2, 1239, 1238, 3, 2, 2, 2, 1239, 1240, 3, 2, 2, 2, 1240, 1241, 3, 2, 2, 2, 1241, 1242, 7, 26, 2, 2, 1242, 1244, 5, 440, 221, 2, 1243, 1245, 9, 9, 2, 2, 1244, 1243, 3, 2, 2, 2, 1244, 1245, 3, 2, 2, 2, 1245, 1253, 3, 2, 2, 2, 1246, 1247, 7, 23, 2, 2, 1247, 1249, 5, 440, 221, 2, 1248, 1250, 9, 9, 2, 2, 1249, 1248, 3, 2, 2, 2, 1249, 1250, 3, 2, 2, 2, 1250, 1252, 3, 2, 2, 2, 1251, 1246, 3, 2, 2, 2, 1252, 1255, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1253, 1254, 3, 2, 2, 2, 1254, 1256, 3, 2, 2, 2, 1255, 1253, 3, 2, 2, 2, 1256, 1258, 7, 27, 2, 2, 1257, 1259, 7, 76, 2, 2, 1258, 1257, 3, 2, 2, 2, 1258, 1259, 3, 2, 2, 2, 1259, 1261, 3, 2, 2, 2, 1260, 1262, 5, 238, 120, 2, 1261, 1260, 3, 2, 2, 2, 1261, 1262, 3, 2, 2, 2, 1262, 1299, 3, 2, 2, 2, 1263, 1264, 7, 80, 2, 2, 1264, 1265, 7, 70, 2, 2, 1265, 1266, 7, 26, 2, 2, 1266, 1271, 5, 440, 221, 2, 1267, 1268, 7, 23, 2, 2, 1268, 1270, 5, 440, 221, 2, 1269, 1267, 3, 2, 2, 2, 1270, 1273, 3, 2, 2, 2, 1271, 1269, 3, 2, 2, 2, 1271, 1272, 3, 2, 2, 2, 1272, 1274, 3, 2, 2, 2, 1273, 1271, 3, 2, 2, 2, 1274, 1275, 7, 27, 2, 2, 1275, 1276, 7, 72, 2, 2, 1276, 1277, 5, 330, 166, 2, 1277, 1278, 7, 26, 2, 2, 1278, 1283, 5, 440, 221, 2, 1279, 1280, 7, 23, 2, 2, 1280, 1282, 5, 440, 221, 2, 1281, 1279, 3, 2, 2, 2, 1282, 1285, 3, 2, 2, 2, 1283, 1281, 3, 2, 2, 2, 1283, 1284, 3, 2, 2, 2, 1284, 1286, 3, 2, 2, 2, 1285, 1283, 3, 2, 2, 2, 1286, 1290, 7, 27, 2, 2, 1287, 1289, 5, 84, 43, 2, 1288, 1287, 3, 2, 2, 2, 1289, 1292, 3, 2, 2, 2, 1290, 1288, 3, 2, 2, 2, 1290, 1291, 3, 2, 2, 2, 1291, 1299, 3, 2, 2, 2, 1292, 1290, 3, 2, 2, 2, 1293, 1294, 7, 87, 2, 2, 1294, 1295, 5, 384, 193, 2, 1295, 1296, 7, 30, 2, 2, 1296, 1297, 5, 440, 221, 2, 1297, 1299, 3, 2, 2, 2, 1298, 1236, 3, 2, 2, 2, 1298, 1263, 3, 2, 2, 2, 1298, 1293, 3, 2, 2, 2, 1299, 119, 3, 2, 2, 2, 1300, 1347, 7, 139, 2, 2, 1301, 1347, 7, 134, 2, 2, 1302, 1347, 7, 140, 2, 2, 1303, 1347, 7, 141, 2, 2, 1304, 1347, 7, 142, 2, 2, 1305, 1347, 7, 143, 2, 2, 1306, 1347, 7, 144, 2, 2, 1307, 1347, 7, 145, 2, 2, 1308, 1347, 7, 146, 2, 2, 1309, 1347, 7, 147, 2, 2, 1310, 1347, 7, 148, 2, 2, 1311, 1313, 7, 149, 2, 2, 1312, 1314, 7, 150, 2, 2, 1313, 1312, 3, 2, 2, 2, 1313, 1314, 3, 2, 2, 2, 1314, 1347, 3, 2, 2, 2, 1315, 1347, 7, 151, 2, 2, 1316, 1347, 7, 152, 2, 2, 1317, 1347, 7, 153, 2, 2, 1318, 1347, 7, 154, 2, 2, 1319, 1347, 7, 155, 2, 2, 1320, 1347, 7, 156, 2, 2, 1321, 1347, 7, 157, 2, 2, 1322, 1347, 7, 158, 2, 2, 1323, 1347, 7, 159, 2, 2, 1324, 1347, 7, 160, 2, 2, 1325, 1347, 7, 161, 2, 2, 1326, 1347, 7, 162, 2, 2, 1327, 1328, 7, 163, 2, 2, 1328, 1347, 7, 164, 2, 2, 1329, 1347, 7, 165, 2, 2, 1330, 1347, 7, 166, 2, 2, 1331, 1347, 7, 167, 2, 2, 1332, 1347, 7, 168, 2, 2, 1333, 1347, 7, 169, 2, 2, 1334, 1347, 7, 170, 2, 2, 1335, 1347, 7, 171, 2, 2, 1336, 1347, 7, 172, 2, 2, 1337, 1347, 7, 173, 2, 2, 1338, 1347, 7, 174, 2, 2, 1339, 1347, 7, 175, 2, 2, 1340, 1347, 7, 176, 2, 2, 1341, 1344, 5, 440, 221, 2, 1342, 1343, 7, 6, 2, 2, 1343, 1345, 9, 17, 2, 2, 1344, 1342, 3, 2, 2, 2, 1344, 1345, 3, 2, 2, 2, 1345, 1347, 3, 2, 2, 2, 1346, 1300, 3, 2, 2, 2, 1346, 1301, 3, 2, 2, 2, 1346, 1302, 3, 2, 2, 2, 1346, 1303, 3, 2, 2, 2, 1346, 1304, 3, 2, 2, 2, 1346, 1305, 3, 2, 2, 2, 1346, 1306, 3, 2, 2, 2, 1346, 1307, 3, 2, 2, 2, 1346, 1308, 3, 2, 2, 2, 1346, 1309, 3, 2, 2, 2, 1346, 1310, 3, 2, 2, 2, 1346, 1311, 3, 2, 2, 2, 1346, 1315, 3, 2, 2, 2, 1346, 1316, 3, 2, 2, 2, 1346, 1317, 3, 2, 2, 2, 1346, 1318, 3, 2, 2, 2, 1346, 1319, 3, 2, 2, 2, 1346, 1320, 3, 2, 2, 2, 1346, 1321, 3, 2, 2, 2, 1346, 1322, 3, 2, 2, 2, 1346, 1323, 3, 2, 2, 2, 1346, 1324, 3, 2, 2, 2, 1346, 1325, 3, 2, 2, 2, 1346, 1326, 3, 2, 2, 2, 1346, 1327, 3, 2, 2, 2, 1346, 1329, 3, 2, 2, 2, 1346, 1330, 3, 2, 2, 2, 1346, 1331, 3, 2, 2, 2, 1346, 1332, 3, 2, 2, 2, 1346, 1333, 3, 2, 2, 2, 1346, 1334, 3, 2, 2, 2, 1346, 1335, 3, 2, 2, 2, 1346, 1336, 3, 2, 2, 2, 1346, 1337, 3, 2, 2, 2, 1346, 1338, 3, 2, 2, 2, 1346, 1339, 3, 2, 2, 2, 1346, 1340, 3, 2, 2, 2, 1346, 1341, 3, 2, 2, 2, 1347, 121, 3, 2, 2, 2, 1348, 1349, 7, 26, 2, 2, 1349, 1351, 9, 18, 2, 2, 1350, 1352, 9, 19, 2, 2, 1351, 1350, 3, 2, 2, 2, 1351, 1352, 3, 2, 2, 2, 1352, 1355, 3, 2, 2, 2, 1353, 1354, 7, 23, 2, 2, 1354, 1356, 7, 74, 2, 2, 1355, 1353, 3, 2, 2, 2, 1355, 1356, 3, 2, 2, 2, 1356, 1357, 3, 2, 2, 2, 1357, 1358, 7, 27, 2, 2, 1358, 123, 3, 2, 2, 2, 1359, 1361, 7, 56, 2, 2, 1360, 1359, 3, 2, 2, 2, 1360, 1361, 3, 2, 2, 2, 1361, 1362, 3, 2, 2, 2, 1362, 1371, 7, 21, 2, 2, 1363, 1364, 7, 134, 2, 2, 1364, 1365, 7, 22, 2, 2, 1365, 1371, 5, 440, 221, 2, 1366, 1368, 7, 56, 2, 2, 1367, 1366, 3, 2, 2, 2, 1367, 1368, 3, 2, 2, 2, 1368, 1369, 3, 2, 2, 2, 1369, 1371, 9, 20, 2, 2, 1370, 1360, 3, 2, 2, 2, 1370, 1363, 3, 2, 2, 2, 1370, 1367, 3, 2, 2, 2, 1371, 125, 3, 2, 2, 2, 1372, 1374, 7, 24, 2, 2, 1373, 1372, 3, 2, 2, 2, 1373, 1374, 3, 2, 2, 2, 1374, 1375, 3, 2, 2, 2, 1375, 1376, 7, 25, 2, 2, 1376, 1385, 5, 384, 193, 2, 1377, 1379, 7, 36, 2, 2, 1378, 1377, 3, 2, 2, 2, 1378, 1379, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 1382, 7, 87, 2, 2, 1381, 1383, 5, 384, 193, 2, 1382, 1381, 3, 2, 2, 2, 1382, 1383, 3, 2, 2, 2, 1383, 1385, 3, 2, 2, 2, 1384, 1373, 3, 2, 2, 2, 1384, 1378, 3, 2, 2, 2, 1385, 127, 3, 2, 2, 2, 1386, 1387, 7, 61, 2, 2, 1387, 1391, 9, 21, 2, 2, 1388, 1389, 7, 62, 2, 2, 1389, 1390, 7, 56, 2, 2, 1390, 1392, 7, 63, 2, 2, 1391, 1388, 3, 2, 2, 2, 1391, 1392, 3, 2, 2, 2, 1392, 1393, 3, 2, 2, 2, 1393, 1397, 5, 384, 193, 2, 1394, 1396, 5, 130, 66, 2, 1395, 1394, 3, 2, 2, 2, 1396, 1399, 3, 2, 2, 2, 1397, 1395, 3, 2, 2, 2, 1397, 1398, 3, 2, 2, 2, 1398, 129, 3, 2, 2, 2, 1399, 1397, 3, 2, 2, 2, 1400, 1401, 7, 133, 2, 2, 1401, 1405, 5, 384, 193, 2, 1402, 1403, 7, 185, 2, 2, 1403, 1405, 5, 384, 193, 2, 1404, 1400, 3, 2, 2, 2, 1404, 1402, 3, 2, 2, 2, 1405, 131, 3, 2, 2, 2, 1406, 1414, 7, 137, 2, 2, 1407, 1410, 7, 61, 2, 2, 1408, 1409, 7, 186, 2, 2, 1409, 1411, 7, 109, 2, 2, 1410, 1408, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1414, 3, 2, 2, 2, 1412, 1414, 7, 109, 2, 2, 1413, 1406, 3, 2, 2, 2, 1413, 1407, 3, 2, 2, 2, 1413, 1412, 3, 2, 2, 2, 1413, 1414, 3, 2, 2, 2, 1414, 1415, 3, 2, 2, 2, 1415, 1416, 7, 187, 2, 2, 1416, 1418, 5, 440, 221, 2, 1417, 1419, 5, 150, 76, 2, 1418, 1417, 3, 2, 2, 2, 1418, 1419, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1422, 5, 134, 68, 2, 1421, 1423, 9, 22, 2, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1425, 3, 2, 2, 2, 1424, 1426, 5, 50, 26, 2, 1425, 1424, 3, 2, 2, 2, 1425, 1426, 3, 2, 2, 2, 1426, 1427, 3, 2, 2, 2, 1427, 1428, 5, 8, 5, 2, 1428, 133, 3, 2, 2, 2, 1429, 1430, 9, 23, 2, 2, 1430, 1432, 5, 120, 61, 2, 1431, 1433, 5, 122, 62, 2, 1432, 1431, 3, 2, 2, 2, 1432, 1433, 3, 2, 2, 2, 1433, 135, 3, 2, 2, 2, 1434, 1442, 7, 137, 2, 2, 1435, 1438, 7, 61, 2, 2, 1436, 1437, 7, 186, 2, 2, 1437, 1439, 7, 109, 2, 2, 1438, 1436, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1442, 3, 2, 2, 2, 1440, 1442, 7, 109, 2, 2, 1441, 1434, 3, 2, 2, 2, 1441, 1435, 3, 2, 2, 2, 1441, 1440, 3, 2, 2, 2, 1441, 1442, 3, 2, 2, 2, 1442, 1443, 3, 2, 2, 2, 1443, 1444, 7, 189, 2, 2, 1444, 1445, 5, 440, 221, 2, 1445, 1446, 9, 22, 2, 2, 1446, 1447, 5, 138, 70, 2, 1447, 1451, 7, 16, 2, 2, 1448, 1449, 5, 440, 221, 2, 1449, 1450, 7, 15, 2, 2, 1450, 1452, 3, 2, 2, 2, 1451, 1448, 3, 2, 2, 2, 1451, 1452, 3, 2, 2, 2, 1452, 137, 3, 2, 2, 2, 1453, 1454, 5, 140, 71, 2, 1454, 1460, 7, 15, 2, 2, 1455, 1456, 5, 140, 71, 2, 1456, 1457, 7, 15, 2, 2, 1457, 1459, 3, 2, 2, 2, 1458, 1455, 3, 2, 2, 2, 1459, 1462, 3, 2, 2, 2, 1460, 1458, 3, 2, 2, 2, 1460, 1461, 3, 2, 2, 2, 1461, 139, 3, 2, 2, 2, 1462, 1460, 3, 2, 2, 2, 1463, 1477, 5, 52, 27, 2, 1464, 1465, 7, 187, 2, 2, 1465, 1467, 5, 440, 221, 2, 1466, 1468, 5, 150, 76, 2, 1467, 1466, 3, 2, 2, 2, 1467, 1468, 3, 2, 2, 2, 1468, 1469, 3, 2, 2, 2, 1469, 1470, 5, 134, 68, 2, 1470, 1477, 3, 2, 2, 2, 1471, 1472, 9, 24, 2, 2, 1472, 1474, 5, 440, 221, 2, 1473, 1475, 5, 150, 76, 2, 1474, 1473, 3, 2, 2, 2, 1474, 1475, 3, 2, 2, 2, 1475, 1477, 3, 2, 2, 2, 1476, 1463, 3, 2, 2, 2, 1476, 1464, 3, 2, 2, 2, 1476, 1471, 3, 2, 2, 2, 1477, 141, 3, 2, 2, 2, 1478, 1486, 7, 137, 2, 2, 1479, 1482, 7, 61, 2, 2, 1480, 1481, 7, 186, 2, 2, 1481, 1483, 7, 109, 2, 2, 1482, 1480, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1486, 3, 2, 2, 2, 1484, 1486, 7, 109, 2, 2, 1485, 1478, 3, 2, 2, 2, 1485, 1479, 3, 2, 2, 2, 1485, 1484, 3, 2, 2, 2, 1485, 1486, 3, 2, 2, 2, 1486, 1487, 3, 2, 2, 2, 1487, 1488, 7, 189, 2, 2, 1488, 1489, 7, 191, 2, 2, 1489, 1490, 5, 440, 221, 2, 1490, 1491, 9, 22, 2, 2, 1491, 1492, 5, 144, 73, 2, 1492, 1496, 7, 16, 2, 2, 1493, 1494, 5, 440, 221, 2, 1494, 1495, 7, 15, 2, 2, 1495, 1497, 3, 2, 2, 2, 1496, 1493, 3, 2, 2, 2, 1496, 1497, 3, 2, 2, 2, 1497, 143, 3, 2, 2, 2, 1498, 1499, 5, 146, 74, 2, 1499, 1505, 7, 15, 2, 2, 1500, 1501, 5, 146, 74, 2, 1501, 1502, 7, 15, 2, 2, 1502, 1504, 3, 2, 2, 2, 1503, 1500, 3, 2, 2, 2, 1504, 1507, 3, 2, 2, 2, 1505, 1503, 3, 2, 2, 2, 1505, 1506, 3, 2, 2, 2, 1506, 145, 3, 2, 2, 2, 1507, 1505, 3, 2, 2, 2, 1508, 1512, 5, 52, 27, 2, 1509, 1512, 5, 132, 67, 2, 1510, 1512, 5, 148, 75, 2, 1511, 1508, 3, 2, 2, 2, 1511, 1509, 3, 2, 2, 2, 1511, 1510, 3, 2, 2, 2, 1512, 147, 3, 2, 2, 2, 1513, 1521, 7, 137, 2, 2, 1514, 1517, 7, 61, 2, 2, 1515, 1516, 7, 186, 2, 2, 1516, 1518, 7, 109, 2, 2, 1517, 1515, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1521, 3, 2, 2, 2, 1519, 1521, 7, 109, 2, 2, 1520, 1513, 3, 2, 2, 2, 1520, 1514, 3, 2, 2, 2, 1520, 1519, 3, 2, 2, 2, 1520, 1521, 3, 2, 2, 2, 1521, 1522, 3, 2, 2, 2, 1522, 1523, 9, 24, 2, 2, 1523, 1525, 5, 440, 221, 2, 1524, 1526, 5, 150, 76, 2, 1525, 1524, 3, 2, 2, 2, 1525, 1526, 3, 2, 2, 2, 1526, 1528, 3, 2, 2, 2, 1527, 1529, 5, 154, 78, 2, 1528, 1527, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 1531, 3, 2, 2, 2, 1530, 1532, 9, 22, 2, 2, 1531, 1530, 3, 2, 2, 2, 1531, 1532, 3, 2, 2, 2, 1532, 1534, 3, 2, 2, 2, 1533, 1535, 5, 50, 26, 2, 1534, 1533, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1537, 3, 2, 2, 2, 1536, 1538, 5, 278, 140, 2, 1537, 1536, 3, 2, 2, 2, 1537, 1538, 3, 2, 2, 2, 1538, 1539, 3, 2, 2, 2, 1539, 1543, 5, 12, 7, 2, 1540, 1541, 5, 440, 221, 2, 1541, 1542, 7, 15, 2, 2, 1542, 1544, 3, 2, 2, 2, 1543, 1540, 3, 2, 2, 2, 1543, 1544, 3, 2, 2, 2, 1544, 149, 3, 2, 2, 2, 1545, 1546, 7, 26, 2, 2, 1546, 1568, 7, 27, 2, 2, 1547, 1548, 7, 26, 2, 2, 1548, 1553, 5, 152, 77, 2, 1549, 1550, 7, 23, 2, 2, 1550, 1552, 5, 152, 77, 2, 1551, 1549, 3, 2, 2, 2, 1552, 1555, 3, 2, 2, 2, 1553, 1551, 3, 2, 2, 2, 1553, 1554, 3, 2, 2, 2, 1554, 1556, 3, 2, 2, 2, 1555, 1553, 3, 2, 2, 2, 1556, 1557, 7, 27, 2, 2, 1557, 1568, 3, 2, 2, 2, 1558, 1559, 6, 76, 4, 2, 1559, 1564, 5, 152, 77, 2, 1560, 1561, 7, 23, 2, 2, 1561, 1563, 5, 152, 77, 2, 1562, 1560, 3, 2, 2, 2, 1563, 1566, 3, 2, 2, 2, 1564, 1562, 3, 2, 2, 2, 1564, 1565, 3, 2, 2, 2, 1565, 1568, 3, 2, 2, 2, 1566, 1564, 3, 2, 2, 2, 1567, 1545, 3, 2, 2, 2, 1567, 1547, 3, 2, 2, 2, 1567, 1558, 3, 2, 2, 2, 1568, 151, 3, 2, 2, 2, 1569, 1575, 7, 108, 2, 2, 1570, 1575, 7, 192, 2, 2, 1571, 1575, 7, 193, 2, 2, 1572, 1573, 7, 108, 2, 2, 1573, 1575, 7, 192, 2, 2, 1574, 1569, 3, 2, 2, 2, 1574, 1570, 3, 2, 2, 2, 1574, 1571, 3, 2, 2, 2, 1574, 1572, 3, 2, 2, 2, 1574, 1575, 3, 2, 2, 2, 1575, 1576, 3, 2, 2, 2, 1576, 1577, 5, 440, 221, 2, 1577, 1579, 5, 120, 61, 2, 1578, 1580, 5, 122, 62, 2, 1579, 1578, 3, 2, 2, 2, 1579, 1580, 3, 2, 2, 2, 1580, 1584, 3, 2, 2, 2, 1581, 1583, 5, 124, 63, 2, 1582, 1581, 3, 2, 2, 2, 1583, 1586, 3, 2, 2, 2, 1584, 1582, 3, 2, 2, 2, 1584, 1585, 3, 2, 2, 2, 1585, 1588, 3, 2, 2, 2, 1586, 1584, 3, 2, 2, 2, 1587, 1589, 5, 126, 64, 2, 1588, 1587, 3, 2, 2, 2, 1588, 1589, 3, 2, 2, 2, 1589, 1612, 3, 2, 2, 2, 1590, 1596, 5, 440, 221, 2, 1591, 1597, 7, 108, 2, 2, 1592, 1597, 7, 192, 2, 2, 1593, 1597, 7, 193, 2, 2, 1594, 1595, 7, 108, 2, 2, 1595, 1597, 7, 192, 2, 2, 1596, 1591, 3, 2, 2, 2, 1596, 1592, 3, 2, 2, 2, 1596, 1593, 3, 2, 2, 2, 1596, 1594, 3, 2, 2, 2, 1596, 1597, 3, 2, 2, 2, 1597, 1598, 3, 2, 2, 2, 1598, 1600, 5, 120, 61, 2, 1599, 1601, 5, 122, 62, 2, 1600, 1599, 3, 2, 2, 2, 1600, 1601, 3, 2, 2, 2, 1601, 1605, 3, 2, 2, 2, 1602, 1604, 5, 124, 63, 2, 1603, 1602, 3, 2, 2, 2, 1604, 1607, 3, 2, 2, 2, 1605, 1603, 3, 2, 2, 2, 1605, 1606, 3, 2, 2, 2, 1606, 1609, 3, 2, 2, 2, 1607, 1605, 3, 2, 2, 2, 1608, 1610, 5, 126, 64, 2, 1609, 1608, 3, 2, 2, 2, 1609, 1610, 3, 2, 2, 2, 1610, 1612, 3, 2, 2, 2, 1611, 1574, 3, 2, 2, 2, 1611, 1590, 3, 2, 2, 2, 1612, 153, 3, 2, 2, 2, 1613, 1615, 5, 156, 79, 2, 1614, 1613, 3, 2, 2, 2, 1615, 1616, 3, 2, 2, 2, 1616, 1614, 3, 2, 2, 2, 1616, 1617, 3, 2, 2, 2, 1617, 155, 3, 2, 2, 2, 1618, 1619, 7, 194, 2, 2, 1619, 1630, 7, 195, 2, 2, 1620, 1621, 7, 195, 2, 2, 1621, 1622, 7, 196, 2, 2, 1622, 1630, 9, 25, 2, 2, 1623, 1625, 7, 201, 2, 2, 1624, 1623, 3, 2, 2, 2, 1624, 1625, 3, 2, 2, 2, 1625, 1626, 3, 2, 2, 2, 1626, 1627, 7, 31, 2, 2, 1627, 1628, 7, 202, 2, 2, 1628, 1630, 7, 74, 2, 2, 1629, 1618, 3, 2, 2, 2, 1629, 1620, 3, 2, 2, 2, 1629, 1624, 3, 2, 2, 2, 1630, 157, 3, 2, 2, 2, 1631, 1632, 7, 117, 2, 2, 1632, 1635, 7, 60, 2, 2, 1633, 1634, 7, 62, 2, 2, 1634, 1636, 7, 63, 2, 2, 1635, 1633, 3, 2, 2, 2, 1635, 1636, 3, 2, 2, 2, 1636, 1637, 3, 2, 2, 2, 1637, 1646, 5, 330, 166, 2, 1638, 1639, 7, 117, 2, 2, 1639, 1642, 9, 21, 2, 2, 1640, 1641, 7, 62, 2, 2, 1641, 1643, 7, 63, 2, 2, 1642, 1640, 3, 2, 2, 2, 1642, 1643, 3, 2, 2, 2, 1643, 1644, 3, 2, 2, 2, 1644, 1646, 5, 384, 193, 2, 1645, 1631, 3, 2, 2, 2, 1645, 1638, 3, 2, 2, 2, 1646, 159, 3, 2, 2, 2, 1647, 1648, 7, 16, 2, 2, 1648, 1649, 7, 37, 2, 2, 1649, 161, 3, 2, 2, 2, 1650, 1652, 9, 26, 2, 2, 1651, 1653, 7, 96, 2, 2, 1652, 1651, 3, 2, 2, 2, 1652, 1653, 3, 2, 2, 2, 1653, 1654, 3, 2, 2, 2, 1654, 1660, 5, 384, 193, 2, 1655, 1656, 7, 26, 2, 2, 1656, 1657, 5, 416, 209, 2, 1657, 1658, 7, 27, 2, 2, 1658, 1661, 3, 2, 2, 2, 1659, 1661, 5, 416, 209, 2, 1660, 1655, 3, 2, 2, 2, 1660, 1659, 3, 2, 2, 2, 1660, 1661, 3, 2, 2, 2, 1661, 1671, 3, 2, 2, 2, 1662, 1663, 7, 205, 2, 2, 1663, 1668, 7, 19, 2, 2, 1664, 1665, 7, 23, 2, 2, 1665, 1667, 7, 19, 2, 2, 1666, 1664, 3, 2, 2, 2, 1667, 1670, 3, 2, 2, 2, 1668, 1666, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1672, 3, 2, 2, 2, 1670, 1668, 3, 2, 2, 2, 1671, 1662, 3, 2, 2, 2, 1671, 1672, 3, 2, 2, 2, 1672, 1674, 3, 2, 2, 2, 1673, 1675, 5, 280, 141, 2, 1674, 1673, 3, 2, 2, 2, 1674, 1675, 3, 2, 2, 2, 1675, 163, 3, 2, 2, 2, 1676, 1680, 5, 166, 84, 2, 1677, 1680, 5, 168, 85, 2, 1678, 1680, 5, 170, 86, 2, 1679, 1676, 3, 2, 2, 2, 1679, 1677, 3, 2, 2, 2, 1679, 1678, 3, 2, 2, 2, 1680, 165, 3, 2, 2, 2, 1681, 1682, 7, 62, 2, 2, 1682, 1683, 5, 368, 185, 2, 1683, 1684, 7, 20, 2, 2, 1684, 1688, 5, 4, 3, 2, 1685, 1687, 5, 172, 87, 2, 1686, 1685, 3, 2, 2, 2, 1687, 1690, 3, 2, 2, 2, 1688, 1686, 3, 2, 2, 2, 1688, 1689, 3, 2, 2, 2, 1689, 1692, 3, 2, 2, 2, 1690, 1688, 3, 2, 2, 2, 1691, 1693, 5, 174, 88, 2, 1692, 1691, 3, 2, 2, 2, 1692, 1693, 3, 2, 2, 2, 1693, 1694, 3, 2, 2, 2, 1694, 1695, 7, 16, 2, 2, 1695, 1696, 7, 62, 2, 2, 1696, 167, 3, 2, 2, 2, 1697, 1698, 7, 62, 2, 2, 1698, 1699, 5, 368, 185, 2, 1699, 1702, 5, 8, 5, 2, 1700, 1701, 7, 206, 2, 2, 1701, 1703, 5, 8, 5, 2, 1702, 1700, 3, 2, 2, 2, 1702, 1703, 3, 2, 2, 2, 1703, 169, 3, 2, 2, 2, 1704, 1705, 7, 7, 2, 2, 1705, 1706, 7, 62, 2, 2, 1706, 1707, 5, 368, 185, 2, 1707, 1708, 7, 20, 2, 2, 1708, 1709, 5, 8, 5, 2, 1709, 171, 3, 2, 2, 2, 1710, 1711, 9, 27, 2, 2, 1711, 1712, 5, 368, 185, 2, 1712, 1713, 7, 20, 2, 2, 1713, 1714, 5, 4, 3, 2, 1714, 173, 3, 2, 2, 2, 1715, 1716, 7, 206, 2, 2, 1716, 1717, 5, 4, 3, 2, 1717, 175, 3, 2, 2, 2, 1718, 1721, 7, 209, 2, 2, 1719, 1722, 5, 434, 218, 2, 1720, 1722, 5, 384, 193, 2, 1721, 1719, 3, 2, 2, 2, 1721, 1720, 3, 2, 2, 2, 1722, 177, 3, 2, 2, 2, 1723, 1730, 7, 210, 2, 2, 1724, 1725, 7, 211, 2, 2, 1725, 1731, 7, 60, 2, 2, 1726, 1728, 7, 205, 2, 2, 1727, 1729, 7, 60, 2, 2, 1728, 1727, 3, 2, 2, 2, 1728, 1729, 3, 2, 2, 2, 1729, 1731, 3, 2, 2, 2, 1730, 1724, 3, 2, 2, 2, 1730, 1726, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1734, 5, 330, 166, 2, 1733, 1735, 5, 180, 91, 2, 1734, 1733, 3, 2, 2, 2, 1734, 1735, 3, 2, 2, 2, 1735, 1738, 3, 2, 2, 2, 1736, 1739, 5, 282, 142, 2, 1737, 1739, 5, 182, 92, 2, 1738, 1736, 3, 2, 2, 2, 1738, 1737, 3, 2, 2, 2, 1739, 179, 3, 2, 2, 2, 1740, 1741, 7, 26, 2, 2, 1741, 1746, 5, 440, 221, 2, 1742, 1743, 7, 23, 2, 2, 1743, 1745, 5, 440, 221, 2, 1744, 1742, 3, 2, 2, 2, 1745, 1748, 3, 2, 2, 2, 1746, 1744, 3, 2, 2, 2, 1746, 1747, 3, 2, 2, 2, 1747, 1749, 3, 2, 2, 2, 1748, 1746, 3, 2, 2, 2, 1749, 1750, 7, 27, 2, 2, 1750, 181, 3, 2, 2, 2, 1751, 1752, 7, 212, 2, 2, 1752, 1757, 5, 184, 93, 2, 1753, 1754, 7, 23, 2, 2, 1754, 1756, 5, 184, 93, 2, 1755, 1753, 3, 2, 2, 2, 1756, 1759, 3, 2, 2, 2, 1757, 1755, 3, 2, 2, 2, 1757, 1758, 3, 2, 2, 2, 1758, 183, 3, 2, 2, 2, 1759, 1757, 3, 2, 2, 2, 1760, 1761, 7, 26, 2, 2, 1761, 1766, 5, 384, 193, 2, 1762, 1763, 7, 23, 2, 2, 1763, 1765, 5, 384, 193, 2, 1764, 1762, 3, 2, 2, 2, 1765, 1768, 3, 2, 2, 2, 1766, 1764, 3, 2, 2, 2, 1766, 1767, 3, 2, 2, 2, 1767, 1769, 3, 2, 2, 2, 1768, 1766, 3, 2, 2, 2, 1769, 1770, 7, 27, 2, 2, 1770, 185, 3, 2, 2, 2, 1771, 1772, 7, 210, 2, 2, 1772, 1774, 7, 211, 2, 2, 1773, 1775, 7, 64, 2, 2, 1774, 1773, 3, 2, 2, 2, 1774, 1775, 3, 2, 2, 2, 1775, 1776, 3, 2, 2, 2, 1776, 1777, 7, 213, 2, 2, 1777, 1778, 5, 422, 212, 2, 1778, 1779, 5, 420, 211, 2, 1779, 187, 3, 2, 2, 2, 1780, 1782, 7, 52, 2, 2, 1781, 1783, 7, 19, 2, 2, 1782, 1781, 3, 2, 2, 2, 1782, 1783, 3, 2, 2, 2, 1783, 1786, 3, 2, 2, 2, 1784, 1785, 7, 18, 2, 2, 1785, 1787, 5, 368, 185, 2, 1786, 1784, 3, 2, 2, 2, 1786, 1787, 3, 2, 2, 2, 1787, 189, 3, 2, 2, 2, 1788, 1789, 7, 214, 2, 2, 1789, 1790, 7, 215, 2, 2, 1790, 1791, 5, 192, 97, 2, 1791, 191, 3, 2, 2, 2, 1792, 1795, 5, 194, 98, 2, 1793, 1795, 5, 196, 99, 2, 1794, 1792, 3, 2, 2, 2, 1794, 1793, 3, 2, 2, 2, 1795, 193, 3, 2, 2, 2, 1796, 1797, 7, 17, 2, 2, 1797, 1798, 7, 74, 2, 2, 1798, 1799, 5, 440, 221, 2, 1799, 1800, 7, 25, 2, 2, 1800, 1801, 7, 216, 2, 2, 1801, 195, 3, 2, 2, 2, 1802, 1803, 5, 440, 221, 2, 1803, 1804, 7, 25, 2, 2, 1804, 1805, 7, 217, 2, 2, 1805, 197, 3, 2, 2, 2, 1806, 1807, 7, 218, 2, 2, 1807, 1812, 5, 200, 101, 2, 1808, 1809, 7, 23, 2, 2, 1809, 1811, 5, 200, 101, 2, 1810, 1808, 3, 2, 2, 2, 1811, 1814, 3, 2, 2, 2, 1812, 1810, 3, 2, 2, 2, 1812, 1813, 3, 2, 2, 2, 1813, 1815, 3, 2, 2, 2, 1814, 1812, 3, 2, 2, 2, 1815, 1816, 7, 47, 2, 2, 1816, 1817, 7, 219, 2, 2, 1817, 1818, 5, 440, 221, 2, 1818, 199, 3, 2, 2, 2, 1819, 1820, 7, 204, 2, 2, 1820, 1821, 7, 81, 2, 2, 1821, 1822, 7, 32, 2, 2, 1822, 1823, 5, 440, 221, 2, 1823, 201, 3, 2, 2, 2, 1824, 1826, 7, 220, 2, 2, 1825, 1827, 7, 19, 2, 2, 1826, 1825, 3, 2, 2, 2, 1826, 1827, 3, 2, 2, 2, 1827, 203, 3, 2, 2, 2, 1828, 1829, 7, 128, 2, 2, 1829, 1830, 7, 221, 2, 2, 1830, 1833, 5, 384, 193, 2, 1831, 1832, 7, 47, 2, 2, 1832, 1834, 5, 384, 193, 2, 1833, 1831, 3, 2, 2, 2, 1833, 1834, 3, 2, 2, 2, 1834, 1837, 3, 2, 2, 2, 1835, 1836, 7, 222, 2, 2, 1836, 1838, 5, 384, 193, 2, 1837, 1835, 3, 2, 2, 2, 1837, 1838, 3, 2, 2, 2, 1838, 205, 3, 2, 2, 2, 1839, 1840, 7, 223, 2, 2, 1840, 1846, 7, 19, 2, 2, 1841, 1844, 7, 30, 2, 2, 1842, 1845, 5, 282, 142, 2, 1843, 1845, 5, 384, 193, 2, 1844, 1842, 3, 2, 2, 2, 1844, 1843, 3, 2, 2, 2, 1845, 1847, 3, 2, 2, 2, 1846, 1841, 3, 2, 2, 2, 1846, 1847, 3, 2, 2, 2, 1847, 207, 3, 2, 2, 2, 1848, 1850, 7, 224, 2, 2, 1849, 1851, 7, 225, 2, 2, 1850, 1849, 3, 2, 2, 2, 1850, 1851, 3, 2, 2, 2, 1851, 1852, 3, 2, 2, 2, 1852, 1853, 7, 19, 2, 2, 1853, 1854, 7, 205, 2, 2, 1854, 1859, 7, 19, 2, 2, 1855, 1856, 7, 23, 2, 2, 1856, 1858, 7, 19, 2, 2, 1857, 1855, 3, 2, 2, 2, 1858, 1861, 3, 2, 2, 2, 1859, 1857, 3, 2, 2, 2, 1859, 1860, 3, 2, 2, 2, 1860, 209, 3, 2, 2, 2, 1861, 1859, 3, 2, 2, 2, 1862, 1863, 7, 226, 2, 2, 1863, 1864, 9, 28, 2, 2, 1864, 1865, 7, 81, 2, 2, 1865, 1867, 5, 330, 166, 2, 1866, 1868, 5, 212, 107, 2, 1867, 1866, 3, 2, 2, 2, 1867, 1868, 3, 2, 2, 2, 1868, 211, 3, 2, 2, 2, 1869, 1870, 7, 229, 2, 2, 1870, 1871, 7, 26, 2, 2, 1871, 1876, 5, 440, 221, 2, 1872, 1873, 7, 23, 2, 2, 1873, 1875, 5, 440, 221, 2, 1874, 1872, 3, 2, 2, 2, 1875, 1878, 3, 2, 2, 2, 1876, 1874, 3, 2, 2, 2, 1876, 1877, 3, 2, 2, 2, 1877, 1879, 3, 2, 2, 2, 1878, 1876, 3, 2, 2, 2, 1879, 1880, 7, 27, 2, 2, 1880, 213, 3, 2, 2, 2, 1881, 1882, 7, 230, 2, 2, 1882, 1883, 7, 19, 2, 2, 1883, 215, 3, 2, 2, 2, 1884, 1885, 7, 231, 2, 2, 1885, 1886, 9, 29, 2, 2, 1886, 1887, 5, 218, 110, 2, 1887, 1888, 7, 23, 2, 2, 1888, 1889, 5, 218, 110, 2, 1889, 217, 3, 2, 2, 2, 1890, 1892, 5, 330, 166, 2, 1891, 1893, 5, 332, 167, 2, 1892, 1891, 3, 2, 2, 2, 1892, 1893, 3, 2, 2, 2, 1893, 1899, 3, 2, 2, 2, 1894, 1895, 7, 26, 2, 2, 1895, 1896, 5, 282, 142, 2, 1896, 1897, 7, 27, 2, 2, 1897, 1899, 3, 2, 2, 2, 1898, 1890, 3, 2, 2, 2, 1898, 1894, 3, 2, 2, 2, 1899, 1902, 3, 2, 2, 2, 1900, 1901, 7, 222, 2, 2, 1901, 1903, 5, 440, 221, 2, 1902, 1900, 3, 2, 2, 2, 1902, 1903, 3, 2, 2, 2, 1903, 219, 3, 2, 2, 2, 1904, 1905, 7, 233, 2, 2, 1905, 1906, 7, 225, 2, 2, 1906, 1907, 7, 64, 2, 2, 1907, 1912, 5, 224, 113, 2, 1908, 1909, 7, 23, 2, 2, 1909, 1911, 5, 224, 113, 2, 1910, 1908, 3, 2, 2, 2, 1911, 1914, 3, 2, 2, 2, 1912, 1910, 3, 2, 2, 2, 1912, 1913, 3, 2, 2, 2, 1913, 1915, 3, 2, 2, 2, 1914, 1912, 3, 2, 2, 2, 1915, 1916, 7, 47, 2, 2, 1916, 1920, 5, 226, 114, 2, 1917, 1919, 5, 230, 116, 2, 1918, 1917, 3, 2, 2, 2, 1919, 1922, 3, 2, 2, 2, 1920, 1918, 3, 2, 2, 2, 1920, 1921, 3, 2, 2, 2, 1921, 221, 3, 2, 2, 2, 1922, 1920, 3, 2, 2, 2, 1923, 1929, 7, 233, 2, 2, 1924, 1930, 5, 330, 166, 2, 1925, 1926, 7, 26, 2, 2, 1926, 1927, 5, 282, 142, 2, 1927, 1928, 7, 27, 2, 2, 1928, 1930, 3, 2, 2, 2, 1929, 1924, 3, 2, 2, 2, 1929, 1925, 3, 2, 2, 2, 1930, 1931, 3, 2, 2, 2, 1931, 1933, 7, 47, 2, 2, 1932, 1934, 7, 234, 2, 2, 1933, 1932, 3, 2, 2, 2, 1933, 1934, 3, 2, 2, 2, 1934, 1935, 3, 2, 2, 2, 1935, 1939, 5, 226, 114, 2, 1936, 1938, 5, 228, 115, 2, 1937, 1936, 3, 2, 2, 2, 1938, 1941, 3, 2, 2, 2, 1939, 1937, 3, 2, 2, 2, 1939, 1940, 3, 2, 2, 2, 1940, 223, 3, 2, 2, 2, 1941, 1939, 3, 2, 2, 2, 1942, 1945, 5, 434, 218, 2, 1943, 1945, 5, 384, 193, 2, 1944, 1942, 3, 2, 2, 2, 1944, 1943, 3, 2, 2, 2, 1945, 225, 3, 2, 2, 2, 1946, 1949, 5, 434, 218, 2, 1947, 1949, 5, 384, 193, 2, 1948, 1946, 3, 2, 2, 2, 1948, 1947, 3, 2, 2, 2, 1949, 227, 3, 2, 2, 2, 1950, 1951, 7, 222, 2, 2, 1951, 1959, 5, 440, 221, 2, 1952, 1953, 7, 235, 2, 2, 1953, 1959, 5, 384, 193, 2, 1954, 1955, 7, 236, 2, 2, 1955, 1959, 5, 384, 193, 2, 1956, 1957, 7, 237, 2, 2, 1957, 1959, 5, 440, 221, 2, 1958, 1950, 3, 2, 2, 2, 1958, 1952, 3, 2, 2, 2, 1958, 1954, 3, 2, 2, 2, 1958, 1956, 3, 2, 2, 2, 1959, 229, 3, 2, 2, 2, 1960, 1961, 9, 30, 2, 2, 1961, 231, 3, 2, 2, 2, 1962, 1964, 7, 91, 2, 2, 1963, 1965, 7, 239, 2, 2, 1964, 1963, 3, 2, 2, 2, 1964, 1965, 3, 2, 2, 2, 1965, 233, 3, 2, 2, 2, 1966, 1968, 7, 61, 2, 2, 1967, 1969, 7, 71, 2, 2, 1968, 1967, 3, 2, 2, 2, 1968, 1969, 3, 2, 2, 2, 1969, 1970, 3, 2, 2, 2, 1970, 1971, 7, 107, 2, 2, 1971, 1972, 5, 440, 221, 2, 1972, 1973, 7, 81, 2, 2, 1973, 1974, 5, 330, 166, 2, 1974, 1975, 7, 26, 2, 2, 1975, 1980, 5, 236, 119, 2, 1976, 1977, 7, 23, 2, 2, 1977, 1979, 5, 236, 119, 2, 1978, 1976, 3, 2, 2, 2, 1979, 1982, 3, 2, 2, 2, 1980, 1978, 3, 2, 2, 2, 1980, 1981, 3, 2, 2, 2, 1981, 1983, 3, 2, 2, 2, 1982, 1980, 3, 2, 2, 2, 1983, 1984, 7, 27, 2, 2, 1984, 235, 3, 2, 2, 2, 1985, 1987, 5, 440, 221, 2, 1986, 1988, 9, 9, 2, 2, 1987, 1986, 3, 2, 2, 2, 1987, 1988, 3, 2, 2, 2, 1988, 237, 3, 2, 2, 2, 1989, 1990, 5, 240, 121, 2, 1990, 239, 3, 2, 2, 2, 1991, 1992, 7, 36, 2, 2, 1992, 1993, 7, 26, 2, 2, 1993, 1994, 5, 440, 221, 2, 1994, 1995, 7, 25, 2, 2, 1995, 2003, 5, 440, 221, 2, 1996, 1997, 7, 23, 2, 2, 1997, 1998, 5, 440, 221, 2, 1998, 1999, 7, 25, 2, 2, 1999, 2000, 5, 440, 221, 2, 2000, 2002, 3, 2, 2, 2, 2001, 1996, 3, 2, 2, 2, 2002, 2005, 3, 2, 2, 2, 2003, 2001, 3, 2, 2, 2, 2003, 2004, 3, 2, 2, 2, 2004, 2006, 3, 2, 2, 2, 2005, 2003, 3, 2, 2, 2, 2006, 2010, 7, 27, 2, 2, 2007, 2009, 5, 108, 55, 2, 2008, 2007, 3, 2, 2, 2, 2009, 2012, 3, 2, 2, 2, 2010, 2008, 3, 2, 2, 2, 2010, 2011, 3, 2, 2, 2, 2011, 241, 3, 2, 2, 2, 2012, 2010, 3, 2, 2, 2, 2013, 2014, 7, 240, 2, 2, 2014, 2021, 5, 384, 193, 2, 2015, 2016, 7, 240, 2, 2, 2016, 2017, 7, 26, 2, 2, 2017, 2018, 5, 384, 193, 2, 2018, 2019, 7, 27, 2, 2, 2019, 2021, 3, 2, 2, 2, 2020, 2013, 3, 2, 2, 2, 2020, 2015, 3, 2, 2, 2, 2021, 243, 3, 2, 2, 2, 2022, 2024, 7, 7, 2, 2, 2023, 2022, 3, 2, 2, 2, 2023, 2024, 3, 2, 2, 2, 2024, 2025, 3, 2, 2, 2, 2025, 2027, 7, 241, 2, 2, 2026, 2028, 5, 384, 193, 2, 2027, 2026, 3, 2, 2, 2, 2027, 2028, 3, 2, 2, 2, 2028, 245, 3, 2, 2, 2, 2029, 2030, 7, 242, 2, 2, 2030, 247, 3, 2, 2, 2, 2031, 2043, 7, 243, 2, 2, 2032, 2034, 7, 244, 2, 2, 2033, 2035, 7, 245, 2, 2, 2034, 2033, 3, 2, 2, 2, 2034, 2035, 3, 2, 2, 2, 2035, 2036, 3, 2, 2, 2, 2036, 2041, 5, 384, 193, 2, 2037, 2038, 7, 22, 2, 2, 2038, 2039, 7, 216, 2, 2, 2039, 2040, 7, 25, 2, 2, 2040, 2042, 5, 384, 193, 2, 2041, 2037, 3, 2, 2, 2, 2041, 2042, 3, 2, 2, 2, 2042, 2044, 3, 2, 2, 2, 2043, 2032, 3, 2, 2, 2, 2043, 2044, 3, 2, 2, 2, 2044, 249, 3, 2, 2, 2, 2045, 2047, 7, 45, 2, 2, 2046, 2048, 5, 384, 193, 2, 2047, 2046, 3, 2, 2, 2, 2047, 2048, 3, 2, 2, 2, 2048, 251, 3, 2, 2, 2, 2049, 2051, 7, 246, 2, 2, 2050, 2052, 7, 239, 2, 2, 2051, 2050, 3, 2, 2, 2, 2051, 2052, 3, 2, 2, 2, 2052, 253, 3, 2, 2, 2, 2053, 2057, 5, 256, 129, 2, 2054, 2057, 5, 258, 130, 2, 2055, 2057, 5, 260, 131, 2, 2056, 2053, 3, 2, 2, 2, 2056, 2054, 3, 2, 2, 2, 2056, 2055, 3, 2, 2, 2, 2057, 255, 3, 2, 2, 2, 2058, 2060, 7, 247, 2, 2, 2059, 2058, 3, 2, 2, 2, 2059, 2060, 3, 2, 2, 2, 2060, 2061, 3, 2, 2, 2, 2061, 2064, 7, 184, 2, 2, 2062, 2064, 7, 248, 2, 2, 2063, 2059, 3, 2, 2, 2, 2063, 2062, 3, 2, 2, 2, 2064, 2066, 3, 2, 2, 2, 2065, 2067, 7, 25, 2, 2, 2066, 2065, 3, 2, 2, 2, 2066, 2067, 3, 2, 2, 2, 2067, 2068, 3, 2, 2, 2, 2068, 2069, 5, 384, 193, 2, 2069, 257, 3, 2, 2, 2, 2070, 2071, 9, 31, 2, 2, 2071, 2072, 9, 32, 2, 2, 2072, 259, 3, 2, 2, 2, 2073, 2074, 7, 255, 2, 2, 2074, 2077, 7, 25, 2, 2, 2075, 2078, 5, 384, 193, 2, 2076, 2078, 7, 256, 2, 2, 2077, 2075, 3, 2, 2, 2, 2077, 2076, 3, 2, 2, 2, 2078, 2080, 3, 2, 2, 2, 2079, 2081, 7, 82, 2, 2, 2080, 2079, 3, 2, 2, 2, 2080, 2081, 3, 2, 2, 2, 2081, 2082, 3, 2, 2, 2, 2082, 2083, 7, 30, 2, 2, 2083, 2084, 9, 33, 2, 2, 2084, 261, 3, 2, 2, 2, 2085, 2086, 7, 258, 2, 2, 2086, 2087, 5, 440, 221, 2, 2087, 263, 3, 2, 2, 2, 2088, 2091, 7, 259, 2, 2, 2089, 2090, 7, 260, 2, 2, 2090, 2092, 5, 384, 193, 2, 2091, 2089, 3, 2, 2, 2, 2091, 2092, 3, 2, 2, 2, 2092, 2093, 3, 2, 2, 2, 2093, 2103, 7, 30, 2, 2, 2094, 2104, 5, 282, 142, 2, 2095, 2097, 5, 330, 166, 2, 2096, 2098, 5, 332, 167, 2, 2097, 2096, 3, 2, 2, 2, 2097, 2098, 3, 2, 2, 2, 2098, 2101, 3, 2, 2, 2, 2099, 2100, 7, 261, 2, 2, 2100, 2102, 5, 384, 193, 2, 2101, 2099, 3, 2, 2, 2, 2101, 2102, 3, 2, 2, 2, 2102, 2104, 3, 2, 2, 2, 2103, 2094, 3, 2, 2, 2, 2103, 2095, 3, 2, 2, 2, 2104, 265, 3, 2, 2, 2, 2105, 2107, 7, 262, 2, 2, 2106, 2108, 7, 60, 2, 2, 2107, 2106, 3, 2, 2, 2, 2107, 2108, 3, 2, 2, 2, 2108, 2109, 3, 2, 2, 2, 2109, 2110, 5, 330, 166, 2, 2110, 267, 3, 2, 2, 2, 2111, 2112, 7, 263, 2, 2, 2112, 2113, 5, 384, 193, 2, 2113, 269, 3, 2, 2, 2, 2114, 2116, 7, 212, 2, 2, 2115, 2117, 7, 26, 2, 2, 2116, 2115, 3, 2, 2, 2, 2116, 2117, 3, 2, 2, 2, 2117, 2118, 3, 2, 2, 2, 2118, 2123, 5, 384, 193, 2, 2119, 2120, 7, 23, 2, 2, 2120, 2122, 5, 384, 193, 2, 2121, 2119, 3, 2, 2, 2, 2122, 2125, 3, 2, 2, 2, 2123, 2121, 3, 2, 2, 2, 2123, 2124, 3, 2, 2, 2, 2124, 2127, 3, 2, 2, 2, 2125, 2123, 3, 2, 2, 2, 2126, 2128, 7, 27, 2, 2, 2127, 2126, 3, 2, 2, 2, 2127, 2128, 3, 2, 2, 2, 2128, 2129, 3, 2, 2, 2, 2129, 2131, 7, 205, 2, 2, 2130, 2132, 7, 26, 2, 2, 2131, 2130, 3, 2, 2, 2, 2131, 2132, 3, 2, 2, 2, 2132, 2133, 3, 2, 2, 2, 2133, 2138, 5, 440, 221, 2, 2134, 2135, 7, 23, 2, 2, 2135, 2137, 5, 440, 221, 2, 2136, 2134, 3, 2, 2, 2, 2137, 2140, 3, 2, 2, 2, 2138, 2136, 3, 2, 2, 2, 2138, 2139, 3, 2, 2, 2, 2139, 2142, 3, 2, 2, 2, 2140, 2138, 3, 2, 2, 2, 2141, 2143, 7, 27, 2, 2, 2142, 2141, 3, 2, 2, 2, 2142, 2143, 3, 2, 2, 2, 2143, 271, 3, 2, 2, 2, 2144, 2145, 7, 264, 2, 2, 2145, 2146, 5, 368, 185, 2, 2146, 2147, 9, 34, 2, 2, 2147, 2148, 5, 4, 3, 2, 2148, 2150, 7, 16, 2, 2, 2149, 2151, 9, 35, 2, 2, 2150, 2149, 3, 2, 2, 2, 2150, 2151, 3, 2, 2, 2, 2151, 273, 3, 2, 2, 2, 2152, 2153, 7, 30, 2, 2, 2153, 2154, 7, 19, 2, 2, 2154, 2156, 7, 108, 2, 2, 2155, 2157, 7, 26, 2, 2, 2156, 2155, 3, 2, 2, 2, 2156, 2157, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2160, 5, 282, 142, 2, 2159, 2161, 7, 27, 2, 2, 2160, 2159, 3, 2, 2, 2, 2160, 2161, 3, 2, 2, 2, 2161, 2162, 3, 2, 2, 2, 2162, 2163, 7, 266, 2, 2, 2163, 2164, 5, 4, 3, 2, 2164, 2165, 7, 16, 2, 2, 2165, 2166, 7, 266, 2, 2, 2166, 275, 3, 2, 2, 2, 2167, 2168, 7, 30, 2, 2, 2168, 2169, 7, 19, 2, 2, 2169, 2171, 7, 108, 2, 2, 2170, 2172, 7, 267, 2, 2, 2171, 2170, 3, 2, 2, 2, 2171, 2172, 3, 2, 2, 2, 2172, 2173, 3, 2, 2, 2, 2173, 2174, 5, 384, 193, 2, 2174, 2175, 7, 268, 2, 2, 2175, 2178, 5, 384, 193, 2, 2176, 2177, 9, 36, 2, 2, 2177, 2179, 5, 384, 193, 2, 2178, 2176, 3, 2, 2, 2, 2178, 2179, 3, 2, 2, 2, 2179, 2180, 3, 2, 2, 2, 2180, 2181, 7, 266, 2, 2, 2181, 2182, 5, 4, 3, 2, 2182, 2183, 7, 16, 2, 2, 2183, 2184, 7, 266, 2, 2, 2184, 277, 3, 2, 2, 2, 2185, 2192, 7, 270, 2, 2, 2186, 2187, 7, 271, 2, 2, 2187, 2188, 7, 271, 2, 2, 2188, 2189, 7, 19, 2, 2, 2189, 2190, 7, 272, 2, 2, 2190, 2192, 7, 272, 2, 2, 2191, 2185, 3, 2, 2, 2, 2191, 2186, 3, 2, 2, 2, 2192, 279, 3, 2, 2, 2, 2193, 2194, 7, 273, 2, 2, 2194, 2199, 5, 384, 193, 2, 2195, 2196, 7, 23, 2, 2, 2196, 2198, 5, 384, 193, 2, 2197, 2195, 3, 2, 2, 2, 2198, 2201, 3, 2, 2, 2, 2199, 2197, 3, 2, 2, 2, 2199, 2200, 3, 2, 2, 2, 2200, 281, 3, 2, 2, 2, 2201, 2199, 3, 2, 2, 2, 2202, 2204, 5, 284, 143, 2, 2203, 2202, 3, 2, 2, 2, 2203, 2204, 3, 2, 2, 2, 2204, 2205, 3, 2, 2, 2, 2205, 2206, 5, 290, 146, 2, 2206, 283, 3, 2, 2, 2, 2207, 2208, 7, 36, 2, 2, 2208, 2213, 5, 286, 144, 2, 2209, 2210, 7, 23, 2, 2, 2210, 2212, 5, 286, 144, 2, 2211, 2209, 3, 2, 2, 2, 2212, 2215, 3, 2, 2, 2, 2213, 2211, 3, 2, 2, 2, 2213, 2214, 3, 2, 2, 2, 2214, 285, 3, 2, 2, 2, 2215, 2213, 3, 2, 2, 2, 2216, 2218, 5, 440, 221, 2, 2217, 2219, 5, 288, 145, 2, 2218, 2217, 3, 2, 2, 2, 2218, 2219, 3, 2, 2, 2, 2219, 2220, 3, 2, 2, 2, 2220, 2221, 7, 41, 2, 2, 2221, 2222, 7, 26, 2, 2, 2222, 2223, 5, 290, 146, 2, 2223, 2224, 7, 27, 2, 2, 2224, 287, 3, 2, 2, 2, 2225, 2226, 7, 26, 2, 2, 2226, 2231, 5, 440, 221, 2, 2227, 2228, 7, 23, 2, 2, 2228, 2230, 5, 440, 221, 2, 2229, 2227, 3, 2, 2, 2, 2230, 2233, 3, 2, 2, 2, 2231, 2229, 3, 2, 2, 2, 2231, 2232, 3, 2, 2, 2, 2232, 2234, 3, 2, 2, 2, 2233, 2231, 3, 2, 2, 2, 2234, 2235, 7, 27, 2, 2, 2235, 289, 3, 2, 2, 2, 2236, 2242, 5, 292, 147, 2, 2237, 2238, 5, 294, 148, 2, 2238, 2239, 5, 292, 147, 2, 2239, 2241, 3, 2, 2, 2, 2240, 2237, 3, 2, 2, 2, 2241, 2244, 3, 2, 2, 2, 2242, 2240, 3, 2, 2, 2, 2242, 2243, 3, 2, 2, 2, 2243, 291, 3, 2, 2, 2, 2244, 2242, 3, 2, 2, 2, 2245, 2251, 5, 296, 149, 2, 2246, 2247, 7, 26, 2, 2, 2247, 2248, 5, 290, 146, 2, 2248, 2249, 7, 27, 2, 2, 2249, 2251, 3, 2, 2, 2, 2250, 2245, 3, 2, 2, 2, 2250, 2246, 3, 2, 2, 2, 2251, 293, 3, 2, 2, 2, 2252, 2254, 7, 274, 2, 2, 2253, 2255, 7, 275, 2, 2, 2254, 2253, 3, 2, 2, 2, 2254, 2255, 3, 2, 2, 2, 2255, 2265, 3, 2, 2, 2, 2256, 2258, 7, 276, 2, 2, 2257, 2259, 7, 275, 2, 2, 2258, 2257, 3, 2, 2, 2, 2258, 2259, 3, 2, 2, 2, 2259, 2265, 3, 2, 2, 2, 2260, 2262, 7, 277, 2, 2, 2261, 2263, 7, 275, 2, 2, 2262, 2261, 3, 2, 2, 2, 2262, 2263, 3, 2, 2, 2, 2263, 2265, 3, 2, 2, 2, 2264, 2252, 3, 2, 2, 2, 2264, 2256, 3, 2, 2, 2, 2264, 2260, 3, 2, 2, 2, 2265, 295, 3, 2, 2, 2, 2266, 2267, 9, 37, 2, 2, 2267, 2269, 5, 298, 150, 2, 2268, 2270, 5, 310, 156, 2, 2269, 2268, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2272, 3, 2, 2, 2, 2271, 2273, 5, 312, 157, 2, 2272, 2271, 3, 2, 2, 2, 2272, 2273, 3, 2, 2, 2, 2273, 2275, 3, 2, 2, 2, 2274, 2276, 5, 332, 167, 2, 2275, 2274, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2278, 3, 2, 2, 2, 2277, 2279, 5, 334, 168, 2, 2278, 2277, 3, 2, 2, 2, 2278, 2279, 3, 2, 2, 2, 2279, 2282, 3, 2, 2, 2, 2280, 2283, 5, 336, 169, 2, 2281, 2283, 5, 338, 170, 2, 2282, 2280, 3, 2, 2, 2, 2282, 2281, 3, 2, 2, 2, 2282, 2283, 3, 2, 2, 2, 2283, 2285, 3, 2, 2, 2, 2284, 2286, 5, 340, 171, 2, 2285, 2284, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 2288, 3, 2, 2, 2, 2287, 2289, 5, 342, 172, 2, 2288, 2287, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 297, 3, 2, 2, 2, 2290, 2292, 5, 300, 151, 2, 2291, 2290, 3, 2, 2, 2, 2291, 2292, 3, 2, 2, 2, 2292, 2294, 3, 2, 2, 2, 2293, 2295, 5, 302, 152, 2, 2294, 2293, 3, 2, 2, 2, 2294, 2295, 3, 2, 2, 2, 2295, 2296, 3, 2, 2, 2, 2296, 2301, 5, 304, 153, 2, 2297, 2298, 7, 23, 2, 2, 2298, 2300, 5, 304, 153, 2, 2299, 2297, 3, 2, 2, 2, 2300, 2303, 3, 2, 2, 2, 2301, 2299, 3, 2, 2, 2, 2301, 2302, 3, 2, 2, 2, 2302, 299, 3, 2, 2, 2, 2303, 2301, 3, 2, 2, 2, 2304, 2305, 9, 38, 2, 2, 2305, 301, 3, 2, 2, 2, 2306, 2307, 7, 260, 2, 2, 2307, 2308, 5, 384, 193, 2, 2308, 303, 3, 2, 2, 2, 2309, 2310, 5, 440, 221, 2, 2310, 2311, 7, 25, 2, 2, 2311, 2313, 3, 2, 2, 2, 2312, 2309, 3, 2, 2, 2, 2312, 2313, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2316, 5, 384, 193, 2, 2315, 2317, 5, 306, 154, 2, 2316, 2315, 3, 2, 2, 2, 2316, 2317, 3, 2, 2, 2, 2317, 2320, 3, 2, 2, 2, 2318, 2320, 5, 308, 155, 2, 2319, 2312, 3, 2, 2, 2, 2319, 2318, 3, 2, 2, 2, 2320, 305, 3, 2, 2, 2, 2321, 2323, 6, 154, 5, 2, 2322, 2324, 7, 41, 2, 2, 2323, 2322, 3, 2, 2, 2, 2323, 2324, 3, 2, 2, 2, 2324, 2325, 3, 2, 2, 2, 2325, 2331, 5, 440, 221, 2, 2326, 2327, 7, 26, 2, 2, 2327, 2328, 7, 281, 2, 2, 2328, 2329, 7, 282, 2, 2, 2329, 2331, 7, 27, 2, 2, 2330, 2321, 3, 2, 2, 2, 2330, 2326, 3, 2, 2, 2, 2331, 307, 3, 2, 2, 2, 2332, 2333, 7, 19, 2, 2, 2333, 2335, 7, 7, 2, 2, 2334, 2332, 3, 2, 2, 2, 2334, 2335, 3, 2, 2, 2, 2335, 2336, 3, 2, 2, 2, 2336, 2337, 7, 8, 2, 2, 2337, 309, 3, 2, 2, 2, 2338, 2339, 7, 205, 2, 2, 2339, 2344, 5, 440, 221, 2, 2340, 2341, 7, 23, 2, 2, 2341, 2343, 5, 440, 221, 2, 2342, 2340, 3, 2, 2, 2, 2343, 2346, 3, 2, 2, 2, 2344, 2342, 3, 2, 2, 2, 2344, 2345, 3, 2, 2, 2, 2345, 311, 3, 2, 2, 2, 2346, 2344, 3, 2, 2, 2, 2347, 2348, 7, 225, 2, 2, 2348, 2352, 5, 314, 158, 2, 2349, 2351, 5, 320, 161, 2, 2350, 2349, 3, 2, 2, 2, 2351, 2354, 3, 2, 2, 2, 2352, 2350, 3, 2, 2, 2, 2352, 2353, 3, 2, 2, 2, 2353, 313, 3, 2, 2, 2, 2354, 2352, 3, 2, 2, 2, 2355, 2359, 5, 316, 159, 2, 2356, 2359, 5, 318, 160, 2, 2357, 2359, 5, 324, 163, 2, 2358, 2355, 3, 2, 2, 2, 2358, 2356, 3, 2, 2, 2, 2358, 2357, 3, 2, 2, 2, 2359, 315, 3, 2, 2, 2, 2360, 2362, 5, 330, 166, 2, 2361, 2363, 5, 328, 165, 2, 2362, 2361, 3, 2, 2, 2, 2362, 2363, 3, 2, 2, 2, 2363, 317, 3, 2, 2, 2, 2364, 2365, 7, 26, 2, 2, 2365, 2366, 5, 282, 142, 2, 2366, 2368, 7, 27, 2, 2, 2367, 2369, 5, 328, 165, 2, 2368, 2367, 3, 2, 2, 2, 2368, 2369, 3, 2, 2, 2, 2369, 319, 3, 2, 2, 2, 2370, 2371, 7, 23, 2, 2, 2371, 2378, 5, 314, 158, 2, 2372, 2373, 5, 322, 162, 2, 2373, 2374, 5, 314, 158, 2, 2374, 2375, 7, 81, 2, 2, 2375, 2376, 5, 368, 185, 2, 2376, 2378, 3, 2, 2, 2, 2377, 2370, 3, 2, 2, 2, 2377, 2372, 3, 2, 2, 2, 2378, 321, 3, 2, 2, 2, 2379, 2381, 7, 283, 2, 2, 2380, 2379, 3, 2, 2, 2, 2380, 2381, 3, 2, 2, 2, 2381, 2382, 3, 2, 2, 2, 2382, 2389, 7, 284, 2, 2, 2383, 2385, 9, 39, 2, 2, 2384, 2386, 7, 288, 2, 2, 2385, 2384, 3, 2, 2, 2, 2385, 2386, 3, 2, 2, 2, 2386, 2387, 3, 2, 2, 2, 2387, 2389, 7, 284, 2, 2, 2388, 2380, 3, 2, 2, 2, 2388, 2383, 3, 2, 2, 2, 2389, 323, 3, 2, 2, 2, 2390, 2391, 7, 60, 2, 2, 2391, 2392, 7, 26, 2, 2, 2392, 2393, 7, 212, 2, 2, 2393, 2398, 5, 326, 164, 2, 2394, 2395, 7, 23, 2, 2, 2395, 2397, 5, 326, 164, 2, 2396, 2394, 3, 2, 2, 2, 2397, 2400, 3, 2, 2, 2, 2398, 2396, 3, 2, 2, 2, 2398, 2399, 3, 2, 2, 2, 2399, 2401, 3, 2, 2, 2, 2400, 2398, 3, 2, 2, 2, 2401, 2403, 7, 27, 2, 2, 2402, 2404, 5, 328, 165, 2, 2403, 2402, 3, 2, 2, 2, 2403, 2404, 3, 2, 2, 2, 2404, 325, 3, 2, 2, 2, 2405, 2418, 5, 384, 193, 2, 2406, 2407, 7, 26, 2, 2, 2407, 2412, 5, 384, 193, 2, 2408, 2409, 7, 23, 2, 2, 2409, 2411, 5, 384, 193, 2, 2410, 2408, 3, 2, 2, 2, 2411, 2414, 3, 2, 2, 2, 2412, 2410, 3, 2, 2, 2, 2412, 2413, 3, 2, 2, 2, 2413, 2415, 3, 2, 2, 2, 2414, 2412, 3, 2, 2, 2, 2415, 2416, 7, 27, 2, 2, 2416, 2418, 3, 2, 2, 2, 2417, 2405, 3, 2, 2, 2, 2417, 2406, 3, 2, 2, 2, 2418, 327, 3, 2, 2, 2, 2419, 2421, 6, 165, 6, 2, 2420, 2422, 7, 41, 2, 2, 2421, 2420, 3, 2, 2, 2, 2421, 2422, 3, 2, 2, 2, 2422, 2423, 3, 2, 2, 2, 2423, 2434, 5, 440, 221, 2, 2424, 2425, 7, 26, 2, 2, 2425, 2430, 7, 19, 2, 2, 2426, 2427, 7, 23, 2, 2, 2427, 2429, 7, 19, 2, 2, 2428, 2426, 3, 2, 2, 2, 2429, 2432, 3, 2, 2, 2, 2430, 2428, 3, 2, 2, 2, 2430, 2431, 3, 2, 2, 2, 2431, 2433, 3, 2, 2, 2, 2432, 2430, 3, 2, 2, 2, 2433, 2435, 7, 27, 2, 2, 2434, 2424, 3, 2, 2, 2, 2434, 2435, 3, 2, 2, 2, 2435, 329, 3, 2, 2, 2, 2436, 2437, 5, 440, 221, 2, 2437, 331, 3, 2, 2, 2, 2438, 2439, 7, 289, 2, 2, 2439, 2440, 5, 368, 185, 2, 2440, 333, 3, 2, 2, 2, 2441, 2442, 7, 290, 2, 2, 2442, 2443, 7, 111, 2, 2, 2443, 2448, 5, 384, 193, 2, 2444, 2445, 7, 23, 2, 2, 2445, 2447, 5, 384, 193, 2, 2446, 2444, 3, 2, 2, 2, 2447, 2450, 3, 2, 2, 2, 2448, 2446, 3, 2, 2, 2, 2448, 2449, 3, 2, 2, 2, 2449, 335, 3, 2, 2, 2, 2450, 2448, 3, 2, 2, 2, 2451, 2452, 7, 291, 2, 2, 2452, 2453, 5, 368, 185, 2, 2453, 337, 3, 2, 2, 2, 2454, 2455, 7, 292, 2, 2, 2455, 2456, 5, 368, 185, 2, 2456, 339, 3, 2, 2, 2, 2457, 2458, 7, 293, 2, 2, 2458, 2459, 7, 111, 2, 2, 2459, 2461, 5, 384, 193, 2, 2460, 2462, 9, 9, 2, 2, 2461, 2460, 3, 2, 2, 2, 2461, 2462, 3, 2, 2, 2, 2462, 2470, 3, 2, 2, 2, 2463, 2464, 7, 23, 2, 2, 2464, 2466, 5, 384, 193, 2, 2465, 2467, 9, 9, 2, 2, 2466, 2465, 3, 2, 2, 2, 2466, 2467, 3, 2, 2, 2, 2467, 2469, 3, 2, 2, 2, 2468, 2463, 3, 2, 2, 2, 2469, 2472, 3, 2, 2, 2, 2470, 2468, 3, 2, 2, 2, 2470, 2471, 3, 2, 2, 2, 2471, 341, 3, 2, 2, 2, 2472, 2470, 3, 2, 2, 2, 2473, 2475, 5, 344, 173, 2, 2474, 2473, 3, 2, 2, 2, 2475, 2476, 3, 2, 2, 2, 2476, 2474, 3, 2, 2, 2, 2476, 2477, 3, 2, 2, 2, 2477, 343, 3, 2, 2, 2, 2478, 2479, 7, 261, 2, 2, 2479, 2490, 5, 384, 193, 2, 2480, 2481, 7, 36, 2, 2, 2481, 2487, 9, 40, 2, 2, 2482, 2483, 7, 263, 2, 2, 2483, 2484, 7, 297, 2, 2, 2484, 2485, 7, 298, 2, 2, 2485, 2486, 9, 41, 2, 2, 2486, 2488, 7, 301, 2, 2, 2487, 2482, 3, 2, 2, 2, 2487, 2488, 3, 2, 2, 2, 2488, 2490, 3, 2, 2, 2, 2489, 2478, 3, 2, 2, 2, 2489, 2480, 3, 2, 2, 2, 2490, 345, 3, 2, 2, 2, 2491, 2492, 7, 82, 2, 2, 2492, 2493, 5, 350, 176, 2, 2493, 2494, 7, 22, 2, 2, 2494, 2496, 5, 348, 175, 2, 2495, 2497, 5, 332, 167, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 2499, 3, 2, 2, 2, 2498, 2500, 5, 352, 177, 2, 2499, 2498, 3, 2, 2, 2, 2499, 2500, 3, 2, 2, 2, 2500, 347, 3, 2, 2, 2, 2501, 2506, 5, 28, 15, 2, 2502, 2503, 7, 23, 2, 2, 2503, 2505, 5, 28, 15, 2, 2504, 2502, 3, 2, 2, 2, 2505, 2508, 3, 2, 2, 2, 2506, 2504, 3, 2, 2, 2, 2506, 2507, 3, 2, 2, 2, 2507, 349, 3, 2, 2, 2, 2508, 2506, 3, 2, 2, 2, 2509, 2511, 5, 330, 166, 2, 2510, 2512, 5, 312, 157, 2, 2511, 2510, 3, 2, 2, 2, 2511, 2512, 3, 2, 2, 2, 2512, 2518, 3, 2, 2, 2, 2513, 2514, 7, 26, 2, 2, 2514, 2515, 5, 282, 142, 2, 2515, 2516, 7, 27, 2, 2, 2516, 2518, 3, 2, 2, 2, 2517, 2509, 3, 2, 2, 2, 2517, 2513, 3, 2, 2, 2, 2518, 2523, 3, 2, 2, 2, 2519, 2521, 7, 41, 2, 2, 2520, 2519, 3, 2, 2, 2, 2520, 2521, 3, 2, 2, 2, 2521, 2522, 3, 2, 2, 2, 2522, 2524, 5, 440, 221, 2, 2523, 2520, 3, 2, 2, 2, 2523, 2524, 3, 2, 2, 2, 2524, 351, 3, 2, 2, 2, 2525, 2526, 7, 206, 2, 2, 2526, 2527, 5, 178, 90, 2, 2527, 353, 3, 2, 2, 2, 2528, 2529, 7, 302, 2, 2, 2529, 2530, 7, 205, 2, 2, 2530, 2531, 5, 356, 179, 2, 2531, 2532, 7, 273, 2, 2, 2532, 2533, 5, 356, 179, 2, 2533, 2534, 7, 81, 2, 2, 2534, 2536, 5, 368, 185, 2, 2535, 2537, 5, 358, 180, 2, 2536, 2535, 3, 2, 2, 2, 2537, 2538, 3, 2, 2, 2, 2538, 2536, 3, 2, 2, 2, 2538, 2539, 3, 2, 2, 2, 2539, 355, 3, 2, 2, 2, 2540, 2546, 5, 330, 166, 2, 2541, 2542, 7, 26, 2, 2, 2542, 2543, 5, 282, 142, 2, 2543, 2544, 7, 27, 2, 2, 2544, 2546, 3, 2, 2, 2, 2545, 2540, 3, 2, 2, 2, 2545, 2541, 3, 2, 2, 2, 2546, 2551, 3, 2, 2, 2, 2547, 2549, 7, 41, 2, 2, 2548, 2547, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 2550, 3, 2, 2, 2, 2550, 2552, 5, 440, 221, 2, 2551, 2548, 3, 2, 2, 2, 2551, 2552, 3, 2, 2, 2, 2552, 357, 3, 2, 2, 2, 2553, 2555, 7, 18, 2, 2, 2554, 2556, 7, 56, 2, 2, 2555, 2554, 3, 2, 2, 2, 2555, 2556, 3, 2, 2, 2, 2556, 2557, 3, 2, 2, 2, 2557, 2560, 7, 303, 2, 2, 2558, 2559, 7, 297, 2, 2, 2559, 2561, 5, 368, 185, 2, 2560, 2558, 3, 2, 2, 2, 2560, 2561, 3, 2, 2, 2, 2561, 2562, 3, 2, 2, 2, 2562, 2563, 7, 20, 2, 2, 2563, 2567, 5, 360, 181, 2, 2564, 2565, 7, 206, 2, 2, 2565, 2567, 7, 238, 2, 2, 2566, 2553, 3, 2, 2, 2, 2566, 2564, 3, 2, 2, 2, 2567, 359, 3, 2, 2, 2, 2568, 2570, 7, 210, 2, 2, 2569, 2571, 5, 180, 91, 2, 2570, 2569, 3, 2, 2, 2, 2570, 2571, 3, 2, 2, 2, 2571, 2572, 3, 2, 2, 2, 2572, 2573, 7, 212, 2, 2, 2573, 2589, 5, 184, 93, 2, 2574, 2575, 7, 82, 2, 2, 2575, 2576, 7, 22, 2, 2, 2576, 2581, 5, 28, 15, 2, 2577, 2578, 7, 23, 2, 2, 2578, 2580, 5, 28, 15, 2, 2579, 2577, 3, 2, 2, 2, 2580, 2583, 3, 2, 2, 2, 2581, 2579, 3, 2, 2, 2, 2581, 2582, 3, 2, 2, 2, 2582, 2585, 3, 2, 2, 2, 2583, 2581, 3, 2, 2, 2, 2584, 2586, 5, 332, 167, 2, 2585, 2584, 3, 2, 2, 2, 2585, 2586, 3, 2, 2, 2, 2586, 2589, 3, 2, 2, 2, 2587, 2589, 7, 83, 2, 2, 2588, 2568, 3, 2, 2, 2, 2588, 2574, 3, 2, 2, 2, 2588, 2587, 3, 2, 2, 2, 2589, 361, 3, 2, 2, 2, 2590, 2592, 7, 83, 2, 2, 2591, 2593, 7, 225, 2, 2, 2592, 2591, 3, 2, 2, 2, 2592, 2593, 3, 2, 2, 2, 2593, 2594, 3, 2, 2, 2, 2594, 2596, 5, 330, 166, 2, 2595, 2597, 5, 364, 183, 2, 2596, 2595, 3, 2, 2, 2, 2596, 2597, 3, 2, 2, 2, 2597, 2600, 3, 2, 2, 2, 2598, 2601, 5, 332, 167, 2, 2599, 2601, 7, 275, 2, 2, 2600, 2598, 3, 2, 2, 2, 2600, 2599, 3, 2, 2, 2, 2600, 2601, 3, 2, 2, 2, 2601, 363, 3, 2, 2, 2, 2602, 2604, 6, 183, 7, 2, 2603, 2605, 7, 41, 2, 2, 2604, 2603, 3, 2, 2, 2, 2604, 2605, 3, 2, 2, 2, 2605, 2606, 3, 2, 2, 2, 2606, 2607, 5, 440, 221, 2, 2607, 365, 3, 2, 2, 2, 2608, 2610, 9, 42, 2, 2, 2609, 2611, 7, 60, 2, 2, 2610, 2609, 3, 2, 2, 2, 2610, 2611, 3, 2, 2, 2, 2611, 2612, 3, 2, 2, 2, 2612, 2613, 5, 330, 166, 2, 2613, 367, 3, 2, 2, 2, 2614, 2616, 8, 185, 1, 2, 2615, 2617, 7, 56, 2, 2, 2616, 2615, 3, 2, 2, 2, 2616, 2617, 3, 2, 2, 2, 2617, 2618, 3, 2, 2, 2, 2618, 2619, 7, 26, 2, 2, 2619, 2620, 5, 368, 185, 2, 2620, 2621, 7, 27, 2, 2, 2621, 2624, 3, 2, 2, 2, 2622, 2624, 5, 370, 186, 2, 2623, 2614, 3, 2, 2, 2, 2623, 2622, 3, 2, 2, 2, 2624, 2631, 3, 2, 2, 2, 2625, 2626, 12, 4, 2, 2, 2626, 2627, 5, 380, 191, 2, 2627, 2628, 5, 368, 185, 5, 2628, 2630, 3, 2, 2, 2, 2629, 2625, 3, 2, 2, 2, 2630, 2633, 3, 2, 2, 2, 2631, 2629, 3, 2, 2, 2, 2631, 2632, 3, 2, 2, 2, 2632, 369, 3, 2, 2, 2, 2633, 2631, 3, 2, 2, 2, 2634, 2638, 5, 372, 187, 2, 2635, 2638, 5, 378, 190, 2, 2636, 2638, 5, 384, 193, 2, 2637, 2634, 3, 2, 2, 2, 2637, 2635, 3, 2, 2, 2, 2637, 2636, 3, 2, 2, 2, 2638, 371, 3, 2, 2, 2, 2639, 2640, 5, 384, 193, 2, 2640, 2642, 7, 44, 2, 2, 2641, 2643, 7, 56, 2, 2, 2642, 2641, 3, 2, 2, 2, 2642, 2643, 3, 2, 2, 2, 2643, 2644, 3, 2, 2, 2, 2644, 2645, 7, 21, 2, 2, 2645, 2663, 3, 2, 2, 2, 2646, 2647, 5, 384, 193, 2, 2647, 2648, 7, 305, 2, 2, 2648, 2649, 5, 384, 193, 2, 2649, 2650, 7, 297, 2, 2, 2650, 2651, 5, 384, 193, 2, 2651, 2663, 3, 2, 2, 2, 2652, 2654, 7, 56, 2, 2, 2653, 2652, 3, 2, 2, 2, 2653, 2654, 3, 2, 2, 2, 2654, 2655, 3, 2, 2, 2, 2655, 2656, 7, 63, 2, 2, 2656, 2657, 7, 26, 2, 2, 2657, 2658, 5, 282, 142, 2, 2658, 2659, 7, 27, 2, 2, 2659, 2663, 3, 2, 2, 2, 2660, 2663, 5, 374, 188, 2, 2661, 2663, 5, 376, 189, 2, 2662, 2639, 3, 2, 2, 2, 2662, 2646, 3, 2, 2, 2, 2662, 2653, 3, 2, 2, 2, 2662, 2660, 3, 2, 2, 2, 2662, 2661, 3, 2, 2, 2, 2663, 373, 3, 2, 2, 2, 2664, 2666, 5, 384, 193, 2, 2665, 2667, 7, 56, 2, 2, 2666, 2665, 3, 2, 2, 2, 2666, 2667, 3, 2, 2, 2, 2667, 2668, 3, 2, 2, 2, 2668, 2669, 7, 108, 2, 2, 2669, 2679, 7, 26, 2, 2, 2670, 2675, 5, 384, 193, 2, 2671, 2672, 7, 23, 2, 2, 2672, 2674, 5, 384, 193, 2, 2673, 2671, 3, 2, 2, 2, 2674, 2677, 3, 2, 2, 2, 2675, 2673, 3, 2, 2, 2, 2675, 2676, 3, 2, 2, 2, 2676, 2680, 3, 2, 2, 2, 2677, 2675, 3, 2, 2, 2, 2678, 2680, 5, 282, 142, 2, 2679, 2670, 3, 2, 2, 2, 2679, 2678, 3, 2, 2, 2, 2680, 2681, 3, 2, 2, 2, 2681, 2682, 7, 27, 2, 2, 2682, 375, 3, 2, 2, 2, 2683, 2684, 7, 26, 2, 2, 2684, 2689, 5, 384, 193, 2, 2685, 2686, 7, 23, 2, 2, 2686, 2688, 5, 384, 193, 2, 2687, 2685, 3, 2, 2, 2, 2688, 2691, 3, 2, 2, 2, 2689, 2687, 3, 2, 2, 2, 2689, 2690, 3, 2, 2, 2, 2690, 2692, 3, 2, 2, 2, 2691, 2689, 3, 2, 2, 2, 2692, 2694, 7, 27, 2, 2, 2693, 2695, 7, 56, 2, 2, 2694, 2693, 3, 2, 2, 2, 2694, 2695, 3, 2, 2, 2, 2695, 2696, 3, 2, 2, 2, 2696, 2697, 7, 108, 2, 2, 2697, 2698, 7, 26, 2, 2, 2698, 2699, 5, 282, 142, 2, 2699, 2700, 7, 27, 2, 2, 2700, 377, 3, 2, 2, 2, 2701, 2702, 5, 384, 193, 2, 2702, 2703, 5, 382, 192, 2, 2703, 2704, 5, 384, 193, 2, 2704, 379, 3, 2, 2, 2, 2705, 2706, 9, 43, 2, 2, 2706, 381, 3, 2, 2, 2, 2707, 2720, 7, 25, 2, 2, 2708, 2720, 7, 306, 2, 2, 2709, 2720, 7, 307, 2, 2, 2710, 2720, 7, 308, 2, 2, 2711, 2720, 7, 271, 2, 2, 2712, 2720, 7, 309, 2, 2, 2713, 2720, 7, 272, 2, 2, 2714, 2720, 7, 310, 2, 2, 2715, 2717, 7, 56, 2, 2, 2716, 2715, 3, 2, 2, 2, 2716, 2717, 3, 2, 2, 2, 2717, 2718, 3, 2, 2, 2, 2718, 2720, 9, 44, 2, 2, 2719, 2707, 3, 2, 2, 2, 2719, 2708, 3, 2, 2, 2, 2719, 2709, 3, 2, 2, 2, 2719, 2710, 3, 2, 2, 2, 2719, 2711, 3, 2, 2, 2, 2719, 2712, 3, 2, 2, 2, 2719, 2713, 3, 2, 2, 2, 2719, 2714, 3, 2, 2, 2, 2719, 2716, 3, 2, 2, 2, 2720, 383, 3, 2, 2, 2, 2721, 2722, 8, 193, 1, 2, 2722, 2723, 7, 26, 2, 2, 2723, 2724, 5, 282, 142, 2, 2724, 2725, 7, 27, 2, 2, 2725, 2739, 3, 2, 2, 2, 2726, 2727, 7, 26, 2, 2, 2727, 2728, 5, 384, 193, 2, 2728, 2729, 7, 27, 2, 2, 2729, 2739, 3, 2, 2, 2, 2730, 2739, 5, 388, 195, 2, 2731, 2739, 5, 392, 197, 2, 2732, 2739, 5, 396, 199, 2, 2733, 2739, 5, 402, 202, 2, 2734, 2739, 5, 404, 203, 2, 2735, 2739, 5, 412, 207, 2, 2736, 2739, 5, 414, 208, 2, 2737, 2739, 5, 386, 194, 2, 2738, 2721, 3, 2, 2, 2, 2738, 2726, 3, 2, 2, 2, 2738, 2730, 3, 2, 2, 2, 2738, 2731, 3, 2, 2, 2, 2738, 2732, 3, 2, 2, 2, 2738, 2733, 3, 2, 2, 2, 2738, 2734, 3, 2, 2, 2, 2738, 2735, 3, 2, 2, 2, 2738, 2736, 3, 2, 2, 2, 2738, 2737, 3, 2, 2, 2, 2739, 2756, 3, 2, 2, 2, 2740, 2741, 12, 16, 2, 2, 2741, 2742, 7, 313, 2, 2, 2742, 2755, 5, 384, 193, 17, 2743, 2744, 12, 15, 2, 2, 2744, 2745, 7, 314, 2, 2, 2745, 2755, 5, 384, 193, 16, 2746, 2747, 12, 14, 2, 2, 2747, 2748, 7, 315, 2, 2, 2748, 2755, 5, 384, 193, 15, 2749, 2750, 12, 13, 2, 2, 2750, 2751, 7, 316, 2, 2, 2751, 2755, 5, 384, 193, 14, 2752, 2753, 12, 17, 2, 2, 2753, 2755, 5, 390, 196, 2, 2754, 2740, 3, 2, 2, 2, 2754, 2743, 3, 2, 2, 2, 2754, 2746, 3, 2, 2, 2, 2754, 2749, 3, 2, 2, 2, 2754, 2752, 3, 2, 2, 2, 2755, 2758, 3, 2, 2, 2, 2756, 2754, 3, 2, 2, 2, 2756, 2757, 3, 2, 2, 2, 2757, 385, 3, 2, 2, 2, 2758, 2756, 3, 2, 2, 2, 2759, 2768, 5, 436, 219, 2, 2760, 2768, 5, 438, 220, 2, 2761, 2768, 5, 448, 225, 2, 2762, 2768, 5, 440, 221, 2, 2763, 2768, 5, 442, 222, 2, 2764, 2768, 5, 446, 224, 2, 2765, 2768, 5, 444, 223, 2, 2766, 2768, 5, 450, 226, 2, 2767, 2759, 3, 2, 2, 2, 2767, 2760, 3, 2, 2, 2, 2767, 2761, 3, 2, 2, 2, 2767, 2762, 3, 2, 2, 2, 2767, 2763, 3, 2, 2, 2, 2767, 2764, 3, 2, 2, 2, 2767, 2765, 3, 2, 2, 2, 2767, 2766, 3, 2, 2, 2, 2768, 387, 3, 2, 2, 2, 2769, 2770, 7, 317, 2, 2, 2770, 2771, 5, 384, 193, 2, 2771, 2772, 5, 390, 196, 2, 2772, 389, 3, 2, 2, 2, 2773, 2774, 9, 45, 2, 2, 2774, 391, 3, 2, 2, 2, 2775, 2776, 5, 394, 198, 2, 2776, 2777, 9, 46, 2, 2, 2777, 2782, 5, 394, 198, 2, 2778, 2779, 9, 46, 2, 2, 2779, 2781, 5, 394, 198, 2, 2780, 2778, 3, 2, 2, 2, 2781, 2784, 3, 2, 2, 2, 2782, 2780, 3, 2, 2, 2, 2782, 2783, 3, 2, 2, 2, 2783, 393, 3, 2, 2, 2, 2784, 2782, 3, 2, 2, 2, 2785, 2786, 7, 26, 2, 2, 2786, 2787, 5, 384, 193, 2, 2787, 2788, 7, 27, 2, 2, 2788, 2795, 3, 2, 2, 2, 2789, 2795, 5, 396, 199, 2, 2790, 2795, 5, 404, 203, 2, 2791, 2795, 5, 412, 207, 2, 2792, 2795, 5, 414, 208, 2, 2793, 2795, 5, 386, 194, 2, 2794, 2785, 3, 2, 2, 2, 2794, 2789, 3, 2, 2, 2, 2794, 2790, 3, 2, 2, 2, 2794, 2791, 3, 2, 2, 2, 2794, 2792, 3, 2, 2, 2, 2794, 2793, 3, 2, 2, 2, 2795, 395, 3, 2, 2, 2, 2796, 2799, 5, 398, 200, 2, 2797, 2799, 5, 400, 201, 2, 2798, 2796, 3, 2, 2, 2, 2798, 2797, 3, 2, 2, 2, 2799, 397, 3, 2, 2, 2, 2800, 2801, 7, 326, 2, 2, 2801, 2807, 5, 384, 193, 2, 2802, 2803, 7, 18, 2, 2, 2803, 2804, 5, 384, 193, 2, 2804, 2805, 7, 20, 2, 2, 2805, 2806, 5, 384, 193, 2, 2806, 2808, 3, 2, 2, 2, 2807, 2802, 3, 2, 2, 2, 2808, 2809, 3, 2, 2, 2, 2809, 2807, 3, 2, 2, 2, 2809, 2810, 3, 2, 2, 2, 2810, 2813, 3, 2, 2, 2, 2811, 2812, 7, 206, 2, 2, 2812, 2814, 5, 384, 193, 2, 2813, 2811, 3, 2, 2, 2, 2813, 2814, 3, 2, 2, 2, 2814, 2815, 3, 2, 2, 2, 2815, 2816, 7, 16, 2, 2, 2816, 399, 3, 2, 2, 2, 2817, 2823, 7, 326, 2, 2, 2818, 2819, 7, 18, 2, 2, 2819, 2820, 5, 368, 185, 2, 2820, 2821, 7, 20, 2, 2, 2821, 2822, 5, 384, 193, 2, 2822, 2824, 3, 2, 2, 2, 2823, 2818, 3, 2, 2, 2, 2824, 2825, 3, 2, 2, 2, 2825, 2823, 3, 2, 2, 2, 2825, 2826, 3, 2, 2, 2, 2826, 2829, 3, 2, 2, 2, 2827, 2828, 7, 206, 2, 2, 2828, 2830, 5, 384, 193, 2, 2829, 2827, 3, 2, 2, 2, 2829, 2830, 3, 2, 2, 2, 2830, 2831, 3, 2, 2, 2, 2831, 2832, 7, 16, 2, 2, 2832, 401, 3, 2, 2, 2, 2833, 2834, 5, 440, 221, 2, 2834, 2835, 7, 6, 2, 2, 2835, 2836, 9, 47, 2, 2, 2836, 403, 3, 2, 2, 2, 2837, 2838, 7, 329, 2, 2, 2838, 2840, 7, 26, 2, 2, 2839, 2841, 5, 406, 204, 2, 2840, 2839, 3, 2, 2, 2, 2840, 2841, 3, 2, 2, 2, 2841, 2842, 3, 2, 2, 2, 2842, 2843, 5, 384, 193, 2, 2843, 2845, 7, 27, 2, 2, 2844, 2846, 5, 408, 205, 2, 2845, 2844, 3, 2, 2, 2, 2845, 2846, 3, 2, 2, 2, 2846, 2990, 3, 2, 2, 2, 2847, 2848, 7, 330, 2, 2, 2848, 2854, 7, 26, 2, 2, 2849, 2851, 5, 406, 204, 2, 2850, 2849, 3, 2, 2, 2, 2850, 2851, 3, 2, 2, 2, 2851, 2852, 3, 2, 2, 2, 2852, 2855, 5, 384, 193, 2, 2853, 2855, 7, 8, 2, 2, 2854, 2850, 3, 2, 2, 2, 2854, 2853, 3, 2, 2, 2, 2855, 2856, 3, 2, 2, 2, 2856, 2858, 7, 27, 2, 2, 2857, 2859, 5, 408, 205, 2, 2858, 2857, 3, 2, 2, 2, 2858, 2859, 3, 2, 2, 2, 2859, 2990, 3, 2, 2, 2, 2860, 2861, 7, 331, 2, 2, 2861, 2867, 7, 26, 2, 2, 2862, 2864, 5, 406, 204, 2, 2863, 2862, 3, 2, 2, 2, 2863, 2864, 3, 2, 2, 2, 2864, 2865, 3, 2, 2, 2, 2865, 2868, 5, 384, 193, 2, 2866, 2868, 7, 8, 2, 2, 2867, 2863, 3, 2, 2, 2, 2867, 2866, 3, 2, 2, 2, 2868, 2869, 3, 2, 2, 2, 2869, 2871, 7, 27, 2, 2, 2870, 2872, 5, 408, 205, 2, 2871, 2870, 3, 2, 2, 2, 2871, 2872, 3, 2, 2, 2, 2872, 2990, 3, 2, 2, 2, 2873, 2874, 7, 332, 2, 2, 2874, 2875, 7, 26, 2, 2, 2875, 2876, 7, 27, 2, 2, 2876, 2990, 5, 408, 205, 2, 2877, 2878, 7, 333, 2, 2, 2878, 2879, 7, 26, 2, 2, 2879, 2880, 7, 27, 2, 2, 2880, 2990, 5, 408, 205, 2, 2881, 2882, 7, 334, 2, 2, 2882, 2883, 7, 26, 2, 2, 2883, 2884, 5, 384, 193, 2, 2884, 2885, 7, 27, 2, 2, 2885, 2886, 5, 408, 205, 2, 2886, 2990, 3, 2, 2, 2, 2887, 2888, 7, 335, 2, 2, 2888, 2889, 7, 26, 2, 2, 2889, 2896, 5, 384, 193, 2, 2890, 2891, 7, 23, 2, 2, 2891, 2894, 5, 384, 193, 2, 2892, 2893, 7, 23, 2, 2, 2893, 2895, 5, 384, 193, 2, 2894, 2892, 3, 2, 2, 2, 2894, 2895, 3, 2, 2, 2, 2895, 2897, 3, 2, 2, 2, 2896, 2890, 3, 2, 2, 2, 2896, 2897, 3, 2, 2, 2, 2897, 2898, 3, 2, 2, 2, 2898, 2899, 7, 27, 2, 2, 2899, 2900, 5, 408, 205, 2, 2900, 2990, 3, 2, 2, 2, 2901, 2902, 7, 336, 2, 2, 2902, 2903, 7, 26, 2, 2, 2903, 2904, 5, 384, 193, 2, 2904, 2905, 7, 27, 2, 2, 2905, 2906, 5, 408, 205, 2, 2906, 2990, 3, 2, 2, 2, 2907, 2908, 7, 337, 2, 2, 2908, 2909, 7, 26, 2, 2, 2909, 2916, 5, 384, 193, 2, 2910, 2911, 7, 23, 2, 2, 2911, 2914, 5, 384, 193, 2, 2912, 2913, 7, 23, 2, 2, 2913, 2915, 5, 384, 193, 2, 2914, 2912, 3, 2, 2, 2, 2914, 2915, 3, 2, 2, 2, 2915, 2917, 3, 2, 2, 2, 2916, 2910, 3, 2, 2, 2, 2916, 2917, 3, 2, 2, 2, 2917, 2918, 3, 2, 2, 2, 2918, 2919, 7, 27, 2, 2, 2919, 2920, 5, 408, 205, 2, 2920, 2990, 3, 2, 2, 2, 2921, 2922, 7, 179, 2, 2, 2922, 2924, 7, 26, 2, 2, 2923, 2925, 5, 406, 204, 2, 2924, 2923, 3, 2, 2, 2, 2924, 2925, 3, 2, 2, 2, 2925, 2926, 3, 2, 2, 2, 2926, 2927, 5, 384, 193, 2, 2927, 2929, 7, 27, 2, 2, 2928, 2930, 5, 408, 205, 2, 2929, 2928, 3, 2, 2, 2, 2929, 2930, 3, 2, 2, 2, 2930, 2990, 3, 2, 2, 2, 2931, 2932, 7, 338, 2, 2, 2932, 2934, 7, 26, 2, 2, 2933, 2935, 5, 406, 204, 2, 2934, 2933, 3, 2, 2, 2, 2934, 2935, 3, 2, 2, 2, 2935, 2936, 3, 2, 2, 2, 2936, 2937, 5, 384, 193, 2, 2937, 2939, 7, 27, 2, 2, 2938, 2940, 5, 408, 205, 2, 2939, 2938, 3, 2, 2, 2, 2939, 2940, 3, 2, 2, 2, 2940, 2990, 3, 2, 2, 2, 2941, 2942, 7, 339, 2, 2, 2942, 2943, 7, 26, 2, 2, 2943, 2944, 7, 27, 2, 2, 2944, 2990, 5, 408, 205, 2, 2945, 2946, 7, 340, 2, 2, 2946, 2947, 7, 26, 2, 2, 2947, 2948, 7, 27, 2, 2, 2948, 2990, 5, 408, 205, 2, 2949, 2950, 7, 341, 2, 2, 2950, 2952, 7, 26, 2, 2, 2951, 2953, 5, 406, 204, 2, 2952, 2951, 3, 2, 2, 2, 2952, 2953, 3, 2, 2, 2, 2953, 2954, 3, 2, 2, 2, 2954, 2955, 5, 384, 193, 2, 2955, 2957, 7, 27, 2, 2, 2956, 2958, 5, 408, 205, 2, 2957, 2956, 3, 2, 2, 2, 2957, 2958, 3, 2, 2, 2, 2958, 2990, 3, 2, 2, 2, 2959, 2960, 7, 232, 2, 2, 2960, 2962, 7, 26, 2, 2, 2961, 2963, 5, 406, 204, 2, 2962, 2961, 3, 2, 2, 2, 2962, 2963, 3, 2, 2, 2, 2963, 2964, 3, 2, 2, 2, 2964, 2965, 5, 384, 193, 2, 2965, 2967, 7, 27, 2, 2, 2966, 2968, 5, 408, 205, 2, 2967, 2966, 3, 2, 2, 2, 2967, 2968, 3, 2, 2, 2, 2968, 2990, 3, 2, 2, 2, 2969, 2970, 7, 342, 2, 2, 2970, 2972, 7, 26, 2, 2, 2971, 2973, 5, 406, 204, 2, 2972, 2971, 3, 2, 2, 2, 2972, 2973, 3, 2, 2, 2, 2973, 2974, 3, 2, 2, 2, 2974, 2975, 5, 384, 193, 2, 2975, 2977, 7, 27, 2, 2, 2976, 2978, 5, 408, 205, 2, 2977, 2976, 3, 2, 2, 2, 2977, 2978, 3, 2, 2, 2, 2978, 2990, 3, 2, 2, 2, 2979, 2980, 7, 343, 2, 2, 2980, 2982, 7, 26, 2, 2, 2981, 2983, 5, 406, 204, 2, 2982, 2981, 3, 2, 2, 2, 2982, 2983, 3, 2, 2, 2, 2983, 2984, 3, 2, 2, 2, 2984, 2985, 5, 384, 193, 2, 2985, 2987, 7, 27, 2, 2, 2986, 2988, 5, 408, 205, 2, 2987, 2986, 3, 2, 2, 2, 2987, 2988, 3, 2, 2, 2, 2988, 2990, 3, 2, 2, 2, 2989, 2837, 3, 2, 2, 2, 2989, 2847, 3, 2, 2, 2, 2989, 2860, 3, 2, 2, 2, 2989, 2873, 3, 2, 2, 2, 2989, 2877, 3, 2, 2, 2, 2989, 2881, 3, 2, 2, 2, 2989, 2887, 3, 2, 2, 2, 2989, 2901, 3, 2, 2, 2, 2989, 2907, 3, 2, 2, 2, 2989, 2921, 3, 2, 2, 2, 2989, 2931, 3, 2, 2, 2, 2989, 2941, 3, 2, 2, 2, 2989, 2945, 3, 2, 2, 2, 2989, 2949, 3, 2, 2, 2, 2989, 2959, 3, 2, 2, 2, 2989, 2969, 3, 2, 2, 2, 2989, 2979, 3, 2, 2, 2, 2990, 405, 3, 2, 2, 2, 2991, 2992, 9, 38, 2, 2, 2992, 407, 3, 2, 2, 2, 2993, 2994, 7, 344, 2, 2, 2994, 2996, 7, 26, 2, 2, 2995, 2997, 5, 410, 206, 2, 2996, 2995, 3, 2, 2, 2, 2996, 2997, 3, 2, 2, 2, 2997, 2999, 3, 2, 2, 2, 2998, 3000, 5, 340, 171, 2, 2999, 2998, 3, 2, 2, 2, 2999, 3000, 3, 2, 2, 2, 3000, 3001, 3, 2, 2, 2, 3001, 3002, 7, 27, 2, 2, 3002, 409, 3, 2, 2, 2, 3003, 3004, 7, 345, 2, 2, 3004, 3005, 7, 111, 2, 2, 3005, 3010, 5, 384, 193, 2, 3006, 3007, 7, 23, 2, 2, 3007, 3009, 5, 384, 193, 2, 3008, 3006, 3, 2, 2, 2, 3009, 3012, 3, 2, 2, 2, 3010, 3008, 3, 2, 2, 2, 3010, 3011, 3, 2, 2, 2, 3011, 411, 3, 2, 2, 2, 3012, 3010, 3, 2, 2, 2, 3013, 3214, 7, 346, 2, 2, 3014, 3015, 7, 347, 2, 2, 3015, 3016, 7, 26, 2, 2, 3016, 3017, 5, 384, 193, 2, 3017, 3018, 7, 41, 2, 2, 3018, 3020, 5, 120, 61, 2, 3019, 3021, 5, 122, 62, 2, 3020, 3019, 3, 2, 2, 2, 3020, 3021, 3, 2, 2, 2, 3021, 3022, 3, 2, 2, 2, 3022, 3023, 7, 27, 2, 2, 3023, 3214, 3, 2, 2, 2, 3024, 3025, 7, 330, 2, 2, 3025, 3028, 7, 26, 2, 2, 3026, 3029, 5, 384, 193, 2, 3027, 3029, 7, 8, 2, 2, 3028, 3026, 3, 2, 2, 2, 3028, 3027, 3, 2, 2, 2, 3029, 3030, 3, 2, 2, 2, 3030, 3214, 7, 27, 2, 2, 3031, 3214, 7, 348, 2, 2, 3032, 3033, 7, 247, 2, 2, 3033, 3214, 7, 145, 2, 2, 3034, 3038, 7, 349, 2, 2, 3035, 3036, 7, 247, 2, 2, 3036, 3038, 7, 172, 2, 2, 3037, 3034, 3, 2, 2, 2, 3037, 3035, 3, 2, 2, 2, 3038, 3043, 3, 2, 2, 2, 3039, 3040, 7, 26, 2, 2, 3040, 3041, 5, 384, 193, 2, 3041, 3042, 7, 27, 2, 2, 3042, 3044, 3, 2, 2, 2, 3043, 3039, 3, 2, 2, 2, 3043, 3044, 3, 2, 2, 2, 3044, 3214, 3, 2, 2, 2, 3045, 3214, 7, 350, 2, 2, 3046, 3047, 7, 247, 2, 2, 3047, 3214, 7, 351, 2, 2, 3048, 3049, 7, 352, 2, 2, 3049, 3050, 7, 26, 2, 2, 3050, 3063, 5, 384, 193, 2, 3051, 3052, 7, 23, 2, 2, 3052, 3060, 5, 384, 193, 2, 3053, 3054, 7, 23, 2, 2, 3054, 3055, 5, 384, 193, 2, 3055, 3056, 7, 25, 2, 2, 3056, 3057, 5, 384, 193, 2, 3057, 3059, 3, 2, 2, 2, 3058, 3053, 3, 2, 2, 2, 3059, 3062, 3, 2, 2, 2, 3060, 3058, 3, 2, 2, 2, 3060, 3061, 3, 2, 2, 2, 3061, 3064, 3, 2, 2, 2, 3062, 3060, 3, 2, 2, 2, 3063, 3051, 3, 2, 2, 2, 3063, 3064, 3, 2, 2, 2, 3064, 3065, 3, 2, 2, 2, 3065, 3066, 7, 27, 2, 2, 3066, 3214, 3, 2, 2, 2, 3067, 3068, 7, 353, 2, 2, 3068, 3069, 7, 26, 2, 2, 3069, 3082, 5, 384, 193, 2, 3070, 3071, 7, 23, 2, 2, 3071, 3079, 5, 384, 193, 2, 3072, 3073, 7, 23, 2, 2, 3073, 3074, 5, 384, 193, 2, 3074, 3075, 7, 25, 2, 2, 3075, 3076, 5, 384, 193, 2, 3076, 3078, 3, 2, 2, 2, 3077, 3072, 3, 2, 2, 2, 3078, 3081, 3, 2, 2, 2, 3079, 3077, 3, 2, 2, 2, 3079, 3080, 3, 2, 2, 2, 3080, 3083, 3, 2, 2, 2, 3081, 3079, 3, 2, 2, 2, 3082, 3070, 3, 2, 2, 2, 3082, 3083, 3, 2, 2, 2, 3083, 3084, 3, 2, 2, 2, 3084, 3085, 7, 27, 2, 2, 3085, 3214, 3, 2, 2, 2, 3086, 3087, 7, 354, 2, 2, 3087, 3088, 7, 26, 2, 2, 3088, 3101, 5, 384, 193, 2, 3089, 3090, 7, 23, 2, 2, 3090, 3098, 5, 384, 193, 2, 3091, 3092, 7, 23, 2, 2, 3092, 3093, 5, 384, 193, 2, 3093, 3094, 7, 25, 2, 2, 3094, 3095, 5, 384, 193, 2, 3095, 3097, 3, 2, 2, 2, 3096, 3091, 3, 2, 2, 2, 3097, 3100, 3, 2, 2, 2, 3098, 3096, 3, 2, 2, 2, 3098, 3099, 3, 2, 2, 2, 3099, 3102, 3, 2, 2, 2, 3100, 3098, 3, 2, 2, 2, 3101, 3089, 3, 2, 2, 2, 3101, 3102, 3, 2, 2, 2, 3102, 3103, 3, 2, 2, 2, 3103, 3104, 7, 27, 2, 2, 3104, 3214, 3, 2, 2, 2, 3105, 3106, 7, 355, 2, 2, 3106, 3107, 7, 26, 2, 2, 3107, 3120, 5, 384, 193, 2, 3108, 3109, 7, 23, 2, 2, 3109, 3117, 5, 384, 193, 2, 3110, 3111, 7, 23, 2, 2, 3111, 3112, 5, 384, 193, 2, 3112, 3113, 7, 25, 2, 2, 3113, 3114, 5, 384, 193, 2, 3114, 3116, 3, 2, 2, 2, 3115, 3110, 3, 2, 2, 2, 3116, 3119, 3, 2, 2, 2, 3117, 3115, 3, 2, 2, 2, 3117, 3118, 3, 2, 2, 2, 3118, 3121, 3, 2, 2, 2, 3119, 3117, 3, 2, 2, 2, 3120, 3108, 3, 2, 2, 2, 3120, 3121, 3, 2, 2, 2, 3121, 3122, 3, 2, 2, 2, 3122, 3123, 7, 27, 2, 2, 3123, 3214, 3, 2, 2, 2, 3124, 3125, 7, 356, 2, 2, 3125, 3126, 7, 26, 2, 2, 3126, 3139, 5, 384, 193, 2, 3127, 3128, 7, 23, 2, 2, 3128, 3136, 5, 384, 193, 2, 3129, 3130, 7, 23, 2, 2, 3130, 3131, 5, 384, 193, 2, 3131, 3132, 7, 25, 2, 2, 3132, 3133, 5, 384, 193, 2, 3133, 3135, 3, 2, 2, 2, 3134, 3129, 3, 2, 2, 2, 3135, 3138, 3, 2, 2, 2, 3136, 3134, 3, 2, 2, 2, 3136, 3137, 3, 2, 2, 2, 3137, 3140, 3, 2, 2, 2, 3138, 3136, 3, 2, 2, 2, 3139, 3127, 3, 2, 2, 2, 3139, 3140, 3, 2, 2, 2, 3140, 3141, 3, 2, 2, 2, 3141, 3142, 7, 27, 2, 2, 3142, 3214, 3, 2, 2, 2, 3143, 3144, 7, 357, 2, 2, 3144, 3145, 7, 26, 2, 2, 3145, 3158, 5, 384, 193, 2, 3146, 3147, 7, 23, 2, 2, 3147, 3155, 5, 384, 193, 2, 3148, 3149, 7, 23, 2, 2, 3149, 3150, 5, 384, 193, 2, 3150, 3151, 7, 25, 2, 2, 3151, 3152, 5, 384, 193, 2, 3152, 3154, 3, 2, 2, 2, 3153, 3148, 3, 2, 2, 2, 3154, 3157, 3, 2, 2, 2, 3155, 3153, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 3159, 3, 2, 2, 2, 3157, 3155, 3, 2, 2, 2, 3158, 3146, 3, 2, 2, 2, 3158, 3159, 3, 2, 2, 2, 3159, 3160, 3, 2, 2, 2, 3160, 3161, 7, 27, 2, 2, 3161, 3214, 3, 2, 2, 2, 3162, 3163, 7, 358, 2, 2, 3163, 3164, 7, 26, 2, 2, 3164, 3172, 5, 384, 193, 2, 3165, 3166, 7, 23, 2, 2, 3166, 3167, 5, 384, 193, 2, 3167, 3168, 7, 25, 2, 2, 3168, 3169, 5, 384, 193, 2, 3169, 3171, 3, 2, 2, 2, 3170, 3165, 3, 2, 2, 2, 3171, 3174, 3, 2, 2, 2, 3172, 3170, 3, 2, 2, 2, 3172, 3173, 3, 2, 2, 2, 3173, 3175, 3, 2, 2, 2, 3174, 3172, 3, 2, 2, 2, 3175, 3176, 7, 27, 2, 2, 3176, 3214, 3, 2, 2, 2, 3177, 3178, 7, 359, 2, 2, 3178, 3179, 7, 26, 2, 2, 3179, 3185, 5, 384, 193, 2, 3180, 3181, 7, 23, 2, 2, 3181, 3182, 5, 384, 193, 2, 3182, 3183, 7, 25, 2, 2, 3183, 3184, 5, 384, 193, 2, 3184, 3186, 3, 2, 2, 2, 3185, 3180, 3, 2, 2, 2, 3186, 3187, 3, 2, 2, 2, 3187, 3185, 3, 2, 2, 2, 3187, 3188, 3, 2, 2, 2, 3188, 3191, 3, 2, 2, 2, 3189, 3190, 7, 23, 2, 2, 3190, 3192, 5, 384, 193, 2, 3191, 3189, 3, 2, 2, 2, 3191, 3192, 3, 2, 2, 2, 3192, 3193, 3, 2, 2, 2, 3193, 3194, 7, 27, 2, 2, 3194, 3214, 3, 2, 2, 2, 3195, 3196, 7, 360, 2, 2, 3196, 3197, 7, 26, 2, 2, 3197, 3198, 5, 384, 193, 2, 3198, 3199, 7, 27, 2, 2, 3199, 3214, 3, 2, 2, 2, 3200, 3201, 7, 361, 2, 2, 3201, 3202, 7, 26, 2, 2, 3202, 3203, 5, 384, 193, 2, 3203, 3204, 7, 225, 2, 2, 3204, 3207, 5, 384, 193, 2, 3205, 3206, 7, 30, 2, 2, 3206, 3208, 5, 384, 193, 2, 3207, 3205, 3, 2, 2, 2, 3207, 3208, 3, 2, 2, 2, 3208, 3209, 3, 2, 2, 2, 3209, 3210, 7, 27, 2, 2, 3210, 3214, 3, 2, 2, 2, 3211, 3214, 7, 362, 2, 2, 3212, 3214, 7, 351, 2, 2, 3213, 3013, 3, 2, 2, 2, 3213, 3014, 3, 2, 2, 2, 3213, 3024, 3, 2, 2, 2, 3213, 3031, 3, 2, 2, 2, 3213, 3032, 3, 2, 2, 2, 3213, 3037, 3, 2, 2, 2, 3213, 3045, 3, 2, 2, 2, 3213, 3046, 3, 2, 2, 2, 3213, 3048, 3, 2, 2, 2, 3213, 3067, 3, 2, 2, 2, 3213, 3086, 3, 2, 2, 2, 3213, 3105, 3, 2, 2, 2, 3213, 3124, 3, 2, 2, 2, 3213, 3143, 3, 2, 2, 2, 3213, 3162, 3, 2, 2, 2, 3213, 3177, 3, 2, 2, 2, 3213, 3195, 3, 2, 2, 2, 3213, 3200, 3, 2, 2, 2, 3213, 3211, 3, 2, 2, 2, 3213, 3212, 3, 2, 2, 2, 3214, 413, 3, 2, 2, 2, 3215, 3216, 5, 440, 221, 2, 3216, 3218, 7, 26, 2, 2, 3217, 3219, 5, 416, 209, 2, 3218, 3217, 3, 2, 2, 2, 3218, 3219, 3, 2, 2, 2, 3219, 3220, 3, 2, 2, 2, 3220, 3221, 7, 27, 2, 2, 3221, 415, 3, 2, 2, 2, 3222, 3227, 5, 418, 210, 2, 3223, 3224, 7, 23, 2, 2, 3224, 3226, 5, 418, 210, 2, 3225, 3223, 3, 2, 2, 2, 3226, 3229, 3, 2, 2, 2, 3227, 3225, 3, 2, 2, 2, 3227, 3228, 3, 2, 2, 2, 3228, 417, 3, 2, 2, 2, 3229, 3227, 3, 2, 2, 2, 3230, 3236, 6, 210, 14, 2, 3231, 3232, 5, 440, 221, 2, 3232, 3234, 7, 25, 2, 2, 3233, 3235, 7, 272, 2, 2, 3234, 3233, 3, 2, 2, 2, 3234, 3235, 3, 2, 2, 2, 3235, 3237, 3, 2, 2, 2, 3236, 3231, 3, 2, 2, 2, 3236, 3237, 3, 2, 2, 2, 3237, 3238, 3, 2, 2, 2, 3238, 3239, 5, 384, 193, 2, 3239, 419, 3, 2, 2, 2, 3240, 3243, 5, 282, 142, 2, 3241, 3243, 5, 384, 193, 2, 3242, 3240, 3, 2, 2, 2, 3242, 3241, 3, 2, 2, 2, 3243, 421, 3, 2, 2, 2, 3244, 3247, 5, 434, 218, 2, 3245, 3247, 5, 384, 193, 2, 3246, 3244, 3, 2, 2, 2, 3246, 3245, 3, 2, 2, 2, 3247, 423, 3, 2, 2, 2, 3248, 3252, 7, 363, 2, 2, 3249, 3251, 5, 426, 214, 2, 3250, 3249, 3, 2, 2, 2, 3251, 3254, 3, 2, 2, 2, 3252, 3250, 3, 2, 2, 2, 3252, 3253, 3, 2, 2, 2, 3253, 425, 3, 2, 2, 2, 3254, 3252, 3, 2, 2, 2, 3255, 3256, 7, 316, 2, 2, 3256, 3257, 5, 440, 221, 2, 3257, 3258, 5, 384, 193, 2, 3258, 3268, 3, 2, 2, 2, 3259, 3260, 7, 316, 2, 2, 3260, 3261, 5, 440, 221, 2, 3261, 3262, 7, 19, 2, 2, 3262, 3263, 7, 25, 2, 2, 3263, 3264, 5, 384, 193, 2, 3264, 3268, 3, 2, 2, 2, 3265, 3266, 7, 316, 2, 2, 3266, 3268, 5, 440, 221, 2, 3267, 3255, 3, 2, 2, 2, 3267, 3259, 3, 2, 2, 2, 3267, 3265, 3, 2, 2, 2, 3268, 427, 3, 2, 2, 2, 3269, 3270, 7, 9, 2, 2, 3270, 3271, 5, 430, 216, 2, 3271, 3272, 7, 10, 2, 2, 3272, 3275, 3, 2, 2, 2, 3273, 3275, 5, 432, 217, 2, 3274, 3269, 3, 2, 2, 2, 3274, 3273, 3, 2, 2, 2, 3275, 429, 3, 2, 2, 2, 3276, 3278, 11, 2, 2, 2, 3277, 3276, 3, 2, 2, 2, 3278, 3281, 3, 2, 2, 2, 3279, 3280, 3, 2, 2, 2, 3279, 3277, 3, 2, 2, 2, 3280, 431, 3, 2, 2, 2, 3281, 3279, 3, 2, 2, 2, 3282, 3283, 7, 364, 2, 2, 3283, 3284, 5, 384, 193, 2, 3284, 433, 3, 2, 2, 2, 3285, 3300, 7, 365, 2, 2, 3286, 3290, 7, 5, 2, 2, 3287, 3288, 7, 7, 2, 2, 3288, 3290, 7, 5, 2, 2, 3289, 3286, 3, 2, 2, 2, 3289, 3287, 3, 2, 2, 2, 3289, 3290, 3, 2, 2, 2, 3290, 3291, 3, 2, 2, 2, 3291, 3296, 5, 440, 221, 2, 3292, 3293, 7, 5, 2, 2, 3293, 3295, 5, 440, 221, 2, 3294, 3292, 3, 2, 2, 2, 3295, 3298, 3, 2, 2, 2, 3296, 3294, 3, 2, 2, 2, 3296, 3297, 3, 2, 2, 2, 3297, 3300, 3, 2, 2, 2, 3298, 3296, 3, 2, 2, 2, 3299, 3285, 3, 2, 2, 2, 3299, 3289, 3, 2, 2, 2, 3300, 435, 3, 2, 2, 2, 3301, 3302, 7, 145, 2, 2, 3302, 3303, 5, 442, 222, 2, 3303, 437, 3, 2, 2, 2, 3304, 3305, 7, 172, 2, 2, 3305, 3306, 5, 442, 222, 2, 3306, 439, 3, 2, 2, 2, 3307, 3309, 7, 11, 2, 2, 3308, 3307, 3, 2, 2, 2, 3308, 3309, 3, 2, 2, 2, 3309, 3312, 3, 2, 2, 2, 3310, 3313, 7, 19, 2, 2, 3311, 3313, 5, 452, 227, 2, 3312, 3310, 3, 2, 2, 2, 3312, 3311, 3, 2, 2, 2, 3313, 3321, 3, 2, 2, 2, 3314, 3317, 7, 7, 2, 2, 3315, 3318, 7, 19, 2, 2, 3316, 3318, 5, 452, 227, 2, 3317, 3315, 3, 2, 2, 2, 3317, 3316, 3, 2, 2, 2, 3318, 3320, 3, 2, 2, 2, 3319, 3314, 3, 2, 2, 2, 3320, 3323, 3, 2, 2, 2, 3321, 3319, 3, 2, 2, 2, 3321, 3322, 3, 2, 2, 2, 3322, 441, 3, 2, 2, 2, 3323, 3321, 3, 2, 2, 2, 3324, 3327, 7, 282, 2, 2, 3325, 3327, 7, 366, 2, 2, 3326, 3324, 3, 2, 2, 2, 3326, 3325, 3, 2, 2, 2, 3327, 443, 3, 2, 2, 2, 3328, 3330, 9, 48, 2, 2, 3329, 3328, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3331, 3, 2, 2, 2, 3331, 3332, 7, 74, 2, 2, 3332, 445, 3, 2, 2, 2, 3333, 3335, 9, 48, 2, 2, 3334, 3333, 3, 2, 2, 2, 3334, 3335, 3, 2, 2, 2, 3335, 3336, 3, 2, 2, 2, 3336, 3337, 7, 367, 2, 2, 3337, 447, 3, 2, 2, 2, 3338, 3339, 9, 49, 2, 2, 3339, 449, 3, 2, 2, 2, 3340, 3341, 7, 21, 2, 2, 3341, 451, 3, 2, 2, 2, 3342, 3343, 9, 50, 2, 2, 3343, 453, 3, 2, 2, 2, 426, 459, 462, 466, 469, 474, 481, 487, 489, 498, 501, 503, 566, 574, 590, 597, 600, 605, 609, 618, 623, 631, 636, 645, 657, 662, 665, 679, 686, 695, 712, 716, 724, 735, 745, 753, 760, 764, 768, 773, 777, 782, 786, 790, 800, 804, 809, 814, 818, 831, 836, 842, 851, 855, 863, 866, 871, 876, 883, 892, 895, 902, 908, 913, 919, 924, 927, 933, 947, 957, 963, 968, 973, 978, 982, 987, 990, 1000, 1012, 1019, 1022, 1034, 1039, 1044, 1047, 1054, 1066, 1079, 1081, 1086, 1089, 1104, 1110, 1121, 1124, 1134, 1141, 1147, 1155, 1165, 1185, 1191, 1195, 1200, 1204, 1209, 1212, 1217, 1220, 1232, 1239, 1244, 1249, 1253, 1258, 1261, 1271, 1283, 1290, 1298, 1313, 1344, 1346, 1351, 1355, 1360, 1367, 1370, 1373, 1378, 1382, 1384, 1391, 1397, 1404, 1410, 1413, 1418, 1422, 1425, 1432, 1438, 1441, 1451, 1460, 1467, 1474, 1476, 1482, 1485, 1496, 1505, 1511, 1517, 1520, 1525, 1528, 1531, 1534, 1537, 1543, 1553, 1564, 1567, 1574, 1579, 1584, 1588, 1596, 1600, 1605, 1609, 1611, 1616, 1624, 1629, 1635, 1642, 1645, 1652, 1660, 1668, 1671, 1674, 1679, 1688, 1692, 1702, 1721, 1728, 1730, 1734, 1738, 1746, 1757, 1766, 1774, 1782, 1786, 1794, 1812, 1826, 1833, 1837, 1844, 1846, 1850, 1859, 1867, 1876, 1892, 1898, 1902, 1912, 1920, 1929, 1933, 1939, 1944, 1948, 1958, 1964, 1968, 1980, 1987, 2003, 2010, 2020, 2023, 2027, 2034, 2041, 2043, 2047, 2051, 2056, 2059, 2063, 2066, 2077, 2080, 2091, 2097, 2101, 2103, 2107, 2116, 2123, 2127, 2131, 2138, 2142, 2150, 2156, 2160, 2171, 2178, 2191, 2199, 2203, 2213, 2218, 2231, 2242, 2250, 2254, 2258, 2262, 2264, 2269, 2272, 2275, 2278, 2282, 2285, 2288, 2291, 2294, 2301, 2312, 2316, 2319, 2323, 2330, 2334, 2344, 2352, 2358, 2362, 2368, 2377, 2380, 2385, 2388, 2398, 2403, 2412, 2417, 2421, 2430, 2434, 2448, 2461, 2466, 2470, 2476, 2487, 2489, 2496, 2499, 2506, 2511, 2517, 2520, 2523, 2538, 2545, 2548, 2551, 2555, 2560, 2566, 2570, 2581, 2585, 2588, 2592, 2596, 2600, 2604, 2610, 2616, 2623, 2631, 2637, 2642, 2653, 2662, 2666, 2675, 2679, 2689, 2694, 2716, 2719, 2738, 2754, 2756, 2767, 2782, 2794, 2798, 2809, 2813, 2825, 2829, 2840, 2845, 2850, 2854, 2858, 2863, 2867, 2871, 2894, 2896, 2914, 2916, 2924, 2929, 2934, 2939, 2952, 2957, 2962, 2967, 2972, 2977, 2982, 2987, 2989, 2996, 2999, 3010, 3020, 3028, 3037, 3043, 3060, 3063, 3079, 3082, 3098, 3101, 3117, 3120, 3136, 3139, 3155, 3158, 3172, 3187, 3191, 3207, 3213, 3218, 3227, 3234, 3236, 3242, 3246, 3252, 3267, 3274, 3279, 3289, 3296, 3299, 3308, 3312, 3317, 3321, 3326, 3329, 3334] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 378, 3339, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 5, 3, 460, 10, 3, 3, 3, 5, 3, 463, 10, 3, 6, 3, 465, 10, 3, 13, 3, 14, 3, 466, 3, 4, 5, 4, 470, 10, 4, 3, 4, 3, 4, 3, 4, 5, 4, 475, 10, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 5, 5, 482, 10, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 488, 10, 5, 5, 5, 490, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 6, 7, 497, 10, 7, 13, 7, 14, 7, 498, 3, 7, 5, 7, 502, 10, 7, 5, 7, 504, 10, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 567, 10, 8, 3, 9, 3, 9, 3, 10, 3, 10, 6, 10, 573, 10, 10, 13, 10, 14, 10, 574, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 5, 14, 591, 10, 14, 3, 14, 3, 14, 3, 14, 7, 14, 596, 10, 14, 12, 14, 14, 14, 599, 11, 14, 5, 14, 601, 10, 14, 3, 15, 3, 15, 3, 15, 5, 15, 606, 10, 15, 3, 16, 3, 16, 5, 16, 610, 10, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 5, 16, 619, 10, 16, 3, 16, 3, 16, 3, 16, 5, 16, 624, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 630, 10, 17, 12, 17, 14, 17, 633, 11, 17, 3, 17, 3, 17, 5, 17, 637, 10, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 644, 10, 17, 12, 17, 14, 17, 647, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 7, 18, 656, 10, 18, 12, 18, 14, 18, 659, 11, 18, 3, 18, 3, 18, 5, 18, 663, 10, 18, 3, 18, 5, 18, 666, 10, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 5, 19, 680, 10, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 5, 20, 687, 10, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 7, 20, 694, 10, 20, 12, 20, 14, 20, 697, 11, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 5, 23, 713, 10, 23, 3, 23, 3, 23, 5, 23, 717, 10, 23, 3, 24, 3, 24, 3, 24, 3, 24, 7, 24, 723, 10, 24, 12, 24, 14, 24, 726, 11, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 7, 25, 734, 10, 25, 12, 25, 14, 25, 737, 11, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 744, 10, 26, 12, 26, 14, 26, 747, 11, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 5, 27, 754, 10, 27, 3, 28, 3, 28, 3, 28, 7, 28, 759, 10, 28, 12, 28, 14, 28, 762, 11, 28, 3, 28, 5, 28, 765, 10, 28, 3, 28, 3, 28, 5, 28, 769, 10, 28, 3, 28, 7, 28, 772, 10, 28, 12, 28, 14, 28, 775, 11, 28, 3, 28, 5, 28, 778, 10, 28, 3, 28, 3, 28, 3, 28, 5, 28, 783, 10, 28, 3, 28, 3, 28, 5, 28, 787, 10, 28, 3, 28, 3, 28, 5, 28, 791, 10, 28, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 5, 30, 801, 10, 30, 3, 30, 3, 30, 5, 30, 805, 10, 30, 3, 30, 3, 30, 3, 30, 5, 30, 810, 10, 30, 3, 31, 3, 31, 3, 31, 5, 31, 815, 10, 31, 3, 31, 3, 31, 5, 31, 819, 10, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 5, 33, 832, 10, 33, 3, 33, 3, 33, 3, 34, 5, 34, 837, 10, 34, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 843, 10, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 852, 10, 35, 3, 35, 3, 35, 5, 35, 856, 10, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 5, 36, 864, 10, 36, 3, 36, 5, 36, 867, 10, 36, 3, 36, 3, 36, 3, 36, 5, 36, 872, 10, 36, 3, 36, 3, 36, 3, 37, 5, 37, 877, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 884, 10, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 5, 37, 891, 10, 37, 3, 37, 5, 37, 894, 10, 37, 3, 38, 3, 38, 3, 38, 7, 38, 899, 10, 38, 12, 38, 14, 38, 902, 11, 38, 3, 39, 3, 39, 3, 39, 5, 39, 907, 10, 39, 3, 39, 7, 39, 910, 10, 39, 12, 39, 14, 39, 913, 11, 39, 3, 39, 7, 39, 916, 10, 39, 12, 39, 14, 39, 919, 11, 39, 3, 39, 3, 39, 5, 39, 923, 10, 39, 3, 39, 5, 39, 926, 10, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 932, 10, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 944, 10, 41, 12, 41, 14, 41, 947, 11, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 7, 41, 954, 10, 41, 12, 41, 14, 41, 957, 11, 41, 3, 41, 3, 41, 3, 41, 5, 41, 962, 10, 41, 3, 42, 3, 42, 3, 42, 5, 42, 967, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 972, 10, 42, 3, 42, 3, 42, 3, 42, 5, 42, 977, 10, 42, 7, 42, 979, 10, 42, 12, 42, 14, 42, 982, 11, 42, 3, 42, 3, 42, 5, 42, 986, 10, 42, 3, 42, 5, 42, 989, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 997, 10, 42, 12, 42, 14, 42, 1000, 11, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 7, 42, 1009, 10, 42, 12, 42, 14, 42, 1012, 11, 42, 3, 42, 3, 42, 7, 42, 1016, 10, 42, 12, 42, 14, 42, 1019, 11, 42, 5, 42, 1021, 10, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 5, 43, 1033, 10, 43, 3, 44, 6, 44, 1036, 10, 44, 13, 44, 14, 44, 1037, 3, 45, 3, 45, 3, 45, 5, 45, 1043, 10, 45, 3, 46, 5, 46, 1046, 10, 46, 3, 46, 3, 46, 3, 47, 6, 47, 1051, 10, 47, 13, 47, 14, 47, 1052, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 1065, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 6, 49, 1078, 10, 49, 13, 49, 14, 49, 1079, 3, 49, 3, 49, 3, 49, 5, 49, 1085, 10, 49, 3, 50, 5, 50, 1088, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 7, 50, 1101, 10, 50, 12, 50, 14, 50, 1104, 11, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1109, 10, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 5, 50, 1120, 10, 50, 3, 51, 5, 51, 1123, 10, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 7, 51, 1131, 10, 51, 12, 51, 14, 51, 1134, 11, 51, 3, 51, 3, 51, 3, 51, 3, 51, 5, 51, 1140, 10, 51, 3, 52, 3, 52, 3, 52, 3, 52, 5, 52, 1146, 10, 52, 3, 53, 3, 53, 3, 53, 3, 53, 7, 53, 1152, 10, 53, 12, 53, 14, 53, 1155, 11, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1164, 10, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 5, 54, 1184, 10, 54, 3, 55, 3, 55, 3, 55, 3, 55, 5, 55, 1190, 10, 55, 3, 56, 3, 56, 5, 56, 1194, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1199, 10, 56, 3, 56, 3, 56, 5, 56, 1203, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1208, 10, 56, 3, 56, 5, 56, 1211, 10, 56, 3, 56, 3, 56, 3, 56, 5, 56, 1216, 10, 56, 3, 56, 5, 56, 1219, 10, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 5, 59, 1231, 10, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 5, 60, 1238, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1243, 10, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1248, 10, 60, 7, 60, 1250, 10, 60, 12, 60, 14, 60, 1253, 11, 60, 3, 60, 3, 60, 5, 60, 1257, 10, 60, 3, 60, 5, 60, 1260, 10, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1268, 10, 60, 12, 60, 14, 60, 1271, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 7, 60, 1280, 10, 60, 12, 60, 14, 60, 1283, 11, 60, 3, 60, 3, 60, 7, 60, 1287, 10, 60, 12, 60, 14, 60, 1290, 11, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 5, 60, 1297, 10, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1311, 10, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 5, 61, 1342, 10, 61, 5, 61, 1344, 10, 61, 3, 62, 3, 62, 3, 62, 5, 62, 1349, 10, 62, 3, 62, 3, 62, 5, 62, 1353, 10, 62, 3, 62, 3, 62, 3, 63, 5, 63, 1358, 10, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 5, 63, 1365, 10, 63, 3, 63, 5, 63, 1368, 10, 63, 3, 64, 5, 64, 1371, 10, 64, 3, 64, 3, 64, 3, 64, 5, 64, 1376, 10, 64, 3, 64, 3, 64, 5, 64, 1380, 10, 64, 5, 64, 1382, 10, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 5, 65, 1389, 10, 65, 3, 65, 3, 65, 7, 65, 1393, 10, 65, 12, 65, 14, 65, 1396, 11, 65, 3, 66, 3, 66, 3, 66, 3, 66, 5, 66, 1402, 10, 66, 3, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1408, 10, 67, 3, 67, 5, 67, 1411, 10, 67, 3, 67, 3, 67, 3, 67, 5, 67, 1416, 10, 67, 3, 67, 3, 67, 5, 67, 1420, 10, 67, 3, 67, 5, 67, 1423, 10, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 5, 68, 1430, 10, 68, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1436, 10, 69, 3, 69, 5, 69, 1439, 10, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 5, 69, 1449, 10, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 7, 70, 1456, 10, 70, 12, 70, 14, 70, 1459, 11, 70, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1465, 10, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 5, 71, 1472, 10, 71, 5, 71, 1474, 10, 71, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1480, 10, 72, 3, 72, 5, 72, 1483, 10, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 5, 72, 1494, 10, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 7, 73, 1501, 10, 73, 12, 73, 14, 73, 1504, 11, 73, 3, 74, 3, 74, 3, 74, 5, 74, 1509, 10, 74, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1515, 10, 75, 3, 75, 5, 75, 1518, 10, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1523, 10, 75, 3, 75, 5, 75, 1526, 10, 75, 3, 75, 5, 75, 1529, 10, 75, 3, 75, 5, 75, 1532, 10, 75, 3, 75, 5, 75, 1535, 10, 75, 3, 75, 3, 75, 3, 75, 3, 75, 5, 75, 1541, 10, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1549, 10, 76, 12, 76, 14, 76, 1552, 11, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 7, 76, 1560, 10, 76, 12, 76, 14, 76, 1563, 11, 76, 5, 76, 1565, 10, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1572, 10, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1577, 10, 77, 3, 77, 7, 77, 1580, 10, 77, 12, 77, 14, 77, 1583, 11, 77, 3, 77, 5, 77, 1586, 10, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 5, 77, 1594, 10, 77, 3, 77, 3, 77, 5, 77, 1598, 10, 77, 3, 77, 7, 77, 1601, 10, 77, 12, 77, 14, 77, 1604, 11, 77, 3, 77, 5, 77, 1607, 10, 77, 5, 77, 1609, 10, 77, 3, 78, 6, 78, 1612, 10, 78, 13, 78, 14, 78, 1613, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1622, 10, 79, 3, 79, 3, 79, 3, 79, 5, 79, 1627, 10, 79, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1633, 10, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 5, 80, 1640, 10, 80, 3, 80, 5, 80, 1643, 10, 80, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 5, 82, 1650, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 3, 82, 5, 82, 1658, 10, 82, 3, 82, 3, 82, 3, 82, 3, 82, 7, 82, 1664, 10, 82, 12, 82, 14, 82, 1667, 11, 82, 5, 82, 1669, 10, 82, 3, 82, 5, 82, 1672, 10, 82, 3, 83, 3, 83, 3, 83, 5, 83, 1677, 10, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 7, 84, 1684, 10, 84, 12, 84, 14, 84, 1687, 11, 84, 3, 84, 5, 84, 1690, 10, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 5, 85, 1700, 10, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 1719, 10, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 5, 90, 1726, 10, 90, 5, 90, 1728, 10, 90, 3, 90, 3, 90, 5, 90, 1732, 10, 90, 3, 90, 3, 90, 5, 90, 1736, 10, 90, 3, 91, 3, 91, 3, 91, 3, 91, 7, 91, 1742, 10, 91, 12, 91, 14, 91, 1745, 11, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 7, 92, 1753, 10, 92, 12, 92, 14, 92, 1756, 11, 92, 3, 93, 3, 93, 3, 93, 3, 93, 7, 93, 1762, 10, 93, 12, 93, 14, 93, 1765, 11, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 5, 94, 1772, 10, 94, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 5, 95, 1780, 10, 95, 3, 95, 3, 95, 5, 95, 1784, 10, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 5, 97, 1792, 10, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 7, 100, 1808, 10, 100, 12, 100, 14, 100, 1811, 11, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 5, 102, 1824, 10, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 5, 103, 1831, 10, 103, 3, 103, 3, 103, 5, 103, 1835, 10, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 5, 104, 1842, 10, 104, 5, 104, 1844, 10, 104, 3, 105, 3, 105, 5, 105, 1848, 10, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 7, 105, 1855, 10, 105, 12, 105, 14, 105, 1858, 11, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 5, 106, 1865, 10, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 7, 107, 1872, 10, 107, 12, 107, 14, 107, 1875, 11, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 5, 110, 1890, 10, 110, 3, 110, 3, 110, 3, 110, 3, 110, 5, 110, 1896, 10, 110, 3, 110, 3, 110, 5, 110, 1900, 10, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1908, 10, 111, 12, 111, 14, 111, 1911, 11, 111, 3, 111, 3, 111, 3, 111, 7, 111, 1916, 10, 111, 12, 111, 14, 111, 1919, 11, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 5, 112, 1927, 10, 112, 3, 112, 3, 112, 5, 112, 1931, 10, 112, 3, 112, 3, 112, 7, 112, 1935, 10, 112, 12, 112, 14, 112, 1938, 11, 112, 3, 113, 3, 113, 5, 113, 1942, 10, 113, 3, 114, 3, 114, 5, 114, 1946, 10, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 5, 115, 1956, 10, 115, 3, 116, 3, 116, 3, 117, 3, 117, 5, 117, 1962, 10, 117, 3, 118, 3, 118, 5, 118, 1966, 10, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 7, 118, 1976, 10, 118, 12, 118, 14, 118, 1979, 11, 118, 3, 118, 3, 118, 3, 119, 3, 119, 5, 119, 1985, 10, 119, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 7, 121, 1999, 10, 121, 12, 121, 14, 121, 2002, 11, 121, 3, 121, 3, 121, 7, 121, 2006, 10, 121, 12, 121, 14, 121, 2009, 11, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 5, 122, 2018, 10, 122, 3, 123, 5, 123, 2021, 10, 123, 3, 123, 3, 123, 5, 123, 2025, 10, 123, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 5, 125, 2032, 10, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 5, 125, 2039, 10, 125, 5, 125, 2041, 10, 125, 3, 126, 3, 126, 5, 126, 2045, 10, 126, 3, 127, 3, 127, 5, 127, 2049, 10, 127, 3, 128, 3, 128, 3, 128, 5, 128, 2054, 10, 128, 3, 129, 5, 129, 2057, 10, 129, 3, 129, 3, 129, 5, 129, 2061, 10, 129, 3, 129, 5, 129, 2064, 10, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 5, 131, 2075, 10, 131, 3, 131, 5, 131, 2078, 10, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 5, 133, 2089, 10, 133, 3, 133, 3, 133, 3, 133, 3, 133, 5, 133, 2095, 10, 133, 3, 133, 3, 133, 5, 133, 2099, 10, 133, 5, 133, 2101, 10, 133, 3, 134, 3, 134, 5, 134, 2105, 10, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 5, 136, 2114, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2119, 10, 136, 12, 136, 14, 136, 2122, 11, 136, 3, 136, 5, 136, 2125, 10, 136, 3, 136, 3, 136, 5, 136, 2129, 10, 136, 3, 136, 3, 136, 3, 136, 7, 136, 2134, 10, 136, 12, 136, 14, 136, 2137, 11, 136, 3, 136, 5, 136, 2140, 10, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 5, 137, 2148, 10, 137, 3, 138, 3, 138, 3, 138, 3, 138, 5, 138, 2154, 10, 138, 3, 138, 3, 138, 5, 138, 2158, 10, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2169, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 5, 139, 2176, 10, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 5, 140, 2189, 10, 140, 3, 141, 3, 141, 3, 141, 3, 141, 7, 141, 2195, 10, 141, 12, 141, 14, 141, 2198, 11, 141, 3, 142, 5, 142, 2201, 10, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 7, 143, 2209, 10, 143, 12, 143, 14, 143, 2212, 11, 143, 3, 144, 3, 144, 5, 144, 2216, 10, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 7, 145, 2227, 10, 145, 12, 145, 14, 145, 2230, 11, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 7, 146, 2238, 10, 146, 12, 146, 14, 146, 2241, 11, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 5, 147, 2248, 10, 147, 3, 148, 3, 148, 5, 148, 2252, 10, 148, 3, 148, 3, 148, 5, 148, 2256, 10, 148, 3, 148, 3, 148, 5, 148, 2260, 10, 148, 5, 148, 2262, 10, 148, 3, 149, 3, 149, 3, 149, 5, 149, 2267, 10, 149, 3, 149, 5, 149, 2270, 10, 149, 3, 149, 5, 149, 2273, 10, 149, 3, 149, 5, 149, 2276, 10, 149, 3, 149, 3, 149, 5, 149, 2280, 10, 149, 3, 149, 5, 149, 2283, 10, 149, 3, 149, 5, 149, 2286, 10, 149, 3, 150, 5, 150, 2289, 10, 150, 3, 150, 5, 150, 2292, 10, 150, 3, 150, 3, 150, 3, 150, 7, 150, 2297, 10, 150, 12, 150, 14, 150, 2300, 11, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 5, 153, 2310, 10, 153, 3, 153, 3, 153, 5, 153, 2314, 10, 153, 3, 153, 5, 153, 2317, 10, 153, 3, 154, 3, 154, 5, 154, 2321, 10, 154, 3, 154, 3, 154, 3, 154, 3, 154, 3, 154, 5, 154, 2328, 10, 154, 3, 155, 3, 155, 5, 155, 2332, 10, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 7, 156, 2340, 10, 156, 12, 156, 14, 156, 2343, 11, 156, 3, 157, 3, 157, 3, 157, 7, 157, 2348, 10, 157, 12, 157, 14, 157, 2351, 11, 157, 3, 158, 3, 158, 3, 158, 5, 158, 2356, 10, 158, 3, 159, 3, 159, 5, 159, 2360, 10, 159, 3, 160, 3, 160, 3, 160, 3, 160, 5, 160, 2366, 10, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 5, 161, 2375, 10, 161, 3, 162, 5, 162, 2378, 10, 162, 3, 162, 3, 162, 3, 162, 5, 162, 2383, 10, 162, 3, 162, 5, 162, 2386, 10, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 7, 163, 2394, 10, 163, 12, 163, 14, 163, 2397, 11, 163, 3, 163, 3, 163, 5, 163, 2401, 10, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 7, 164, 2408, 10, 164, 12, 164, 14, 164, 2411, 11, 164, 3, 164, 3, 164, 5, 164, 2415, 10, 164, 3, 165, 3, 165, 5, 165, 2419, 10, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 7, 165, 2426, 10, 165, 12, 165, 14, 165, 2429, 11, 165, 3, 165, 5, 165, 2432, 10, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 7, 168, 2444, 10, 168, 12, 168, 14, 168, 2447, 11, 168, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2459, 10, 171, 3, 171, 3, 171, 3, 171, 5, 171, 2464, 10, 171, 7, 171, 2466, 10, 171, 12, 171, 14, 171, 2469, 11, 171, 3, 172, 6, 172, 2472, 10, 172, 13, 172, 14, 172, 2473, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 3, 173, 5, 173, 2485, 10, 173, 5, 173, 2487, 10, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 5, 174, 2494, 10, 174, 3, 174, 5, 174, 2497, 10, 174, 3, 175, 3, 175, 3, 175, 7, 175, 2502, 10, 175, 12, 175, 14, 175, 2505, 11, 175, 3, 176, 3, 176, 5, 176, 2509, 10, 176, 3, 176, 3, 176, 3, 176, 3, 176, 5, 176, 2515, 10, 176, 3, 176, 5, 176, 2518, 10, 176, 3, 176, 5, 176, 2521, 10, 176, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 6, 178, 2534, 10, 178, 13, 178, 14, 178, 2535, 3, 179, 3, 179, 3, 179, 3, 179, 3, 179, 5, 179, 2543, 10, 179, 3, 179, 5, 179, 2546, 10, 179, 3, 179, 5, 179, 2549, 10, 179, 3, 180, 3, 180, 5, 180, 2553, 10, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2558, 10, 180, 3, 180, 3, 180, 3, 180, 3, 180, 5, 180, 2564, 10, 180, 3, 181, 3, 181, 5, 181, 2568, 10, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 7, 181, 2577, 10, 181, 12, 181, 14, 181, 2580, 11, 181, 3, 181, 5, 181, 2583, 10, 181, 3, 181, 5, 181, 2586, 10, 181, 3, 182, 3, 182, 5, 182, 2590, 10, 182, 3, 182, 3, 182, 5, 182, 2594, 10, 182, 3, 182, 3, 182, 5, 182, 2598, 10, 182, 3, 183, 3, 183, 5, 183, 2602, 10, 183, 3, 183, 3, 183, 3, 184, 3, 184, 5, 184, 2608, 10, 184, 3, 184, 3, 184, 3, 185, 3, 185, 5, 185, 2614, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 5, 185, 2621, 10, 185, 3, 185, 3, 185, 3, 185, 3, 185, 7, 185, 2627, 10, 185, 12, 185, 14, 185, 2630, 11, 185, 3, 186, 3, 186, 3, 186, 5, 186, 2635, 10, 186, 3, 187, 3, 187, 3, 187, 5, 187, 2640, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2651, 10, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 5, 187, 2660, 10, 187, 3, 188, 3, 188, 5, 188, 2664, 10, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 7, 188, 2671, 10, 188, 12, 188, 14, 188, 2674, 11, 188, 3, 188, 5, 188, 2677, 10, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 7, 189, 2685, 10, 189, 12, 189, 14, 189, 2688, 11, 189, 3, 189, 3, 189, 5, 189, 2692, 10, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 5, 192, 2714, 10, 192, 3, 192, 5, 192, 2717, 10, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 5, 193, 2736, 10, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 7, 193, 2752, 10, 193, 12, 193, 14, 193, 2755, 11, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 5, 194, 2765, 10, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 7, 197, 2778, 10, 197, 12, 197, 14, 197, 2781, 11, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 5, 198, 2792, 10, 198, 3, 199, 3, 199, 5, 199, 2796, 10, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 6, 200, 2805, 10, 200, 13, 200, 14, 200, 2806, 3, 200, 3, 200, 5, 200, 2811, 10, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 3, 201, 6, 201, 2821, 10, 201, 13, 201, 14, 201, 2822, 3, 201, 3, 201, 5, 201, 2827, 10, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 5, 203, 2838, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2843, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2848, 10, 203, 3, 203, 3, 203, 5, 203, 2852, 10, 203, 3, 203, 3, 203, 5, 203, 2856, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2861, 10, 203, 3, 203, 3, 203, 5, 203, 2865, 10, 203, 3, 203, 3, 203, 5, 203, 2869, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2892, 10, 203, 5, 203, 2894, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2912, 10, 203, 5, 203, 2914, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2922, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2927, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2932, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2937, 10, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2950, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2955, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2960, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2965, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2970, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2975, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2980, 10, 203, 3, 203, 3, 203, 3, 203, 5, 203, 2985, 10, 203, 5, 203, 2987, 10, 203, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 5, 205, 2994, 10, 205, 3, 205, 5, 205, 2997, 10, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 7, 206, 3006, 10, 206, 12, 206, 14, 206, 3009, 11, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3018, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3026, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3035, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3041, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3056, 10, 207, 12, 207, 14, 207, 3059, 11, 207, 5, 207, 3061, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3075, 10, 207, 12, 207, 14, 207, 3078, 11, 207, 5, 207, 3080, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3094, 10, 207, 12, 207, 14, 207, 3097, 11, 207, 5, 207, 3099, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3113, 10, 207, 12, 207, 14, 207, 3116, 11, 207, 5, 207, 3118, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3132, 10, 207, 12, 207, 14, 207, 3135, 11, 207, 5, 207, 3137, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3151, 10, 207, 12, 207, 14, 207, 3154, 11, 207, 5, 207, 3156, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 7, 207, 3168, 10, 207, 12, 207, 14, 207, 3171, 11, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 6, 207, 3183, 10, 207, 13, 207, 14, 207, 3184, 3, 207, 3, 207, 5, 207, 3189, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3205, 10, 207, 3, 207, 3, 207, 3, 207, 3, 207, 5, 207, 3211, 10, 207, 3, 208, 3, 208, 3, 208, 5, 208, 3216, 10, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 7, 209, 3223, 10, 209, 12, 209, 14, 209, 3226, 11, 209, 3, 210, 3, 210, 3, 210, 3, 210, 5, 210, 3232, 10, 210, 5, 210, 3234, 10, 210, 3, 210, 3, 210, 3, 211, 3, 211, 5, 211, 3240, 10, 211, 3, 212, 3, 212, 5, 212, 3244, 10, 212, 3, 213, 3, 213, 7, 213, 3248, 10, 213, 12, 213, 14, 213, 3251, 11, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 5, 214, 3265, 10, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 5, 215, 3272, 10, 215, 3, 216, 7, 216, 3275, 10, 216, 12, 216, 14, 216, 3278, 11, 216, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 5, 218, 3287, 10, 218, 3, 218, 3, 218, 3, 218, 7, 218, 3292, 10, 218, 12, 218, 14, 218, 3295, 11, 218, 5, 218, 3297, 10, 218, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 5, 221, 3307, 10, 221, 3, 221, 3, 221, 3, 221, 5, 221, 3312, 10, 221, 7, 221, 3314, 10, 221, 12, 221, 14, 221, 3317, 11, 221, 3, 222, 3, 222, 5, 222, 3321, 10, 222, 3, 223, 5, 223, 3324, 10, 223, 3, 223, 3, 223, 3, 224, 5, 224, 3329, 10, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 3276, 4, 368, 384, 228, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, 376, 378, 380, 382, 384, 386, 388, 390, 392, 394, 396, 398, 400, 402, 404, 406, 408, 410, 412, 414, 416, 418, 420, 422, 424, 426, 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 448, 450, 452, 2, 51, 6, 2, 345, 345, 350, 350, 360, 360, 367, 367, 4, 2, 95, 95, 308, 308, 3, 2, 165, 166, 5, 2, 11, 11, 112, 112, 150, 150, 4, 2, 30, 30, 38, 38, 4, 2, 52, 52, 104, 104, 4, 2, 181, 181, 253, 253, 4, 2, 12, 12, 80, 80, 4, 2, 77, 77, 297, 297, 4, 2, 105, 105, 168, 168, 4, 2, 77, 77, 213, 213, 4, 2, 73, 73, 133, 133, 5, 2, 137, 137, 175, 175, 209, 210, 4, 2, 170, 170, 188, 188, 4, 2, 185, 185, 316, 316, 4, 2, 240, 240, 294, 294, 4, 2, 174, 174, 372, 372, 4, 2, 28, 28, 35, 35, 4, 2, 33, 33, 59, 59, 4, 2, 63, 63, 246, 246, 4, 2, 11, 11, 150, 150, 3, 2, 231, 232, 3, 2, 216, 217, 6, 2, 58, 58, 75, 75, 149, 149, 206, 206, 3, 2, 99, 100, 3, 2, 92, 93, 3, 2, 269, 270, 4, 2, 241, 241, 277, 277, 5, 2, 77, 77, 132, 132, 205, 205, 6, 2, 9, 10, 186, 186, 221, 221, 314, 314, 3, 2, 196, 197, 4, 2, 254, 254, 291, 291, 6, 2, 18, 18, 87, 87, 171, 171, 285, 285, 4, 2, 171, 171, 310, 310, 4, 2, 27, 27, 271, 271, 3, 2, 251, 252, 4, 2, 5, 5, 85, 85, 5, 2, 117, 117, 159, 159, 234, 234, 5, 2, 59, 59, 242, 243, 298, 298, 5, 2, 102, 102, 257, 257, 297, 297, 3, 2, 80, 81, 4, 2, 8, 8, 200, 200, 5, 2, 160, 160, 225, 225, 235, 235, 5, 2, 67, 68, 178, 179, 247, 248, 4, 2, 49, 49, 344, 344, 5, 2, 115, 115, 151, 151, 191, 191, 4, 2, 341, 341, 368, 368, 4, 2, 106, 106, 292, 292, 14, 2, 3, 22, 24, 90, 94, 94, 96, 191, 193, 210, 212, 239, 241, 260, 262, 286, 288, 293, 296, 307, 310, 326, 333, 340, 2, 3763, 2, 454, 3, 2, 2, 2, 4, 464, 3, 2, 2, 2, 6, 469, 3, 2, 2, 2, 8, 489, 3, 2, 2, 2, 10, 491, 3, 2, 2, 2, 12, 503, 3, 2, 2, 2, 14, 566, 3, 2, 2, 2, 16, 568, 3, 2, 2, 2, 18, 570, 3, 2, 2, 2, 20, 576, 3, 2, 2, 2, 22, 582, 3, 2, 2, 2, 24, 584, 3, 2, 2, 2, 26, 600, 3, 2, 2, 2, 28, 605, 3, 2, 2, 2, 30, 623, 3, 2, 2, 2, 32, 625, 3, 2, 2, 2, 34, 662, 3, 2, 2, 2, 36, 672, 3, 2, 2, 2, 38, 683, 3, 2, 2, 2, 40, 703, 3, 2, 2, 2, 42, 706, 3, 2, 2, 2, 44, 708, 3, 2, 2, 2, 46, 718, 3, 2, 2, 2, 48, 727, 3, 2, 2, 2, 50, 738, 3, 2, 2, 2, 52, 753, 3, 2, 2, 2, 54, 790, 3, 2, 2, 2, 56, 792, 3, 2, 2, 2, 58, 800, 3, 2, 2, 2, 60, 811, 3, 2, 2, 2, 62, 820, 3, 2, 2, 2, 64, 823, 3, 2, 2, 2, 66, 836, 3, 2, 2, 2, 68, 846, 3, 2, 2, 2, 70, 859, 3, 2, 2, 2, 72, 890, 3, 2, 2, 2, 74, 895, 3, 2, 2, 2, 76, 925, 3, 2, 2, 2, 78, 927, 3, 2, 2, 2, 80, 961, 3, 2, 2, 2, 82, 1020, 3, 2, 2, 2, 84, 1022, 3, 2, 2, 2, 86, 1035, 3, 2, 2, 2, 88, 1042, 3, 2, 2, 2, 90, 1045, 3, 2, 2, 2, 92, 1050, 3, 2, 2, 2, 94, 1064, 3, 2, 2, 2, 96, 1084, 3, 2, 2, 2, 98, 1119, 3, 2, 2, 2, 100, 1139, 3, 2, 2, 2, 102, 1145, 3, 2, 2, 2, 104, 1147, 3, 2, 2, 2, 106, 1183, 3, 2, 2, 2, 108, 1189, 3, 2, 2, 2, 110, 1218, 3, 2, 2, 2, 112, 1220, 3, 2, 2, 2, 114, 1225, 3, 2, 2, 2, 116, 1227, 3, 2, 2, 2, 118, 1296, 3, 2, 2, 2, 120, 1343, 3, 2, 2, 2, 122, 1345, 3, 2, 2, 2, 124, 1367, 3, 2, 2, 2, 126, 1381, 3, 2, 2, 2, 128, 1383, 3, 2, 2, 2, 130, 1401, 3, 2, 2, 2, 132, 1410, 3, 2, 2, 2, 134, 1426, 3, 2, 2, 2, 136, 1438, 3, 2, 2, 2, 138, 1450, 3, 2, 2, 2, 140, 1473, 3, 2, 2, 2, 142, 1482, 3, 2, 2, 2, 144, 1495, 3, 2, 2, 2, 146, 1508, 3, 2, 2, 2, 148, 1517, 3, 2, 2, 2, 150, 1564, 3, 2, 2, 2, 152, 1608, 3, 2, 2, 2, 154, 1611, 3, 2, 2, 2, 156, 1626, 3, 2, 2, 2, 158, 1642, 3, 2, 2, 2, 160, 1644, 3, 2, 2, 2, 162, 1647, 3, 2, 2, 2, 164, 1676, 3, 2, 2, 2, 166, 1678, 3, 2, 2, 2, 168, 1694, 3, 2, 2, 2, 170, 1701, 3, 2, 2, 2, 172, 1707, 3, 2, 2, 2, 174, 1712, 3, 2, 2, 2, 176, 1715, 3, 2, 2, 2, 178, 1720, 3, 2, 2, 2, 180, 1737, 3, 2, 2, 2, 182, 1748, 3, 2, 2, 2, 184, 1757, 3, 2, 2, 2, 186, 1768, 3, 2, 2, 2, 188, 1777, 3, 2, 2, 2, 190, 1785, 3, 2, 2, 2, 192, 1791, 3, 2, 2, 2, 194, 1793, 3, 2, 2, 2, 196, 1799, 3, 2, 2, 2, 198, 1803, 3, 2, 2, 2, 200, 1816, 3, 2, 2, 2, 202, 1821, 3, 2, 2, 2, 204, 1825, 3, 2, 2, 2, 206, 1836, 3, 2, 2, 2, 208, 1845, 3, 2, 2, 2, 210, 1859, 3, 2, 2, 2, 212, 1866, 3, 2, 2, 2, 214, 1878, 3, 2, 2, 2, 216, 1881, 3, 2, 2, 2, 218, 1895, 3, 2, 2, 2, 220, 1901, 3, 2, 2, 2, 222, 1920, 3, 2, 2, 2, 224, 1941, 3, 2, 2, 2, 226, 1945, 3, 2, 2, 2, 228, 1955, 3, 2, 2, 2, 230, 1957, 3, 2, 2, 2, 232, 1959, 3, 2, 2, 2, 234, 1963, 3, 2, 2, 2, 236, 1982, 3, 2, 2, 2, 238, 1986, 3, 2, 2, 2, 240, 1988, 3, 2, 2, 2, 242, 2017, 3, 2, 2, 2, 244, 2020, 3, 2, 2, 2, 246, 2026, 3, 2, 2, 2, 248, 2028, 3, 2, 2, 2, 250, 2042, 3, 2, 2, 2, 252, 2046, 3, 2, 2, 2, 254, 2053, 3, 2, 2, 2, 256, 2060, 3, 2, 2, 2, 258, 2067, 3, 2, 2, 2, 260, 2070, 3, 2, 2, 2, 262, 2082, 3, 2, 2, 2, 264, 2085, 3, 2, 2, 2, 266, 2102, 3, 2, 2, 2, 268, 2108, 3, 2, 2, 2, 270, 2111, 3, 2, 2, 2, 272, 2141, 3, 2, 2, 2, 274, 2149, 3, 2, 2, 2, 276, 2164, 3, 2, 2, 2, 278, 2188, 3, 2, 2, 2, 280, 2190, 3, 2, 2, 2, 282, 2200, 3, 2, 2, 2, 284, 2204, 3, 2, 2, 2, 286, 2213, 3, 2, 2, 2, 288, 2222, 3, 2, 2, 2, 290, 2233, 3, 2, 2, 2, 292, 2247, 3, 2, 2, 2, 294, 2261, 3, 2, 2, 2, 296, 2263, 3, 2, 2, 2, 298, 2288, 3, 2, 2, 2, 300, 2301, 3, 2, 2, 2, 302, 2303, 3, 2, 2, 2, 304, 2316, 3, 2, 2, 2, 306, 2327, 3, 2, 2, 2, 308, 2331, 3, 2, 2, 2, 310, 2335, 3, 2, 2, 2, 312, 2344, 3, 2, 2, 2, 314, 2355, 3, 2, 2, 2, 316, 2357, 3, 2, 2, 2, 318, 2361, 3, 2, 2, 2, 320, 2374, 3, 2, 2, 2, 322, 2385, 3, 2, 2, 2, 324, 2387, 3, 2, 2, 2, 326, 2414, 3, 2, 2, 2, 328, 2416, 3, 2, 2, 2, 330, 2433, 3, 2, 2, 2, 332, 2435, 3, 2, 2, 2, 334, 2438, 3, 2, 2, 2, 336, 2448, 3, 2, 2, 2, 338, 2451, 3, 2, 2, 2, 340, 2454, 3, 2, 2, 2, 342, 2471, 3, 2, 2, 2, 344, 2486, 3, 2, 2, 2, 346, 2488, 3, 2, 2, 2, 348, 2498, 3, 2, 2, 2, 350, 2514, 3, 2, 2, 2, 352, 2522, 3, 2, 2, 2, 354, 2525, 3, 2, 2, 2, 356, 2542, 3, 2, 2, 2, 358, 2563, 3, 2, 2, 2, 360, 2585, 3, 2, 2, 2, 362, 2587, 3, 2, 2, 2, 364, 2599, 3, 2, 2, 2, 366, 2605, 3, 2, 2, 2, 368, 2620, 3, 2, 2, 2, 370, 2634, 3, 2, 2, 2, 372, 2659, 3, 2, 2, 2, 374, 2661, 3, 2, 2, 2, 376, 2680, 3, 2, 2, 2, 378, 2698, 3, 2, 2, 2, 380, 2702, 3, 2, 2, 2, 382, 2716, 3, 2, 2, 2, 384, 2735, 3, 2, 2, 2, 386, 2764, 3, 2, 2, 2, 388, 2766, 3, 2, 2, 2, 390, 2770, 3, 2, 2, 2, 392, 2772, 3, 2, 2, 2, 394, 2791, 3, 2, 2, 2, 396, 2795, 3, 2, 2, 2, 398, 2797, 3, 2, 2, 2, 400, 2814, 3, 2, 2, 2, 402, 2830, 3, 2, 2, 2, 404, 2986, 3, 2, 2, 2, 406, 2988, 3, 2, 2, 2, 408, 2990, 3, 2, 2, 2, 410, 3000, 3, 2, 2, 2, 412, 3210, 3, 2, 2, 2, 414, 3212, 3, 2, 2, 2, 416, 3219, 3, 2, 2, 2, 418, 3227, 3, 2, 2, 2, 420, 3239, 3, 2, 2, 2, 422, 3243, 3, 2, 2, 2, 424, 3245, 3, 2, 2, 2, 426, 3264, 3, 2, 2, 2, 428, 3271, 3, 2, 2, 2, 430, 3276, 3, 2, 2, 2, 432, 3279, 3, 2, 2, 2, 434, 3296, 3, 2, 2, 2, 436, 3298, 3, 2, 2, 2, 438, 3301, 3, 2, 2, 2, 440, 3306, 3, 2, 2, 2, 442, 3320, 3, 2, 2, 2, 444, 3323, 3, 2, 2, 2, 446, 3328, 3, 2, 2, 2, 448, 3332, 3, 2, 2, 2, 450, 3334, 3, 2, 2, 2, 452, 3336, 3, 2, 2, 2, 454, 455, 5, 4, 3, 2, 455, 456, 7, 2, 2, 3, 456, 3, 3, 2, 2, 2, 457, 460, 5, 6, 4, 2, 458, 460, 5, 14, 8, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 462, 3, 2, 2, 2, 461, 463, 7, 121, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 465, 3, 2, 2, 2, 464, 459, 3, 2, 2, 2, 465, 466, 3, 2, 2, 2, 466, 464, 3, 2, 2, 2, 466, 467, 3, 2, 2, 2, 467, 5, 3, 2, 2, 2, 468, 470, 5, 48, 25, 2, 469, 468, 3, 2, 2, 2, 469, 470, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 7, 18, 2, 2, 472, 474, 5, 4, 3, 2, 473, 475, 5, 18, 10, 2, 474, 473, 3, 2, 2, 2, 474, 475, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 5, 10, 6, 2, 477, 7, 3, 2, 2, 2, 478, 479, 7, 18, 2, 2, 479, 481, 5, 4, 3, 2, 480, 482, 5, 18, 10, 2, 481, 480, 3, 2, 2, 2, 481, 482, 3, 2, 2, 2, 482, 483, 3, 2, 2, 2, 483, 484, 5, 10, 6, 2, 484, 490, 3, 2, 2, 2, 485, 487, 5, 14, 8, 2, 486, 488, 7, 367, 2, 2, 487, 486, 3, 2, 2, 2, 487, 488, 3, 2, 2, 2, 488, 490, 3, 2, 2, 2, 489, 478, 3, 2, 2, 2, 489, 485, 3, 2, 2, 2, 490, 9, 3, 2, 2, 2, 491, 492, 6, 6, 2, 2, 492, 493, 7, 95, 2, 2, 493, 11, 3, 2, 2, 2, 494, 504, 5, 6, 4, 2, 495, 497, 5, 14, 8, 2, 496, 495, 3, 2, 2, 2, 497, 498, 3, 2, 2, 2, 498, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 501, 3, 2, 2, 2, 500, 502, 7, 121, 2, 2, 501, 500, 3, 2, 2, 2, 501, 502, 3, 2, 2, 2, 502, 504, 3, 2, 2, 2, 503, 494, 3, 2, 2, 2, 503, 496, 3, 2, 2, 2, 504, 13, 3, 2, 2, 2, 505, 567, 5, 26, 14, 2, 506, 567, 5, 36, 19, 2, 507, 567, 5, 112, 57, 2, 508, 567, 5, 38, 20, 2, 509, 567, 5, 40, 21, 2, 510, 567, 5, 42, 22, 2, 511, 567, 5, 44, 23, 2, 512, 567, 5, 210, 106, 2, 513, 567, 5, 214, 108, 2, 514, 567, 5, 216, 109, 2, 515, 567, 5, 220, 111, 2, 516, 567, 5, 222, 112, 2, 517, 567, 5, 232, 117, 2, 518, 567, 5, 128, 65, 2, 519, 567, 5, 132, 67, 2, 520, 567, 5, 234, 118, 2, 521, 567, 5, 70, 36, 2, 522, 567, 5, 136, 69, 2, 523, 567, 5, 142, 72, 2, 524, 567, 5, 148, 75, 2, 525, 567, 5, 68, 35, 2, 526, 567, 5, 46, 24, 2, 527, 567, 5, 362, 182, 2, 528, 567, 5, 366, 184, 2, 529, 567, 5, 158, 80, 2, 530, 567, 5, 160, 81, 2, 531, 567, 5, 162, 82, 2, 532, 567, 5, 188, 95, 2, 533, 567, 5, 208, 105, 2, 534, 567, 5, 274, 138, 2, 535, 567, 5, 276, 139, 2, 536, 567, 5, 164, 83, 2, 537, 567, 5, 176, 89, 2, 538, 567, 5, 178, 90, 2, 539, 567, 5, 186, 94, 2, 540, 567, 5, 190, 96, 2, 541, 567, 5, 198, 100, 2, 542, 567, 5, 202, 102, 2, 543, 567, 5, 204, 103, 2, 544, 567, 5, 354, 178, 2, 545, 567, 5, 206, 104, 2, 546, 567, 5, 242, 122, 2, 547, 567, 5, 244, 123, 2, 548, 567, 5, 246, 124, 2, 549, 567, 5, 248, 125, 2, 550, 567, 5, 250, 126, 2, 551, 567, 5, 252, 127, 2, 552, 567, 5, 282, 142, 2, 553, 567, 5, 262, 132, 2, 554, 567, 5, 264, 133, 2, 555, 567, 5, 346, 174, 2, 556, 567, 5, 268, 135, 2, 557, 567, 5, 266, 134, 2, 558, 567, 5, 270, 136, 2, 559, 567, 5, 272, 137, 2, 560, 567, 5, 278, 140, 2, 561, 567, 5, 424, 213, 2, 562, 567, 5, 428, 215, 2, 563, 567, 5, 22, 12, 2, 564, 567, 5, 24, 13, 2, 565, 567, 5, 16, 9, 2, 566, 505, 3, 2, 2, 2, 566, 506, 3, 2, 2, 2, 566, 507, 3, 2, 2, 2, 566, 508, 3, 2, 2, 2, 566, 509, 3, 2, 2, 2, 566, 510, 3, 2, 2, 2, 566, 511, 3, 2, 2, 2, 566, 512, 3, 2, 2, 2, 566, 513, 3, 2, 2, 2, 566, 514, 3, 2, 2, 2, 566, 515, 3, 2, 2, 2, 566, 516, 3, 2, 2, 2, 566, 517, 3, 2, 2, 2, 566, 518, 3, 2, 2, 2, 566, 519, 3, 2, 2, 2, 566, 520, 3, 2, 2, 2, 566, 521, 3, 2, 2, 2, 566, 522, 3, 2, 2, 2, 566, 523, 3, 2, 2, 2, 566, 524, 3, 2, 2, 2, 566, 525, 3, 2, 2, 2, 566, 526, 3, 2, 2, 2, 566, 527, 3, 2, 2, 2, 566, 528, 3, 2, 2, 2, 566, 529, 3, 2, 2, 2, 566, 530, 3, 2, 2, 2, 566, 531, 3, 2, 2, 2, 566, 532, 3, 2, 2, 2, 566, 533, 3, 2, 2, 2, 566, 534, 3, 2, 2, 2, 566, 535, 3, 2, 2, 2, 566, 536, 3, 2, 2, 2, 566, 537, 3, 2, 2, 2, 566, 538, 3, 2, 2, 2, 566, 539, 3, 2, 2, 2, 566, 540, 3, 2, 2, 2, 566, 541, 3, 2, 2, 2, 566, 542, 3, 2, 2, 2, 566, 543, 3, 2, 2, 2, 566, 544, 3, 2, 2, 2, 566, 545, 3, 2, 2, 2, 566, 546, 3, 2, 2, 2, 566, 547, 3, 2, 2, 2, 566, 548, 3, 2, 2, 2, 566, 549, 3, 2, 2, 2, 566, 550, 3, 2, 2, 2, 566, 551, 3, 2, 2, 2, 566, 552, 3, 2, 2, 2, 566, 553, 3, 2, 2, 2, 566, 554, 3, 2, 2, 2, 566, 555, 3, 2, 2, 2, 566, 556, 3, 2, 2, 2, 566, 557, 3, 2, 2, 2, 566, 558, 3, 2, 2, 2, 566, 559, 3, 2, 2, 2, 566, 560, 3, 2, 2, 2, 566, 561, 3, 2, 2, 2, 566, 562, 3, 2, 2, 2, 566, 563, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 565, 3, 2, 2, 2, 567, 15, 3, 2, 2, 2, 568, 569, 9, 2, 2, 2, 569, 17, 3, 2, 2, 2, 570, 572, 7, 101, 2, 2, 571, 573, 5, 20, 11, 2, 572, 571, 3, 2, 2, 2, 573, 574, 3, 2, 2, 2, 574, 572, 3, 2, 2, 2, 574, 575, 3, 2, 2, 2, 575, 19, 3, 2, 2, 2, 576, 577, 7, 308, 2, 2, 577, 578, 7, 369, 2, 2, 578, 579, 7, 285, 2, 2, 579, 580, 5, 4, 3, 2, 580, 581, 10, 3, 2, 2, 581, 21, 3, 2, 2, 2, 582, 583, 7, 192, 2, 2, 583, 23, 3, 2, 2, 2, 584, 585, 6, 13, 3, 2, 585, 586, 5, 384, 193, 2, 586, 25, 3, 2, 2, 2, 587, 588, 7, 253, 2, 2, 588, 601, 5, 254, 128, 2, 589, 591, 7, 253, 2, 2, 590, 589, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 597, 5, 28, 15, 2, 593, 594, 7, 343, 2, 2, 594, 596, 5, 28, 15, 2, 595, 593, 3, 2, 2, 2, 596, 599, 3, 2, 2, 2, 597, 595, 3, 2, 2, 2, 597, 598, 3, 2, 2, 2, 598, 601, 3, 2, 2, 2, 599, 597, 3, 2, 2, 2, 600, 587, 3, 2, 2, 2, 600, 590, 3, 2, 2, 2, 601, 27, 3, 2, 2, 2, 602, 606, 5, 30, 16, 2, 603, 606, 5, 32, 17, 2, 604, 606, 5, 34, 18, 2, 605, 602, 3, 2, 2, 2, 605, 603, 3, 2, 2, 2, 605, 604, 3, 2, 2, 2, 606, 29, 3, 2, 2, 2, 607, 609, 5, 440, 221, 2, 608, 610, 7, 342, 2, 2, 609, 608, 3, 2, 2, 2, 609, 610, 3, 2, 2, 2, 610, 611, 3, 2, 2, 2, 611, 612, 7, 348, 2, 2, 612, 613, 5, 384, 193, 2, 613, 624, 3, 2, 2, 2, 614, 615, 7, 362, 2, 2, 615, 616, 5, 440, 221, 2, 616, 618, 7, 365, 2, 2, 617, 619, 7, 342, 2, 2, 618, 617, 3, 2, 2, 2, 618, 619, 3, 2, 2, 2, 619, 620, 3, 2, 2, 2, 620, 621, 7, 348, 2, 2, 621, 622, 5, 384, 193, 2, 622, 624, 3, 2, 2, 2, 623, 607, 3, 2, 2, 2, 623, 614, 3, 2, 2, 2, 624, 31, 3, 2, 2, 2, 625, 626, 7, 362, 2, 2, 626, 631, 5, 440, 221, 2, 627, 628, 7, 343, 2, 2, 628, 630, 5, 440, 221, 2, 629, 627, 3, 2, 2, 2, 630, 633, 3, 2, 2, 2, 631, 629, 3, 2, 2, 2, 631, 632, 3, 2, 2, 2, 632, 634, 3, 2, 2, 2, 633, 631, 3, 2, 2, 2, 634, 636, 7, 365, 2, 2, 635, 637, 7, 342, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 638, 3, 2, 2, 2, 638, 639, 7, 348, 2, 2, 639, 640, 7, 362, 2, 2, 640, 645, 5, 384, 193, 2, 641, 642, 7, 343, 2, 2, 642, 644, 5, 384, 193, 2, 643, 641, 3, 2, 2, 2, 644, 647, 3, 2, 2, 2, 645, 643, 3, 2, 2, 2, 645, 646, 3, 2, 2, 2, 646, 648, 3, 2, 2, 2, 647, 645, 3, 2, 2, 2, 648, 649, 7, 365, 2, 2, 649, 33, 3, 2, 2, 2, 650, 663, 5, 440, 221, 2, 651, 652, 7, 362, 2, 2, 652, 657, 5, 440, 221, 2, 653, 654, 7, 343, 2, 2, 654, 656, 5, 440, 221, 2, 655, 653, 3, 2, 2, 2, 656, 659, 3, 2, 2, 2, 657, 655, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 657, 3, 2, 2, 2, 660, 661, 7, 365, 2, 2, 661, 663, 3, 2, 2, 2, 662, 650, 3, 2, 2, 2, 662, 651, 3, 2, 2, 2, 663, 665, 3, 2, 2, 2, 664, 666, 7, 342, 2, 2, 665, 664, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 668, 7, 348, 2, 2, 668, 669, 7, 362, 2, 2, 669, 670, 5, 282, 142, 2, 670, 671, 7, 365, 2, 2, 671, 35, 3, 2, 2, 2, 672, 673, 7, 6, 2, 2, 673, 674, 5, 440, 221, 2, 674, 675, 7, 62, 2, 2, 675, 679, 7, 112, 2, 2, 676, 677, 7, 229, 2, 2, 677, 680, 7, 253, 2, 2, 678, 680, 7, 217, 2, 2, 679, 676, 3, 2, 2, 2, 679, 678, 3, 2, 2, 2, 680, 681, 3, 2, 2, 2, 681, 682, 5, 440, 221, 2, 682, 37, 3, 2, 2, 2, 683, 686, 7, 13, 2, 2, 684, 685, 7, 229, 2, 2, 685, 687, 7, 253, 2, 2, 686, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 689, 9, 4, 2, 2, 689, 690, 7, 362, 2, 2, 690, 695, 5, 440, 221, 2, 691, 692, 7, 343, 2, 2, 692, 694, 5, 440, 221, 2, 693, 691, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 695, 696, 3, 2, 2, 2, 696, 698, 3, 2, 2, 2, 697, 695, 3, 2, 2, 2, 698, 699, 7, 365, 2, 2, 699, 700, 7, 311, 2, 2, 700, 701, 7, 217, 2, 2, 701, 702, 5, 440, 221, 2, 702, 39, 3, 2, 2, 2, 703, 704, 7, 18, 2, 2, 704, 705, 7, 291, 2, 2, 705, 41, 3, 2, 2, 2, 706, 707, 7, 26, 2, 2, 707, 43, 3, 2, 2, 2, 708, 709, 7, 29, 2, 2, 709, 716, 5, 440, 221, 2, 710, 712, 7, 362, 2, 2, 711, 713, 5, 416, 209, 2, 712, 711, 3, 2, 2, 2, 712, 713, 3, 2, 2, 2, 713, 714, 3, 2, 2, 2, 714, 717, 7, 365, 2, 2, 715, 717, 5, 416, 209, 2, 716, 710, 3, 2, 2, 2, 716, 715, 3, 2, 2, 2, 716, 717, 3, 2, 2, 2, 717, 45, 3, 2, 2, 2, 718, 719, 7, 71, 2, 2, 719, 724, 5, 52, 27, 2, 720, 721, 7, 343, 2, 2, 721, 723, 5, 52, 27, 2, 722, 720, 3, 2, 2, 2, 723, 726, 3, 2, 2, 2, 724, 722, 3, 2, 2, 2, 724, 725, 3, 2, 2, 2, 725, 47, 3, 2, 2, 2, 726, 724, 3, 2, 2, 2, 727, 728, 7, 71, 2, 2, 728, 729, 5, 52, 27, 2, 729, 735, 7, 367, 2, 2, 730, 731, 5, 52, 27, 2, 731, 732, 7, 367, 2, 2, 732, 734, 3, 2, 2, 2, 733, 730, 3, 2, 2, 2, 734, 737, 3, 2, 2, 2, 735, 733, 3, 2, 2, 2, 735, 736, 3, 2, 2, 2, 736, 49, 3, 2, 2, 2, 737, 735, 3, 2, 2, 2, 738, 739, 5, 52, 27, 2, 739, 745, 7, 367, 2, 2, 740, 741, 5, 52, 27, 2, 741, 742, 7, 367, 2, 2, 742, 744, 3, 2, 2, 2, 743, 740, 3, 2, 2, 2, 744, 747, 3, 2, 2, 2, 745, 743, 3, 2, 2, 2, 745, 746, 3, 2, 2, 2, 746, 51, 3, 2, 2, 2, 747, 745, 3, 2, 2, 2, 748, 754, 5, 58, 30, 2, 749, 754, 5, 56, 29, 2, 750, 754, 5, 64, 33, 2, 751, 754, 5, 54, 28, 2, 752, 754, 5, 66, 34, 2, 753, 748, 3, 2, 2, 2, 753, 749, 3, 2, 2, 2, 753, 750, 3, 2, 2, 2, 753, 751, 3, 2, 2, 2, 753, 752, 3, 2, 2, 2, 754, 53, 3, 2, 2, 2, 755, 760, 5, 440, 221, 2, 756, 757, 7, 343, 2, 2, 757, 759, 5, 440, 221, 2, 758, 756, 3, 2, 2, 2, 759, 762, 3, 2, 2, 2, 760, 758, 3, 2, 2, 2, 760, 761, 3, 2, 2, 2, 761, 764, 3, 2, 2, 2, 762, 760, 3, 2, 2, 2, 763, 765, 7, 11, 2, 2, 764, 763, 3, 2, 2, 2, 764, 765, 3, 2, 2, 2, 765, 766, 3, 2, 2, 2, 766, 768, 5, 120, 61, 2, 767, 769, 5, 122, 62, 2, 768, 767, 3, 2, 2, 2, 768, 769, 3, 2, 2, 2, 769, 773, 3, 2, 2, 2, 770, 772, 5, 124, 63, 2, 771, 770, 3, 2, 2, 2, 772, 775, 3, 2, 2, 2, 773, 771, 3, 2, 2, 2, 773, 774, 3, 2, 2, 2, 774, 777, 3, 2, 2, 2, 775, 773, 3, 2, 2, 2, 776, 778, 5, 126, 64, 2, 777, 776, 3, 2, 2, 2, 777, 778, 3, 2, 2, 2, 778, 791, 3, 2, 2, 2, 779, 780, 5, 440, 221, 2, 780, 782, 7, 46, 2, 2, 781, 783, 7, 11, 2, 2, 782, 781, 3, 2, 2, 2, 782, 783, 3, 2, 2, 2, 783, 784, 3, 2, 2, 2, 784, 786, 5, 120, 61, 2, 785, 787, 5, 122, 62, 2, 786, 785, 3, 2, 2, 2, 786, 787, 3, 2, 2, 2, 787, 788, 3, 2, 2, 2, 788, 789, 5, 126, 64, 2, 789, 791, 3, 2, 2, 2, 790, 755, 3, 2, 2, 2, 790, 779, 3, 2, 2, 2, 791, 55, 3, 2, 2, 2, 792, 793, 5, 440, 221, 2, 793, 794, 7, 50, 2, 2, 794, 57, 3, 2, 2, 2, 795, 796, 7, 62, 2, 2, 796, 801, 5, 440, 221, 2, 797, 798, 5, 440, 221, 2, 798, 799, 7, 62, 2, 2, 799, 801, 3, 2, 2, 2, 800, 795, 3, 2, 2, 2, 800, 797, 3, 2, 2, 2, 801, 804, 3, 2, 2, 2, 802, 805, 5, 60, 31, 2, 803, 805, 5, 62, 32, 2, 804, 802, 3, 2, 2, 2, 804, 803, 3, 2, 2, 2, 804, 805, 3, 2, 2, 2, 805, 806, 3, 2, 2, 2, 806, 809, 9, 5, 2, 2, 807, 810, 5, 282, 142, 2, 808, 810, 5, 384, 193, 2, 809, 807, 3, 2, 2, 2, 809, 808, 3, 2, 2, 2, 810, 59, 3, 2, 2, 2, 811, 812, 7, 311, 2, 2, 812, 814, 7, 231, 2, 2, 813, 815, 7, 198, 2, 2, 814, 813, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 818, 3, 2, 2, 2, 816, 817, 7, 289, 2, 2, 817, 819, 9, 6, 2, 2, 818, 816, 3, 2, 2, 2, 818, 819, 3, 2, 2, 2, 819, 61, 3, 2, 2, 2, 820, 821, 7, 312, 2, 2, 821, 822, 7, 231, 2, 2, 822, 63, 3, 2, 2, 2, 823, 824, 9, 7, 2, 2, 824, 825, 7, 124, 2, 2, 825, 831, 7, 112, 2, 2, 826, 832, 7, 265, 2, 2, 827, 832, 7, 268, 2, 2, 828, 829, 7, 190, 2, 2, 829, 832, 7, 115, 2, 2, 830, 832, 5, 440, 221, 2, 831, 826, 3, 2, 2, 2, 831, 827, 3, 2, 2, 2, 831, 828, 3, 2, 2, 2, 831, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 5, 8, 5, 2, 834, 65, 3, 2, 2, 2, 835, 837, 7, 120, 2, 2, 836, 835, 3, 2, 2, 2, 836, 837, 3, 2, 2, 2, 837, 838, 3, 2, 2, 2, 838, 839, 7, 282, 2, 2, 839, 840, 7, 280, 2, 2, 840, 842, 5, 440, 221, 2, 841, 843, 5, 86, 44, 2, 842, 841, 3, 2, 2, 2, 842, 843, 3, 2, 2, 2, 843, 844, 3, 2, 2, 2, 844, 845, 5, 72, 37, 2, 845, 67, 3, 2, 2, 2, 846, 847, 7, 56, 2, 2, 847, 851, 7, 280, 2, 2, 848, 849, 7, 131, 2, 2, 849, 850, 7, 190, 2, 2, 850, 852, 7, 103, 2, 2, 851, 848, 3, 2, 2, 2, 851, 852, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 855, 5, 330, 166, 2, 854, 856, 5, 86, 44, 2, 855, 854, 3, 2, 2, 2, 855, 856, 3, 2, 2, 2, 856, 857, 3, 2, 2, 2, 857, 858, 5, 72, 37, 2, 858, 69, 3, 2, 2, 2, 859, 866, 7, 56, 2, 2, 860, 861, 7, 163, 2, 2, 861, 867, 7, 282, 2, 2, 862, 864, 9, 8, 2, 2, 863, 862, 3, 2, 2, 2, 863, 864, 3, 2, 2, 2, 864, 865, 3, 2, 2, 2, 865, 867, 7, 307, 2, 2, 866, 860, 3, 2, 2, 2, 866, 863, 3, 2, 2, 2, 867, 868, 3, 2, 2, 2, 868, 869, 7, 280, 2, 2, 869, 871, 5, 440, 221, 2, 870, 872, 5, 86, 44, 2, 871, 870, 3, 2, 2, 2, 871, 872, 3, 2, 2, 2, 872, 873, 3, 2, 2, 2, 873, 874, 5, 72, 37, 2, 874, 71, 3, 2, 2, 2, 875, 877, 7, 11, 2, 2, 876, 875, 3, 2, 2, 2, 876, 877, 3, 2, 2, 2, 877, 878, 3, 2, 2, 2, 878, 879, 7, 362, 2, 2, 879, 880, 5, 282, 142, 2, 880, 881, 7, 365, 2, 2, 881, 891, 3, 2, 2, 2, 882, 884, 7, 11, 2, 2, 883, 882, 3, 2, 2, 2, 883, 884, 3, 2, 2, 2, 884, 885, 3, 2, 2, 2, 885, 891, 5, 282, 142, 2, 886, 887, 7, 362, 2, 2, 887, 888, 5, 74, 38, 2, 888, 889, 7, 365, 2, 2, 889, 891, 3, 2, 2, 2, 890, 876, 3, 2, 2, 2, 890, 883, 3, 2, 2, 2, 890, 886, 3, 2, 2, 2, 891, 893, 3, 2, 2, 2, 892, 894, 5, 92, 47, 2, 893, 892, 3, 2, 2, 2, 893, 894, 3, 2, 2, 2, 894, 73, 3, 2, 2, 2, 895, 900, 5, 76, 39, 2, 896, 897, 7, 343, 2, 2, 897, 899, 5, 76, 39, 2, 898, 896, 3, 2, 2, 2, 899, 902, 3, 2, 2, 2, 900, 898, 3, 2, 2, 2, 900, 901, 3, 2, 2, 2, 901, 75, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 903, 904, 5, 78, 40, 2, 904, 906, 5, 120, 61, 2, 905, 907, 5, 122, 62, 2, 906, 905, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 911, 3, 2, 2, 2, 908, 910, 5, 124, 63, 2, 909, 908, 3, 2, 2, 2, 910, 913, 3, 2, 2, 2, 911, 909, 3, 2, 2, 2, 911, 912, 3, 2, 2, 2, 912, 917, 3, 2, 2, 2, 913, 911, 3, 2, 2, 2, 914, 916, 5, 80, 41, 2, 915, 914, 3, 2, 2, 2, 916, 919, 3, 2, 2, 2, 917, 915, 3, 2, 2, 2, 917, 918, 3, 2, 2, 2, 918, 926, 3, 2, 2, 2, 919, 917, 3, 2, 2, 2, 920, 921, 7, 51, 2, 2, 921, 923, 5, 440, 221, 2, 922, 920, 3, 2, 2, 2, 922, 923, 3, 2, 2, 2, 923, 924, 3, 2, 2, 2, 924, 926, 5, 82, 42, 2, 925, 903, 3, 2, 2, 2, 925, 922, 3, 2, 2, 2, 926, 77, 3, 2, 2, 2, 927, 928, 5, 440, 221, 2, 928, 79, 3, 2, 2, 2, 929, 962, 5, 126, 64, 2, 930, 932, 7, 190, 2, 2, 931, 930, 3, 2, 2, 2, 931, 932, 3, 2, 2, 2, 932, 933, 3, 2, 2, 2, 933, 962, 7, 192, 2, 2, 934, 935, 7, 214, 2, 2, 935, 962, 7, 155, 2, 2, 936, 962, 7, 296, 2, 2, 937, 938, 7, 224, 2, 2, 938, 939, 5, 330, 166, 2, 939, 940, 7, 362, 2, 2, 940, 941, 5, 440, 221, 2, 941, 945, 7, 365, 2, 2, 942, 944, 5, 84, 43, 2, 943, 942, 3, 2, 2, 2, 944, 947, 3, 2, 2, 2, 945, 943, 3, 2, 2, 2, 945, 946, 3, 2, 2, 2, 946, 962, 3, 2, 2, 2, 947, 945, 3, 2, 2, 2, 948, 949, 7, 130, 2, 2, 949, 950, 7, 362, 2, 2, 950, 955, 7, 372, 2, 2, 951, 952, 7, 343, 2, 2, 952, 954, 7, 372, 2, 2, 953, 951, 3, 2, 2, 2, 954, 957, 3, 2, 2, 2, 955, 953, 3, 2, 2, 2, 955, 956, 3, 2, 2, 2, 956, 958, 3, 2, 2, 2, 957, 955, 3, 2, 2, 2, 958, 962, 7, 365, 2, 2, 959, 962, 7, 15, 2, 2, 960, 962, 7, 94, 2, 2, 961, 929, 3, 2, 2, 2, 961, 931, 3, 2, 2, 2, 961, 934, 3, 2, 2, 2, 961, 936, 3, 2, 2, 2, 961, 937, 3, 2, 2, 2, 961, 948, 3, 2, 2, 2, 961, 959, 3, 2, 2, 2, 961, 960, 3, 2, 2, 2, 962, 81, 3, 2, 2, 2, 963, 964, 7, 214, 2, 2, 964, 966, 7, 155, 2, 2, 965, 967, 7, 40, 2, 2, 966, 965, 3, 2, 2, 2, 966, 967, 3, 2, 2, 2, 967, 968, 3, 2, 2, 2, 968, 969, 7, 362, 2, 2, 969, 971, 5, 440, 221, 2, 970, 972, 9, 9, 2, 2, 971, 970, 3, 2, 2, 2, 971, 972, 3, 2, 2, 2, 972, 980, 3, 2, 2, 2, 973, 974, 7, 343, 2, 2, 974, 976, 5, 440, 221, 2, 975, 977, 9, 9, 2, 2, 976, 975, 3, 2, 2, 2, 976, 977, 3, 2, 2, 2, 977, 979, 3, 2, 2, 2, 978, 973, 3, 2, 2, 2, 979, 982, 3, 2, 2, 2, 980, 978, 3, 2, 2, 2, 980, 981, 3, 2, 2, 2, 981, 983, 3, 2, 2, 2, 982, 980, 3, 2, 2, 2, 983, 985, 7, 365, 2, 2, 984, 986, 7, 94, 2, 2, 985, 984, 3, 2, 2, 2, 985, 986, 3, 2, 2, 2, 986, 988, 3, 2, 2, 2, 987, 989, 5, 238, 120, 2, 988, 987, 3, 2, 2, 2, 988, 989, 3, 2, 2, 2, 989, 1021, 3, 2, 2, 2, 990, 991, 7, 113, 2, 2, 991, 992, 7, 155, 2, 2, 992, 993, 7, 362, 2, 2, 993, 998, 5, 440, 221, 2, 994, 995, 7, 343, 2, 2, 995, 997, 5, 440, 221, 2, 996, 994, 3, 2, 2, 2, 997, 1000, 3, 2, 2, 2, 998, 996, 3, 2, 2, 2, 998, 999, 3, 2, 2, 2, 999, 1001, 3, 2, 2, 2, 1000, 998, 3, 2, 2, 2, 1001, 1002, 7, 365, 2, 2, 1002, 1003, 7, 224, 2, 2, 1003, 1004, 5, 330, 166, 2, 1004, 1005, 7, 362, 2, 2, 1005, 1010, 5, 440, 221, 2, 1006, 1007, 7, 343, 2, 2, 1007, 1009, 5, 440, 221, 2, 1008, 1006, 3, 2, 2, 2, 1009, 1012, 3, 2, 2, 2, 1010, 1008, 3, 2, 2, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1013, 3, 2, 2, 2, 1012, 1010, 3, 2, 2, 2, 1013, 1017, 7, 365, 2, 2, 1014, 1016, 5, 84, 43, 2, 1015, 1014, 3, 2, 2, 2, 1016, 1019, 3, 2, 2, 2, 1017, 1015, 3, 2, 2, 2, 1017, 1018, 3, 2, 2, 2, 1018, 1021, 3, 2, 2, 2, 1019, 1017, 3, 2, 2, 2, 1020, 963, 3, 2, 2, 2, 1020, 990, 3, 2, 2, 2, 1021, 83, 3, 2, 2, 2, 1022, 1023, 7, 197, 2, 2, 1023, 1032, 9, 10, 2, 2, 1024, 1025, 7, 185, 2, 2, 1025, 1033, 7, 3, 2, 2, 1026, 1033, 7, 228, 2, 2, 1027, 1028, 7, 253, 2, 2, 1028, 1033, 7, 192, 2, 2, 1029, 1030, 7, 253, 2, 2, 1030, 1033, 7, 72, 2, 2, 1031, 1033, 7, 31, 2, 2, 1032, 1024, 3, 2, 2, 2, 1032, 1026, 3, 2, 2, 2, 1032, 1027, 3, 2, 2, 2, 1032, 1029, 3, 2, 2, 2, 1032, 1031, 3, 2, 2, 2, 1033, 85, 3, 2, 2, 2, 1034, 1036, 5, 88, 45, 2, 1035, 1034, 3, 2, 2, 2, 1036, 1037, 3, 2, 2, 2, 1037, 1035, 3, 2, 2, 2, 1037, 1038, 3, 2, 2, 2, 1038, 87, 3, 2, 2, 2, 1039, 1040, 7, 343, 2, 2, 1040, 1043, 5, 90, 46, 2, 1041, 1043, 5, 102, 52, 2, 1042, 1039, 3, 2, 2, 2, 1042, 1041, 3, 2, 2, 2, 1043, 89, 3, 2, 2, 2, 1044, 1046, 7, 185, 2, 2, 1045, 1044, 3, 2, 2, 2, 1045, 1046, 3, 2, 2, 2, 1046, 1047, 3, 2, 2, 2, 1047, 1048, 9, 11, 2, 2, 1048, 91, 3, 2, 2, 2, 1049, 1051, 5, 94, 48, 2, 1050, 1049, 3, 2, 2, 2, 1051, 1052, 3, 2, 2, 2, 1052, 1050, 3, 2, 2, 2, 1052, 1053, 3, 2, 2, 2, 1053, 93, 3, 2, 2, 2, 1054, 1055, 7, 197, 2, 2, 1055, 1056, 7, 47, 2, 2, 1056, 1057, 9, 12, 2, 2, 1057, 1065, 7, 239, 2, 2, 1058, 1065, 5, 96, 49, 2, 1059, 1065, 5, 98, 50, 2, 1060, 1065, 5, 100, 51, 2, 1061, 1065, 5, 102, 52, 2, 1062, 1065, 5, 108, 55, 2, 1063, 1065, 5, 110, 56, 2, 1064, 1054, 3, 2, 2, 2, 1064, 1058, 3, 2, 2, 2, 1064, 1059, 3, 2, 2, 2, 1064, 1060, 3, 2, 2, 2, 1064, 1061, 3, 2, 2, 2, 1064, 1062, 3, 2, 2, 2, 1064, 1063, 3, 2, 2, 2, 1065, 95, 3, 2, 2, 2, 1066, 1067, 7, 250, 2, 2, 1067, 1068, 7, 57, 2, 2, 1068, 1085, 9, 13, 2, 2, 1069, 1070, 9, 14, 2, 2, 1070, 1085, 7, 372, 2, 2, 1071, 1085, 7, 187, 2, 2, 1072, 1085, 9, 15, 2, 2, 1073, 1074, 7, 272, 2, 2, 1074, 1077, 7, 362, 2, 2, 1075, 1078, 5, 440, 221, 2, 1076, 1078, 7, 372, 2, 2, 1077, 1075, 3, 2, 2, 2, 1077, 1076, 3, 2, 2, 2, 1078, 1079, 3, 2, 2, 2, 1079, 1077, 3, 2, 2, 2, 1079, 1080, 3, 2, 2, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1085, 7, 365, 2, 2, 1082, 1083, 7, 281, 2, 2, 1083, 1085, 5, 440, 221, 2, 1084, 1066, 3, 2, 2, 2, 1084, 1069, 3, 2, 2, 2, 1084, 1071, 3, 2, 2, 2, 1084, 1072, 3, 2, 2, 2, 1084, 1073, 3, 2, 2, 2, 1084, 1082, 3, 2, 2, 2, 1085, 97, 3, 2, 2, 2, 1086, 1088, 7, 136, 2, 2, 1087, 1086, 3, 2, 2, 2, 1087, 1088, 3, 2, 2, 2, 1088, 1089, 3, 2, 2, 2, 1089, 1090, 7, 134, 2, 2, 1090, 1120, 5, 440, 221, 2, 1091, 1092, 7, 311, 2, 2, 1092, 1120, 7, 226, 2, 2, 1093, 1094, 7, 86, 2, 2, 1094, 1095, 7, 27, 2, 2, 1095, 1096, 7, 125, 2, 2, 1096, 1097, 7, 362, 2, 2, 1097, 1102, 5, 440, 221, 2, 1098, 1099, 7, 343, 2, 2, 1099, 1101, 5, 440, 221, 2, 1100, 1098, 3, 2, 2, 2, 1101, 1104, 3, 2, 2, 2, 1102, 1100, 3, 2, 2, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1105, 3, 2, 2, 2, 1104, 1102, 3, 2, 2, 2, 1105, 1106, 7, 365, 2, 2, 1106, 1120, 3, 2, 2, 2, 1107, 1109, 7, 190, 2, 2, 1108, 1107, 3, 2, 2, 2, 1108, 1109, 3, 2, 2, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1120, 7, 169, 2, 2, 1111, 1112, 7, 48, 2, 2, 1112, 1120, 9, 16, 2, 2, 1113, 1114, 7, 76, 2, 2, 1114, 1120, 7, 198, 2, 2, 1115, 1116, 7, 311, 2, 2, 1116, 1117, 7, 228, 2, 2, 1117, 1118, 7, 197, 2, 2, 1118, 1120, 7, 89, 2, 2, 1119, 1087, 3, 2, 2, 2, 1119, 1091, 3, 2, 2, 2, 1119, 1093, 3, 2, 2, 2, 1119, 1108, 3, 2, 2, 2, 1119, 1111, 3, 2, 2, 2, 1119, 1113, 3, 2, 2, 2, 1119, 1115, 3, 2, 2, 2, 1120, 99, 3, 2, 2, 2, 1121, 1123, 7, 296, 2, 2, 1122, 1121, 3, 2, 2, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 3, 2, 2, 2, 1124, 1125, 7, 214, 2, 2, 1125, 1126, 7, 136, 2, 2, 1126, 1127, 7, 362, 2, 2, 1127, 1132, 5, 440, 221, 2, 1128, 1129, 7, 343, 2, 2, 1129, 1131, 5, 440, 221, 2, 1130, 1128, 3, 2, 2, 2, 1131, 1134, 3, 2, 2, 2, 1132, 1130, 3, 2, 2, 2, 1132, 1133, 3, 2, 2, 2, 1133, 1135, 3, 2, 2, 2, 1134, 1132, 3, 2, 2, 2, 1135, 1136, 7, 365, 2, 2, 1136, 1140, 3, 2, 2, 2, 1137, 1138, 7, 311, 2, 2, 1138, 1140, 7, 64, 2, 2, 1139, 1122, 3, 2, 2, 2, 1139, 1137, 3, 2, 2, 2, 1140, 101, 3, 2, 2, 2, 1141, 1146, 5, 104, 53, 2, 1142, 1143, 7, 273, 2, 2, 1143, 1144, 7, 11, 2, 2, 1144, 1146, 5, 440, 221, 2, 1145, 1141, 3, 2, 2, 2, 1145, 1142, 3, 2, 2, 2, 1146, 103, 3, 2, 2, 2, 1147, 1148, 7, 238, 2, 2, 1148, 1149, 7, 114, 2, 2, 1149, 1153, 7, 78, 2, 2, 1150, 1152, 5, 106, 54, 2, 1151, 1150, 3, 2, 2, 2, 1152, 1155, 3, 2, 2, 2, 1153, 1151, 3, 2, 2, 2, 1153, 1154, 3, 2, 2, 2, 1154, 105, 3, 2, 2, 2, 1155, 1153, 3, 2, 2, 2, 1156, 1157, 7, 108, 2, 2, 1157, 1158, 7, 283, 2, 2, 1158, 1159, 7, 27, 2, 2, 1159, 1163, 5, 384, 193, 2, 1160, 1161, 7, 97, 2, 2, 1161, 1162, 7, 27, 2, 2, 1162, 1164, 5, 384, 193, 2, 1163, 1160, 3, 2, 2, 2, 1163, 1164, 3, 2, 2, 2, 1164, 1184, 3, 2, 2, 2, 1165, 1166, 7, 43, 2, 2, 1166, 1167, 7, 152, 2, 2, 1167, 1168, 7, 283, 2, 2, 1168, 1169, 7, 27, 2, 2, 1169, 1184, 5, 384, 193, 2, 1170, 1171, 7, 172, 2, 2, 1171, 1172, 7, 156, 2, 2, 1172, 1173, 7, 283, 2, 2, 1173, 1174, 7, 27, 2, 2, 1174, 1184, 5, 384, 193, 2, 1175, 1176, 7, 162, 2, 2, 1176, 1177, 7, 283, 2, 2, 1177, 1178, 7, 27, 2, 2, 1178, 1184, 5, 384, 193, 2, 1179, 1180, 7, 192, 2, 2, 1180, 1181, 7, 74, 2, 2, 1181, 1182, 7, 11, 2, 2, 1182, 1184, 5, 384, 193, 2, 1183, 1156, 3, 2, 2, 2, 1183, 1165, 3, 2, 2, 2, 1183, 1170, 3, 2, 2, 2, 1183, 1175, 3, 2, 2, 2, 1183, 1179, 3, 2, 2, 2, 1184, 107, 3, 2, 2, 2, 1185, 1186, 7, 197, 2, 2, 1186, 1190, 5, 440, 221, 2, 1187, 1188, 7, 284, 2, 2, 1188, 1190, 5, 440, 221, 2, 1189, 1185, 3, 2, 2, 2, 1189, 1187, 3, 2, 2, 2, 1190, 109, 3, 2, 2, 2, 1191, 1193, 7, 15, 2, 2, 1192, 1194, 7, 348, 2, 2, 1193, 1192, 3, 2, 2, 2, 1193, 1194, 3, 2, 2, 2, 1194, 1195, 3, 2, 2, 2, 1195, 1219, 5, 384, 193, 2, 1196, 1198, 7, 45, 2, 2, 1197, 1199, 7, 348, 2, 2, 1198, 1197, 3, 2, 2, 2, 1198, 1199, 3, 2, 2, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1219, 5, 384, 193, 2, 1201, 1203, 7, 72, 2, 2, 1202, 1201, 3, 2, 2, 2, 1202, 1203, 3, 2, 2, 2, 1203, 1207, 3, 2, 2, 2, 1204, 1205, 7, 36, 2, 2, 1205, 1208, 7, 253, 2, 2, 1206, 1208, 7, 37, 2, 2, 1207, 1204, 3, 2, 2, 2, 1207, 1206, 3, 2, 2, 2, 1208, 1210, 3, 2, 2, 2, 1209, 1211, 7, 348, 2, 2, 1210, 1209, 3, 2, 2, 2, 1210, 1211, 3, 2, 2, 2, 1211, 1212, 3, 2, 2, 2, 1212, 1219, 5, 384, 193, 2, 1213, 1215, 7, 96, 2, 2, 1214, 1216, 7, 348, 2, 2, 1215, 1214, 3, 2, 2, 2, 1215, 1216, 3, 2, 2, 2, 1216, 1217, 3, 2, 2, 2, 1217, 1219, 5, 384, 193, 2, 1218, 1191, 3, 2, 2, 2, 1218, 1196, 3, 2, 2, 2, 1218, 1202, 3, 2, 2, 2, 1218, 1213, 3, 2, 2, 2, 1219, 111, 3, 2, 2, 2, 1220, 1221, 7, 7, 2, 2, 1221, 1222, 7, 280, 2, 2, 1222, 1223, 5, 330, 166, 2, 1223, 1224, 5, 114, 58, 2, 1224, 113, 3, 2, 2, 2, 1225, 1226, 5, 116, 59, 2, 1226, 115, 3, 2, 2, 2, 1227, 1230, 7, 4, 2, 2, 1228, 1229, 7, 51, 2, 2, 1229, 1231, 5, 440, 221, 2, 1230, 1228, 3, 2, 2, 2, 1230, 1231, 3, 2, 2, 2, 1231, 1232, 3, 2, 2, 2, 1232, 1233, 5, 118, 60, 2, 1233, 117, 3, 2, 2, 2, 1234, 1235, 7, 214, 2, 2, 1235, 1237, 7, 155, 2, 2, 1236, 1238, 7, 40, 2, 2, 1237, 1236, 3, 2, 2, 2, 1237, 1238, 3, 2, 2, 2, 1238, 1239, 3, 2, 2, 2, 1239, 1240, 7, 362, 2, 2, 1240, 1242, 5, 440, 221, 2, 1241, 1243, 9, 9, 2, 2, 1242, 1241, 3, 2, 2, 2, 1242, 1243, 3, 2, 2, 2, 1243, 1251, 3, 2, 2, 2, 1244, 1245, 7, 343, 2, 2, 1245, 1247, 5, 440, 221, 2, 1246, 1248, 9, 9, 2, 2, 1247, 1246, 3, 2, 2, 2, 1247, 1248, 3, 2, 2, 2, 1248, 1250, 3, 2, 2, 2, 1249, 1244, 3, 2, 2, 2, 1250, 1253, 3, 2, 2, 2, 1251, 1249, 3, 2, 2, 2, 1251, 1252, 3, 2, 2, 2, 1252, 1254, 3, 2, 2, 2, 1253, 1251, 3, 2, 2, 2, 1254, 1256, 7, 365, 2, 2, 1255, 1257, 7, 94, 2, 2, 1256, 1255, 3, 2, 2, 2, 1256, 1257, 3, 2, 2, 2, 1257, 1259, 3, 2, 2, 2, 1258, 1260, 5, 238, 120, 2, 1259, 1258, 3, 2, 2, 2, 1259, 1260, 3, 2, 2, 2, 1260, 1297, 3, 2, 2, 2, 1261, 1262, 7, 113, 2, 2, 1262, 1263, 7, 155, 2, 2, 1263, 1264, 7, 362, 2, 2, 1264, 1269, 5, 440, 221, 2, 1265, 1266, 7, 343, 2, 2, 1266, 1268, 5, 440, 221, 2, 1267, 1265, 3, 2, 2, 2, 1268, 1271, 3, 2, 2, 2, 1269, 1267, 3, 2, 2, 2, 1269, 1270, 3, 2, 2, 2, 1270, 1272, 3, 2, 2, 2, 1271, 1269, 3, 2, 2, 2, 1272, 1273, 7, 365, 2, 2, 1273, 1274, 7, 224, 2, 2, 1274, 1275, 5, 330, 166, 2, 1275, 1276, 7, 362, 2, 2, 1276, 1281, 5, 440, 221, 2, 1277, 1278, 7, 343, 2, 2, 1278, 1280, 5, 440, 221, 2, 1279, 1277, 3, 2, 2, 2, 1280, 1283, 3, 2, 2, 2, 1281, 1279, 3, 2, 2, 2, 1281, 1282, 3, 2, 2, 2, 1282, 1284, 3, 2, 2, 2, 1283, 1281, 3, 2, 2, 2, 1284, 1288, 7, 365, 2, 2, 1285, 1287, 5, 84, 43, 2, 1286, 1285, 3, 2, 2, 2, 1287, 1290, 3, 2, 2, 2, 1288, 1286, 3, 2, 2, 2, 1288, 1289, 3, 2, 2, 2, 1289, 1297, 3, 2, 2, 2, 1290, 1288, 3, 2, 2, 2, 1291, 1292, 7, 72, 2, 2, 1292, 1293, 5, 384, 193, 2, 1293, 1294, 7, 112, 2, 2, 1294, 1295, 5, 440, 221, 2, 1295, 1297, 3, 2, 2, 2, 1296, 1234, 3, 2, 2, 2, 1296, 1261, 3, 2, 2, 2, 1296, 1291, 3, 2, 2, 2, 1297, 119, 3, 2, 2, 2, 1298, 1344, 7, 35, 2, 2, 1299, 1344, 7, 20, 2, 2, 1300, 1344, 7, 21, 2, 2, 1301, 1344, 7, 22, 2, 2, 1302, 1344, 7, 23, 2, 2, 1303, 1344, 7, 24, 2, 2, 1304, 1344, 7, 65, 2, 2, 1305, 1344, 7, 66, 2, 2, 1306, 1344, 7, 69, 2, 2, 1307, 1344, 7, 70, 2, 2, 1308, 1310, 7, 88, 2, 2, 1309, 1311, 7, 212, 2, 2, 1310, 1309, 3, 2, 2, 2, 1310, 1311, 3, 2, 2, 2, 1311, 1344, 3, 2, 2, 2, 1312, 1344, 7, 111, 2, 2, 1313, 1344, 7, 141, 2, 2, 1314, 1344, 7, 142, 2, 2, 1315, 1344, 7, 143, 2, 2, 1316, 1344, 7, 144, 2, 2, 1317, 1344, 7, 145, 2, 2, 1318, 1344, 7, 182, 2, 2, 1319, 1344, 7, 184, 2, 2, 1320, 1344, 7, 194, 2, 2, 1321, 1344, 7, 193, 2, 2, 1322, 1344, 7, 211, 2, 2, 1323, 1344, 7, 223, 2, 2, 1324, 1325, 7, 230, 2, 2, 1325, 1344, 7, 306, 2, 2, 1326, 1344, 7, 260, 2, 2, 1327, 1344, 7, 259, 2, 2, 1328, 1344, 7, 261, 2, 2, 1329, 1344, 7, 263, 2, 2, 1330, 1344, 7, 262, 2, 2, 1331, 1344, 7, 274, 2, 2, 1332, 1344, 7, 279, 2, 2, 1333, 1344, 7, 286, 2, 2, 1334, 1344, 7, 287, 2, 2, 1335, 1344, 7, 304, 2, 2, 1336, 1344, 7, 305, 2, 2, 1337, 1344, 7, 315, 2, 2, 1338, 1341, 5, 440, 221, 2, 1339, 1340, 7, 359, 2, 2, 1340, 1342, 9, 17, 2, 2, 1341, 1339, 3, 2, 2, 2, 1341, 1342, 3, 2, 2, 2, 1342, 1344, 3, 2, 2, 2, 1343, 1298, 3, 2, 2, 2, 1343, 1299, 3, 2, 2, 2, 1343, 1300, 3, 2, 2, 2, 1343, 1301, 3, 2, 2, 2, 1343, 1302, 3, 2, 2, 2, 1343, 1303, 3, 2, 2, 2, 1343, 1304, 3, 2, 2, 2, 1343, 1305, 3, 2, 2, 2, 1343, 1306, 3, 2, 2, 2, 1343, 1307, 3, 2, 2, 2, 1343, 1308, 3, 2, 2, 2, 1343, 1312, 3, 2, 2, 2, 1343, 1313, 3, 2, 2, 2, 1343, 1314, 3, 2, 2, 2, 1343, 1315, 3, 2, 2, 2, 1343, 1316, 3, 2, 2, 2, 1343, 1317, 3, 2, 2, 2, 1343, 1318, 3, 2, 2, 2, 1343, 1319, 3, 2, 2, 2, 1343, 1320, 3, 2, 2, 2, 1343, 1321, 3, 2, 2, 2, 1343, 1322, 3, 2, 2, 2, 1343, 1323, 3, 2, 2, 2, 1343, 1324, 3, 2, 2, 2, 1343, 1326, 3, 2, 2, 2, 1343, 1327, 3, 2, 2, 2, 1343, 1328, 3, 2, 2, 2, 1343, 1329, 3, 2, 2, 2, 1343, 1330, 3, 2, 2, 2, 1343, 1331, 3, 2, 2, 2, 1343, 1332, 3, 2, 2, 2, 1343, 1333, 3, 2, 2, 2, 1343, 1334, 3, 2, 2, 2, 1343, 1335, 3, 2, 2, 2, 1343, 1336, 3, 2, 2, 2, 1343, 1337, 3, 2, 2, 2, 1343, 1338, 3, 2, 2, 2, 1344, 121, 3, 2, 2, 2, 1345, 1346, 7, 362, 2, 2, 1346, 1348, 9, 18, 2, 2, 1347, 1349, 9, 19, 2, 2, 1348, 1347, 3, 2, 2, 2, 1348, 1349, 3, 2, 2, 2, 1349, 1352, 3, 2, 2, 2, 1350, 1351, 7, 343, 2, 2, 1351, 1353, 7, 372, 2, 2, 1352, 1350, 3, 2, 2, 2, 1352, 1353, 3, 2, 2, 2, 1353, 1354, 3, 2, 2, 2, 1354, 1355, 7, 365, 2, 2, 1355, 123, 3, 2, 2, 2, 1356, 1358, 7, 190, 2, 2, 1357, 1356, 3, 2, 2, 2, 1357, 1358, 3, 2, 2, 2, 1358, 1359, 3, 2, 2, 2, 1359, 1368, 7, 192, 2, 2, 1360, 1361, 7, 36, 2, 2, 1361, 1362, 7, 253, 2, 2, 1362, 1368, 5, 440, 221, 2, 1363, 1365, 7, 190, 2, 2, 1364, 1363, 3, 2, 2, 2, 1364, 1365, 3, 2, 2, 2, 1365, 1366, 3, 2, 2, 2, 1366, 1368, 9, 20, 2, 2, 1367, 1357, 3, 2, 2, 2, 1367, 1360, 3, 2, 2, 2, 1367, 1364, 3, 2, 2, 2, 1368, 125, 3, 2, 2, 2, 1369, 1371, 7, 342, 2, 2, 1370, 1369, 3, 2, 2, 2, 1370, 1371, 3, 2, 2, 2, 1371, 1372, 3, 2, 2, 2, 1372, 1373, 7, 348, 2, 2, 1373, 1382, 5, 384, 193, 2, 1374, 1376, 7, 311, 2, 2, 1375, 1374, 3, 2, 2, 2, 1375, 1376, 3, 2, 2, 2, 1376, 1377, 3, 2, 2, 2, 1377, 1379, 7, 72, 2, 2, 1378, 1380, 5, 384, 193, 2, 1379, 1378, 3, 2, 2, 2, 1379, 1380, 3, 2, 2, 2, 1380, 1382, 3, 2, 2, 2, 1381, 1370, 3, 2, 2, 2, 1381, 1375, 3, 2, 2, 2, 1382, 127, 3, 2, 2, 2, 1383, 1384, 7, 56, 2, 2, 1384, 1388, 9, 21, 2, 2, 1385, 1386, 7, 131, 2, 2, 1386, 1387, 7, 190, 2, 2, 1387, 1389, 7, 103, 2, 2, 1388, 1385, 3, 2, 2, 2, 1388, 1389, 3, 2, 2, 2, 1389, 1390, 3, 2, 2, 2, 1390, 1394, 5, 384, 193, 2, 1391, 1393, 5, 130, 66, 2, 1392, 1391, 3, 2, 2, 2, 1393, 1396, 3, 2, 2, 2, 1394, 1392, 3, 2, 2, 2, 1394, 1395, 3, 2, 2, 2, 1395, 129, 3, 2, 2, 2, 1396, 1394, 3, 2, 2, 2, 1397, 1398, 7, 45, 2, 2, 1398, 1402, 5, 384, 193, 2, 1399, 1400, 7, 164, 2, 2, 1400, 1402, 5, 384, 193, 2, 1401, 1397, 3, 2, 2, 2, 1401, 1399, 3, 2, 2, 2, 1402, 131, 3, 2, 2, 2, 1403, 1411, 7, 7, 2, 2, 1404, 1407, 7, 56, 2, 2, 1405, 1406, 7, 200, 2, 2, 1406, 1408, 7, 226, 2, 2, 1407, 1405, 3, 2, 2, 2, 1407, 1408, 3, 2, 2, 2, 1408, 1411, 3, 2, 2, 2, 1409, 1411, 7, 226, 2, 2, 1410, 1403, 3, 2, 2, 2, 1410, 1404, 3, 2, 2, 2, 1410, 1409, 3, 2, 2, 2, 1410, 1411, 3, 2, 2, 2, 1411, 1412, 3, 2, 2, 2, 1412, 1413, 7, 118, 2, 2, 1413, 1415, 5, 440, 221, 2, 1414, 1416, 5, 150, 76, 2, 1415, 1414, 3, 2, 2, 2, 1415, 1416, 3, 2, 2, 2, 1416, 1417, 3, 2, 2, 2, 1417, 1419, 5, 134, 68, 2, 1418, 1420, 9, 22, 2, 2, 1419, 1418, 3, 2, 2, 2, 1419, 1420, 3, 2, 2, 2, 1420, 1422, 3, 2, 2, 2, 1421, 1423, 5, 50, 26, 2, 1422, 1421, 3, 2, 2, 2, 1422, 1423, 3, 2, 2, 2, 1423, 1424, 3, 2, 2, 2, 1424, 1425, 5, 8, 5, 2, 1425, 133, 3, 2, 2, 2, 1426, 1427, 9, 23, 2, 2, 1427, 1429, 5, 120, 61, 2, 1428, 1430, 5, 122, 62, 2, 1429, 1428, 3, 2, 2, 2, 1429, 1430, 3, 2, 2, 2, 1430, 135, 3, 2, 2, 2, 1431, 1439, 7, 7, 2, 2, 1432, 1435, 7, 56, 2, 2, 1433, 1434, 7, 200, 2, 2, 1434, 1436, 7, 226, 2, 2, 1435, 1433, 3, 2, 2, 2, 1435, 1436, 3, 2, 2, 2, 1436, 1439, 3, 2, 2, 2, 1437, 1439, 7, 226, 2, 2, 1438, 1431, 3, 2, 2, 2, 1438, 1432, 3, 2, 2, 2, 1438, 1437, 3, 2, 2, 2, 1438, 1439, 3, 2, 2, 2, 1439, 1440, 3, 2, 2, 2, 1440, 1441, 7, 207, 2, 2, 1441, 1442, 5, 440, 221, 2, 1442, 1443, 9, 22, 2, 2, 1443, 1444, 5, 138, 70, 2, 1444, 1448, 7, 95, 2, 2, 1445, 1446, 5, 440, 221, 2, 1446, 1447, 7, 367, 2, 2, 1447, 1449, 3, 2, 2, 2, 1448, 1445, 3, 2, 2, 2, 1448, 1449, 3, 2, 2, 2, 1449, 137, 3, 2, 2, 2, 1450, 1451, 5, 140, 71, 2, 1451, 1457, 7, 367, 2, 2, 1452, 1453, 5, 140, 71, 2, 1453, 1454, 7, 367, 2, 2, 1454, 1456, 3, 2, 2, 2, 1455, 1452, 3, 2, 2, 2, 1456, 1459, 3, 2, 2, 2, 1457, 1455, 3, 2, 2, 2, 1457, 1458, 3, 2, 2, 2, 1458, 139, 3, 2, 2, 2, 1459, 1457, 3, 2, 2, 2, 1460, 1474, 5, 52, 27, 2, 1461, 1462, 7, 118, 2, 2, 1462, 1464, 5, 440, 221, 2, 1463, 1465, 5, 150, 76, 2, 1464, 1463, 3, 2, 2, 2, 1464, 1465, 3, 2, 2, 2, 1465, 1466, 3, 2, 2, 2, 1466, 1467, 5, 134, 68, 2, 1467, 1474, 3, 2, 2, 2, 1468, 1469, 9, 24, 2, 2, 1469, 1471, 5, 440, 221, 2, 1470, 1472, 5, 150, 76, 2, 1471, 1470, 3, 2, 2, 2, 1471, 1472, 3, 2, 2, 2, 1472, 1474, 3, 2, 2, 2, 1473, 1460, 3, 2, 2, 2, 1473, 1461, 3, 2, 2, 2, 1473, 1468, 3, 2, 2, 2, 1474, 141, 3, 2, 2, 2, 1475, 1483, 7, 7, 2, 2, 1476, 1479, 7, 56, 2, 2, 1477, 1478, 7, 200, 2, 2, 1478, 1480, 7, 226, 2, 2, 1479, 1477, 3, 2, 2, 2, 1479, 1480, 3, 2, 2, 2, 1480, 1483, 3, 2, 2, 2, 1481, 1483, 7, 226, 2, 2, 1482, 1475, 3, 2, 2, 2, 1482, 1476, 3, 2, 2, 2, 1482, 1481, 3, 2, 2, 2, 1482, 1483, 3, 2, 2, 2, 1483, 1484, 3, 2, 2, 2, 1484, 1485, 7, 207, 2, 2, 1485, 1486, 7, 25, 2, 2, 1486, 1487, 5, 440, 221, 2, 1487, 1488, 9, 22, 2, 2, 1488, 1489, 5, 144, 73, 2, 1489, 1493, 7, 95, 2, 2, 1490, 1491, 5, 440, 221, 2, 1491, 1492, 7, 367, 2, 2, 1492, 1494, 3, 2, 2, 2, 1493, 1490, 3, 2, 2, 2, 1493, 1494, 3, 2, 2, 2, 1494, 143, 3, 2, 2, 2, 1495, 1496, 5, 146, 74, 2, 1496, 1502, 7, 367, 2, 2, 1497, 1498, 5, 146, 74, 2, 1498, 1499, 7, 367, 2, 2, 1499, 1501, 3, 2, 2, 2, 1500, 1497, 3, 2, 2, 2, 1501, 1504, 3, 2, 2, 2, 1502, 1500, 3, 2, 2, 2, 1502, 1503, 3, 2, 2, 2, 1503, 145, 3, 2, 2, 2, 1504, 1502, 3, 2, 2, 2, 1505, 1509, 5, 52, 27, 2, 1506, 1509, 5, 132, 67, 2, 1507, 1509, 5, 148, 75, 2, 1508, 1505, 3, 2, 2, 2, 1508, 1506, 3, 2, 2, 2, 1508, 1507, 3, 2, 2, 2, 1509, 147, 3, 2, 2, 2, 1510, 1518, 7, 7, 2, 2, 1511, 1514, 7, 56, 2, 2, 1512, 1513, 7, 200, 2, 2, 1513, 1515, 7, 226, 2, 2, 1514, 1512, 3, 2, 2, 2, 1514, 1515, 3, 2, 2, 2, 1515, 1518, 3, 2, 2, 2, 1516, 1518, 7, 226, 2, 2, 1517, 1510, 3, 2, 2, 2, 1517, 1511, 3, 2, 2, 2, 1517, 1516, 3, 2, 2, 2, 1517, 1518, 3, 2, 2, 2, 1518, 1519, 3, 2, 2, 2, 1519, 1520, 9, 24, 2, 2, 1520, 1522, 5, 440, 221, 2, 1521, 1523, 5, 150, 76, 2, 1522, 1521, 3, 2, 2, 2, 1522, 1523, 3, 2, 2, 2, 1523, 1525, 3, 2, 2, 2, 1524, 1526, 5, 154, 78, 2, 1525, 1524, 3, 2, 2, 2, 1525, 1526, 3, 2, 2, 2, 1526, 1528, 3, 2, 2, 2, 1527, 1529, 9, 22, 2, 2, 1528, 1527, 3, 2, 2, 2, 1528, 1529, 3, 2, 2, 2, 1529, 1531, 3, 2, 2, 2, 1530, 1532, 5, 50, 26, 2, 1531, 1530, 3, 2, 2, 2, 1531, 1532, 3, 2, 2, 2, 1532, 1534, 3, 2, 2, 2, 1533, 1535, 5, 278, 140, 2, 1534, 1533, 3, 2, 2, 2, 1534, 1535, 3, 2, 2, 2, 1535, 1536, 3, 2, 2, 2, 1536, 1540, 5, 12, 7, 2, 1537, 1538, 5, 440, 221, 2, 1538, 1539, 7, 367, 2, 2, 1539, 1541, 3, 2, 2, 2, 1540, 1537, 3, 2, 2, 2, 1540, 1541, 3, 2, 2, 2, 1541, 149, 3, 2, 2, 2, 1542, 1543, 7, 362, 2, 2, 1543, 1565, 7, 365, 2, 2, 1544, 1545, 7, 362, 2, 2, 1545, 1550, 5, 152, 77, 2, 1546, 1547, 7, 343, 2, 2, 1547, 1549, 5, 152, 77, 2, 1548, 1546, 3, 2, 2, 2, 1549, 1552, 3, 2, 2, 2, 1550, 1548, 3, 2, 2, 2, 1550, 1551, 3, 2, 2, 2, 1551, 1553, 3, 2, 2, 2, 1552, 1550, 3, 2, 2, 2, 1553, 1554, 7, 365, 2, 2, 1554, 1565, 3, 2, 2, 2, 1555, 1556, 6, 76, 4, 2, 1556, 1561, 5, 152, 77, 2, 1557, 1558, 7, 343, 2, 2, 1558, 1560, 5, 152, 77, 2, 1559, 1557, 3, 2, 2, 2, 1560, 1563, 3, 2, 2, 2, 1561, 1559, 3, 2, 2, 2, 1561, 1562, 3, 2, 2, 2, 1562, 1565, 3, 2, 2, 2, 1563, 1561, 3, 2, 2, 2, 1564, 1542, 3, 2, 2, 2, 1564, 1544, 3, 2, 2, 2, 1564, 1555, 3, 2, 2, 2, 1565, 151, 3, 2, 2, 2, 1566, 1572, 7, 134, 2, 2, 1567, 1572, 7, 202, 2, 2, 1568, 1572, 7, 139, 2, 2, 1569, 1570, 7, 134, 2, 2, 1570, 1572, 7, 202, 2, 2, 1571, 1566, 3, 2, 2, 2, 1571, 1567, 3, 2, 2, 2, 1571, 1568, 3, 2, 2, 2, 1571, 1569, 3, 2, 2, 2, 1571, 1572, 3, 2, 2, 2, 1572, 1573, 3, 2, 2, 2, 1573, 1574, 5, 440, 221, 2, 1574, 1576, 5, 120, 61, 2, 1575, 1577, 5, 122, 62, 2, 1576, 1575, 3, 2, 2, 2, 1576, 1577, 3, 2, 2, 2, 1577, 1581, 3, 2, 2, 2, 1578, 1580, 5, 124, 63, 2, 1579, 1578, 3, 2, 2, 2, 1580, 1583, 3, 2, 2, 2, 1581, 1579, 3, 2, 2, 2, 1581, 1582, 3, 2, 2, 2, 1582, 1585, 3, 2, 2, 2, 1583, 1581, 3, 2, 2, 2, 1584, 1586, 5, 126, 64, 2, 1585, 1584, 3, 2, 2, 2, 1585, 1586, 3, 2, 2, 2, 1586, 1609, 3, 2, 2, 2, 1587, 1593, 5, 440, 221, 2, 1588, 1594, 7, 134, 2, 2, 1589, 1594, 7, 202, 2, 2, 1590, 1594, 7, 139, 2, 2, 1591, 1592, 7, 134, 2, 2, 1592, 1594, 7, 202, 2, 2, 1593, 1588, 3, 2, 2, 2, 1593, 1589, 3, 2, 2, 2, 1593, 1590, 3, 2, 2, 2, 1593, 1591, 3, 2, 2, 2, 1593, 1594, 3, 2, 2, 2, 1594, 1595, 3, 2, 2, 2, 1595, 1597, 5, 120, 61, 2, 1596, 1598, 5, 122, 62, 2, 1597, 1596, 3, 2, 2, 2, 1597, 1598, 3, 2, 2, 2, 1598, 1602, 3, 2, 2, 2, 1599, 1601, 5, 124, 63, 2, 1600, 1599, 3, 2, 2, 2, 1601, 1604, 3, 2, 2, 2, 1602, 1600, 3, 2, 2, 2, 1602, 1603, 3, 2, 2, 2, 1603, 1606, 3, 2, 2, 2, 1604, 1602, 3, 2, 2, 2, 1605, 1607, 5, 126, 64, 2, 1606, 1605, 3, 2, 2, 2, 1606, 1607, 3, 2, 2, 2, 1607, 1609, 3, 2, 2, 2, 1608, 1571, 3, 2, 2, 2, 1608, 1587, 3, 2, 2, 2, 1609, 153, 3, 2, 2, 2, 1610, 1612, 5, 156, 79, 2, 1611, 1610, 3, 2, 2, 2, 1612, 1613, 3, 2, 2, 2, 1613, 1611, 3, 2, 2, 2, 1613, 1614, 3, 2, 2, 2, 1614, 155, 3, 2, 2, 2, 1615, 1616, 7, 157, 2, 2, 1616, 1627, 7, 264, 2, 2, 1617, 1618, 7, 264, 2, 2, 1618, 1619, 7, 249, 2, 2, 1619, 1627, 9, 25, 2, 2, 1620, 1622, 7, 90, 2, 2, 1621, 1620, 3, 2, 2, 2, 1621, 1622, 3, 2, 2, 2, 1622, 1623, 3, 2, 2, 2, 1623, 1624, 7, 229, 2, 2, 1624, 1625, 7, 256, 2, 2, 1625, 1627, 7, 372, 2, 2, 1626, 1615, 3, 2, 2, 2, 1626, 1617, 3, 2, 2, 2, 1626, 1621, 3, 2, 2, 2, 1627, 157, 3, 2, 2, 2, 1628, 1629, 7, 89, 2, 2, 1629, 1632, 7, 280, 2, 2, 1630, 1631, 7, 131, 2, 2, 1631, 1633, 7, 103, 2, 2, 1632, 1630, 3, 2, 2, 2, 1632, 1633, 3, 2, 2, 2, 1633, 1634, 3, 2, 2, 2, 1634, 1643, 5, 330, 166, 2, 1635, 1636, 7, 89, 2, 2, 1636, 1639, 9, 21, 2, 2, 1637, 1638, 7, 131, 2, 2, 1638, 1640, 7, 103, 2, 2, 1639, 1637, 3, 2, 2, 2, 1639, 1640, 3, 2, 2, 2, 1640, 1641, 3, 2, 2, 2, 1641, 1643, 5, 384, 193, 2, 1642, 1628, 3, 2, 2, 2, 1642, 1635, 3, 2, 2, 2, 1643, 159, 3, 2, 2, 2, 1644, 1645, 7, 95, 2, 2, 1645, 1646, 7, 291, 2, 2, 1646, 161, 3, 2, 2, 2, 1647, 1649, 9, 26, 2, 2, 1648, 1650, 7, 133, 2, 2, 1649, 1648, 3, 2, 2, 2, 1649, 1650, 3, 2, 2, 2, 1650, 1651, 3, 2, 2, 2, 1651, 1657, 5, 384, 193, 2, 1652, 1653, 7, 362, 2, 2, 1653, 1654, 5, 416, 209, 2, 1654, 1655, 7, 365, 2, 2, 1655, 1658, 3, 2, 2, 2, 1656, 1658, 5, 416, 209, 2, 1657, 1652, 3, 2, 2, 2, 1657, 1656, 3, 2, 2, 2, 1657, 1658, 3, 2, 2, 2, 1658, 1668, 3, 2, 2, 2, 1659, 1660, 7, 148, 2, 2, 1660, 1665, 7, 369, 2, 2, 1661, 1662, 7, 343, 2, 2, 1662, 1664, 7, 369, 2, 2, 1663, 1661, 3, 2, 2, 2, 1664, 1667, 3, 2, 2, 2, 1665, 1663, 3, 2, 2, 2, 1665, 1666, 3, 2, 2, 2, 1666, 1669, 3, 2, 2, 2, 1667, 1665, 3, 2, 2, 2, 1668, 1659, 3, 2, 2, 2, 1668, 1669, 3, 2, 2, 2, 1669, 1671, 3, 2, 2, 2, 1670, 1672, 5, 280, 141, 2, 1671, 1670, 3, 2, 2, 2, 1671, 1672, 3, 2, 2, 2, 1672, 163, 3, 2, 2, 2, 1673, 1677, 5, 166, 84, 2, 1674, 1677, 5, 168, 85, 2, 1675, 1677, 5, 170, 86, 2, 1676, 1673, 3, 2, 2, 2, 1676, 1674, 3, 2, 2, 2, 1676, 1675, 3, 2, 2, 2, 1677, 165, 3, 2, 2, 2, 1678, 1679, 7, 131, 2, 2, 1679, 1680, 5, 368, 185, 2, 1680, 1681, 7, 285, 2, 2, 1681, 1685, 5, 4, 3, 2, 1682, 1684, 5, 172, 87, 2, 1683, 1682, 3, 2, 2, 2, 1684, 1687, 3, 2, 2, 2, 1685, 1683, 3, 2, 2, 2, 1685, 1686, 3, 2, 2, 2, 1686, 1689, 3, 2, 2, 2, 1687, 1685, 3, 2, 2, 2, 1688, 1690, 5, 174, 88, 2, 1689, 1688, 3, 2, 2, 2, 1689, 1690, 3, 2, 2, 2, 1690, 1691, 3, 2, 2, 2, 1691, 1692, 7, 95, 2, 2, 1692, 1693, 7, 131, 2, 2, 1693, 167, 3, 2, 2, 2, 1694, 1695, 7, 131, 2, 2, 1695, 1696, 5, 368, 185, 2, 1696, 1699, 5, 8, 5, 2, 1697, 1698, 7, 91, 2, 2, 1698, 1700, 5, 8, 5, 2, 1699, 1697, 3, 2, 2, 2, 1699, 1700, 3, 2, 2, 2, 1700, 169, 3, 2, 2, 2, 1701, 1702, 7, 346, 2, 2, 1702, 1703, 7, 131, 2, 2, 1703, 1704, 5, 368, 185, 2, 1704, 1705, 7, 285, 2, 2, 1705, 1706, 5, 8, 5, 2, 1706, 171, 3, 2, 2, 2, 1707, 1708, 9, 27, 2, 2, 1708, 1709, 5, 368, 185, 2, 1709, 1710, 7, 285, 2, 2, 1710, 1711, 5, 4, 3, 2, 1711, 173, 3, 2, 2, 2, 1712, 1713, 7, 91, 2, 2, 1713, 1714, 5, 4, 3, 2, 1714, 175, 3, 2, 2, 2, 1715, 1718, 7, 135, 2, 2, 1716, 1719, 5, 434, 218, 2, 1717, 1719, 5, 384, 193, 2, 1718, 1716, 3, 2, 2, 2, 1718, 1717, 3, 2, 2, 2, 1719, 177, 3, 2, 2, 2, 1720, 1727, 7, 140, 2, 2, 1721, 1722, 7, 205, 2, 2, 1722, 1728, 7, 280, 2, 2, 1723, 1725, 7, 148, 2, 2, 1724, 1726, 7, 280, 2, 2, 1725, 1724, 3, 2, 2, 2, 1725, 1726, 3, 2, 2, 2, 1726, 1728, 3, 2, 2, 2, 1727, 1721, 3, 2, 2, 2, 1727, 1723, 3, 2, 2, 2, 1728, 1729, 3, 2, 2, 2, 1729, 1731, 5, 330, 166, 2, 1730, 1732, 5, 180, 91, 2, 1731, 1730, 3, 2, 2, 2, 1731, 1732, 3, 2, 2, 2, 1732, 1735, 3, 2, 2, 2, 1733, 1736, 5, 282, 142, 2, 1734, 1736, 5, 182, 92, 2, 1735, 1733, 3, 2, 2, 2, 1735, 1734, 3, 2, 2, 2, 1736, 179, 3, 2, 2, 2, 1737, 1738, 7, 362, 2, 2, 1738, 1743, 5, 440, 221, 2, 1739, 1740, 7, 343, 2, 2, 1740, 1742, 5, 440, 221, 2, 1741, 1739, 3, 2, 2, 2, 1742, 1745, 3, 2, 2, 2, 1743, 1741, 3, 2, 2, 2, 1743, 1744, 3, 2, 2, 2, 1744, 1746, 3, 2, 2, 2, 1745, 1743, 3, 2, 2, 2, 1746, 1747, 7, 365, 2, 2, 1747, 181, 3, 2, 2, 2, 1748, 1749, 7, 302, 2, 2, 1749, 1754, 5, 184, 93, 2, 1750, 1751, 7, 343, 2, 2, 1751, 1753, 5, 184, 93, 2, 1752, 1750, 3, 2, 2, 2, 1753, 1756, 3, 2, 2, 2, 1754, 1752, 3, 2, 2, 2, 1754, 1755, 3, 2, 2, 2, 1755, 183, 3, 2, 2, 2, 1756, 1754, 3, 2, 2, 2, 1757, 1758, 7, 362, 2, 2, 1758, 1763, 5, 384, 193, 2, 1759, 1760, 7, 343, 2, 2, 1760, 1762, 5, 384, 193, 2, 1761, 1759, 3, 2, 2, 2, 1762, 1765, 3, 2, 2, 2, 1763, 1761, 3, 2, 2, 2, 1763, 1764, 3, 2, 2, 2, 1764, 1766, 3, 2, 2, 2, 1765, 1763, 3, 2, 2, 2, 1766, 1767, 7, 365, 2, 2, 1767, 185, 3, 2, 2, 2, 1768, 1769, 7, 140, 2, 2, 1769, 1771, 7, 205, 2, 2, 1770, 1772, 7, 163, 2, 2, 1771, 1770, 3, 2, 2, 2, 1771, 1772, 3, 2, 2, 2, 1772, 1773, 3, 2, 2, 2, 1773, 1774, 7, 84, 2, 2, 1774, 1775, 5, 422, 212, 2, 1775, 1776, 5, 420, 211, 2, 1776, 187, 3, 2, 2, 2, 1777, 1779, 7, 104, 2, 2, 1778, 1780, 7, 369, 2, 2, 1779, 1778, 3, 2, 2, 2, 1779, 1780, 3, 2, 2, 2, 1780, 1783, 3, 2, 2, 2, 1781, 1782, 7, 308, 2, 2, 1782, 1784, 5, 368, 185, 2, 1783, 1781, 3, 2, 2, 2, 1783, 1784, 3, 2, 2, 2, 1784, 189, 3, 2, 2, 2, 1785, 1786, 7, 119, 2, 2, 1786, 1787, 7, 82, 2, 2, 1787, 1788, 5, 192, 97, 2, 1788, 191, 3, 2, 2, 2, 1789, 1792, 5, 194, 98, 2, 1790, 1792, 5, 196, 99, 2, 1791, 1789, 3, 2, 2, 2, 1791, 1790, 3, 2, 2, 2, 1792, 193, 3, 2, 2, 2, 1793, 1794, 7, 101, 2, 2, 1794, 1795, 7, 372, 2, 2, 1795, 1796, 5, 440, 221, 2, 1796, 1797, 7, 348, 2, 2, 1797, 1798, 7, 177, 2, 2, 1798, 195, 3, 2, 2, 2, 1799, 1800, 5, 440, 221, 2, 1800, 1801, 7, 348, 2, 2, 1801, 1802, 7, 241, 2, 2, 1802, 197, 3, 2, 2, 2, 1803, 1804, 7, 122, 2, 2, 1804, 1809, 5, 200, 101, 2, 1805, 1806, 7, 343, 2, 2, 1806, 1808, 5, 200, 101, 2, 1807, 1805, 3, 2, 2, 2, 1808, 1811, 3, 2, 2, 2, 1809, 1807, 3, 2, 2, 2, 1809, 1810, 3, 2, 2, 2, 1810, 1812, 3, 2, 2, 2, 1811, 1809, 3, 2, 2, 2, 1812, 1813, 7, 289, 2, 2, 1813, 1814, 7, 236, 2, 2, 1814, 1815, 5, 440, 221, 2, 1815, 199, 3, 2, 2, 2, 1816, 1817, 7, 100, 2, 2, 1817, 1818, 7, 197, 2, 2, 1818, 1819, 7, 217, 2, 2, 1819, 1820, 5, 440, 221, 2, 1820, 201, 3, 2, 2, 2, 1821, 1823, 7, 158, 2, 2, 1822, 1824, 7, 369, 2, 2, 1823, 1822, 3, 2, 2, 2, 1823, 1824, 3, 2, 2, 2, 1824, 203, 3, 2, 2, 2, 1825, 1826, 7, 172, 2, 2, 1826, 1827, 7, 195, 2, 2, 1827, 1830, 5, 384, 193, 2, 1828, 1829, 7, 289, 2, 2, 1829, 1831, 5, 384, 193, 2, 1830, 1828, 3, 2, 2, 2, 1830, 1831, 3, 2, 2, 2, 1831, 1834, 3, 2, 2, 2, 1832, 1833, 7, 14, 2, 2, 1833, 1835, 5, 384, 193, 2, 1834, 1832, 3, 2, 2, 2, 1834, 1835, 3, 2, 2, 2, 1835, 205, 3, 2, 2, 2, 1836, 1837, 7, 199, 2, 2, 1837, 1843, 7, 369, 2, 2, 1838, 1841, 7, 112, 2, 2, 1839, 1842, 5, 282, 142, 2, 1840, 1842, 5, 384, 193, 2, 1841, 1839, 3, 2, 2, 2, 1841, 1840, 3, 2, 2, 2, 1842, 1844, 3, 2, 2, 2, 1843, 1838, 3, 2, 2, 2, 1843, 1844, 3, 2, 2, 2, 1844, 207, 3, 2, 2, 2, 1845, 1847, 7, 107, 2, 2, 1846, 1848, 7, 116, 2, 2, 1847, 1846, 3, 2, 2, 2, 1847, 1848, 3, 2, 2, 2, 1848, 1849, 3, 2, 2, 2, 1849, 1850, 7, 369, 2, 2, 1850, 1851, 7, 148, 2, 2, 1851, 1856, 7, 369, 2, 2, 1852, 1853, 7, 343, 2, 2, 1853, 1855, 7, 369, 2, 2, 1854, 1852, 3, 2, 2, 2, 1855, 1858, 3, 2, 2, 2, 1856, 1854, 3, 2, 2, 2, 1856, 1857, 3, 2, 2, 2, 1857, 209, 3, 2, 2, 2, 1858, 1856, 3, 2, 2, 2, 1859, 1860, 7, 42, 2, 2, 1860, 1861, 9, 28, 2, 2, 1861, 1862, 7, 197, 2, 2, 1862, 1864, 5, 330, 166, 2, 1863, 1865, 5, 212, 107, 2, 1864, 1863, 3, 2, 2, 2, 1864, 1865, 3, 2, 2, 2, 1865, 211, 3, 2, 2, 2, 1866, 1867, 7, 44, 2, 2, 1867, 1868, 7, 362, 2, 2, 1868, 1873, 5, 440, 221, 2, 1869, 1870, 7, 343, 2, 2, 1870, 1872, 5, 440, 221, 2, 1871, 1869, 3, 2, 2, 2, 1872, 1875, 3, 2, 2, 2, 1873, 1871, 3, 2, 2, 2, 1873, 1874, 3, 2, 2, 2, 1874, 1876, 3, 2, 2, 2, 1875, 1873, 3, 2, 2, 2, 1876, 1877, 7, 365, 2, 2, 1877, 213, 3, 2, 2, 2, 1878, 1879, 7, 39, 2, 2, 1879, 1880, 7, 369, 2, 2, 1880, 215, 3, 2, 2, 2, 1881, 1882, 7, 41, 2, 2, 1882, 1883, 9, 29, 2, 2, 1883, 1884, 5, 218, 110, 2, 1884, 1885, 7, 343, 2, 2, 1885, 1886, 5, 218, 110, 2, 1886, 217, 3, 2, 2, 2, 1887, 1889, 5, 330, 166, 2, 1888, 1890, 5, 332, 167, 2, 1889, 1888, 3, 2, 2, 2, 1889, 1890, 3, 2, 2, 2, 1890, 1896, 3, 2, 2, 2, 1891, 1892, 7, 362, 2, 2, 1892, 1893, 5, 282, 142, 2, 1893, 1894, 7, 365, 2, 2, 1894, 1896, 3, 2, 2, 2, 1895, 1887, 3, 2, 2, 2, 1895, 1891, 3, 2, 2, 2, 1896, 1899, 3, 2, 2, 2, 1897, 1898, 7, 14, 2, 2, 1898, 1900, 5, 440, 221, 2, 1899, 1897, 3, 2, 2, 2, 1899, 1900, 3, 2, 2, 2, 1900, 219, 3, 2, 2, 2, 1901, 1902, 7, 53, 2, 2, 1902, 1903, 7, 116, 2, 2, 1903, 1904, 7, 163, 2, 2, 1904, 1909, 5, 224, 113, 2, 1905, 1906, 7, 343, 2, 2, 1906, 1908, 5, 224, 113, 2, 1907, 1905, 3, 2, 2, 2, 1908, 1911, 3, 2, 2, 2, 1909, 1907, 3, 2, 2, 2, 1909, 1910, 3, 2, 2, 2, 1910, 1912, 3, 2, 2, 2, 1911, 1909, 3, 2, 2, 2, 1912, 1913, 7, 289, 2, 2, 1913, 1917, 5, 226, 114, 2, 1914, 1916, 5, 230, 116, 2, 1915, 1914, 3, 2, 2, 2, 1916, 1919, 3, 2, 2, 2, 1917, 1915, 3, 2, 2, 2, 1917, 1918, 3, 2, 2, 2, 1918, 221, 3, 2, 2, 2, 1919, 1917, 3, 2, 2, 2, 1920, 1926, 7, 53, 2, 2, 1921, 1927, 5, 330, 166, 2, 1922, 1923, 7, 362, 2, 2, 1923, 1924, 5, 282, 142, 2, 1924, 1925, 7, 365, 2, 2, 1925, 1927, 3, 2, 2, 2, 1926, 1921, 3, 2, 2, 2, 1926, 1922, 3, 2, 2, 2, 1927, 1928, 3, 2, 2, 2, 1928, 1930, 7, 289, 2, 2, 1929, 1931, 7, 127, 2, 2, 1930, 1929, 3, 2, 2, 2, 1930, 1931, 3, 2, 2, 2, 1931, 1932, 3, 2, 2, 2, 1932, 1936, 5, 226, 114, 2, 1933, 1935, 5, 228, 115, 2, 1934, 1933, 3, 2, 2, 2, 1935, 1938, 3, 2, 2, 2, 1936, 1934, 3, 2, 2, 2, 1936, 1937, 3, 2, 2, 2, 1937, 223, 3, 2, 2, 2, 1938, 1936, 3, 2, 2, 2, 1939, 1942, 5, 434, 218, 2, 1940, 1942, 5, 384, 193, 2, 1941, 1939, 3, 2, 2, 2, 1941, 1940, 3, 2, 2, 2, 1942, 225, 3, 2, 2, 2, 1943, 1946, 5, 434, 218, 2, 1944, 1946, 5, 384, 193, 2, 1945, 1943, 3, 2, 2, 2, 1945, 1944, 3, 2, 2, 2, 1946, 227, 3, 2, 2, 2, 1947, 1948, 7, 14, 2, 2, 1948, 1956, 5, 440, 221, 2, 1949, 1950, 7, 17, 2, 2, 1950, 1956, 5, 384, 193, 2, 1951, 1952, 7, 79, 2, 2, 1952, 1956, 5, 384, 193, 2, 1953, 1954, 7, 266, 2, 2, 1954, 1956, 5, 440, 221, 2, 1955, 1947, 3, 2, 2, 2, 1955, 1949, 3, 2, 2, 2, 1955, 1951, 3, 2, 2, 2, 1955, 1953, 3, 2, 2, 2, 1956, 229, 3, 2, 2, 2, 1957, 1958, 9, 30, 2, 2, 1958, 231, 3, 2, 2, 2, 1959, 1961, 7, 47, 2, 2, 1960, 1962, 7, 313, 2, 2, 1961, 1960, 3, 2, 2, 2, 1961, 1962, 3, 2, 2, 2, 1962, 233, 3, 2, 2, 2, 1963, 1965, 7, 56, 2, 2, 1964, 1966, 7, 296, 2, 2, 1965, 1964, 3, 2, 2, 2, 1965, 1966, 3, 2, 2, 2, 1966, 1967, 3, 2, 2, 2, 1967, 1968, 7, 136, 2, 2, 1968, 1969, 5, 440, 221, 2, 1969, 1970, 7, 197, 2, 2, 1970, 1971, 5, 330, 166, 2, 1971, 1972, 7, 362, 2, 2, 1972, 1977, 5, 236, 119, 2, 1973, 1974, 7, 343, 2, 2, 1974, 1976, 5, 236, 119, 2, 1975, 1973, 3, 2, 2, 2, 1976, 1979, 3, 2, 2, 2, 1977, 1975, 3, 2, 2, 2, 1977, 1978, 3, 2, 2, 2, 1978, 1980, 3, 2, 2, 2, 1979, 1977, 3, 2, 2, 2, 1980, 1981, 7, 365, 2, 2, 1981, 235, 3, 2, 2, 2, 1982, 1984, 5, 440, 221, 2, 1983, 1985, 9, 9, 2, 2, 1984, 1983, 3, 2, 2, 2, 1984, 1985, 3, 2, 2, 2, 1985, 237, 3, 2, 2, 2, 1986, 1987, 5, 240, 121, 2, 1987, 239, 3, 2, 2, 2, 1988, 1989, 7, 311, 2, 2, 1989, 1990, 7, 362, 2, 2, 1990, 1991, 5, 440, 221, 2, 1991, 1992, 7, 348, 2, 2, 1992, 2000, 5, 440, 221, 2, 1993, 1994, 7, 343, 2, 2, 1994, 1995, 5, 440, 221, 2, 1995, 1996, 7, 348, 2, 2, 1996, 1997, 5, 440, 221, 2, 1997, 1999, 3, 2, 2, 2, 1998, 1993, 3, 2, 2, 2, 1999, 2002, 3, 2, 2, 2, 2000, 1998, 3, 2, 2, 2, 2000, 2001, 3, 2, 2, 2, 2001, 2003, 3, 2, 2, 2, 2002, 2000, 3, 2, 2, 2, 2003, 2007, 7, 365, 2, 2, 2004, 2006, 5, 108, 55, 2, 2005, 2004, 3, 2, 2, 2, 2006, 2009, 3, 2, 2, 2, 2007, 2005, 3, 2, 2, 2, 2007, 2008, 3, 2, 2, 2, 2008, 241, 3, 2, 2, 2, 2009, 2007, 3, 2, 2, 2, 2010, 2011, 7, 215, 2, 2, 2011, 2018, 5, 384, 193, 2, 2012, 2013, 7, 215, 2, 2, 2013, 2014, 7, 362, 2, 2, 2014, 2015, 5, 384, 193, 2, 2015, 2016, 7, 365, 2, 2, 2016, 2018, 3, 2, 2, 2, 2017, 2010, 3, 2, 2, 2, 2017, 2012, 3, 2, 2, 2, 2018, 243, 3, 2, 2, 2, 2019, 2021, 7, 346, 2, 2, 2020, 2019, 3, 2, 2, 2, 2020, 2021, 3, 2, 2, 2, 2021, 2022, 3, 2, 2, 2, 2022, 2024, 7, 220, 2, 2, 2023, 2025, 5, 384, 193, 2, 2024, 2023, 3, 2, 2, 2, 2024, 2025, 3, 2, 2, 2, 2025, 245, 3, 2, 2, 2, 2026, 2027, 7, 222, 2, 2, 2027, 247, 3, 2, 2, 2, 2028, 2040, 7, 227, 2, 2, 2029, 2031, 7, 267, 2, 2, 2030, 2032, 7, 301, 2, 2, 2031, 2030, 3, 2, 2, 2, 2031, 2032, 3, 2, 2, 2, 2032, 2033, 3, 2, 2, 2, 2033, 2038, 5, 384, 193, 2, 2034, 2035, 7, 253, 2, 2, 2035, 2036, 7, 177, 2, 2, 2036, 2037, 7, 348, 2, 2, 2037, 2039, 5, 384, 193, 2, 2038, 2034, 3, 2, 2, 2, 2038, 2039, 3, 2, 2, 2, 2039, 2041, 3, 2, 2, 2, 2040, 2029, 3, 2, 2, 2, 2040, 2041, 3, 2, 2, 2, 2041, 249, 3, 2, 2, 2, 2042, 2044, 7, 231, 2, 2, 2043, 2045, 5, 384, 193, 2, 2044, 2043, 3, 2, 2, 2, 2044, 2045, 3, 2, 2, 2, 2045, 251, 3, 2, 2, 2, 2046, 2048, 7, 237, 2, 2, 2047, 2049, 7, 313, 2, 2, 2048, 2047, 3, 2, 2, 2, 2048, 2049, 3, 2, 2, 2, 2049, 253, 3, 2, 2, 2, 2050, 2054, 5, 256, 129, 2, 2051, 2054, 5, 258, 130, 2, 2052, 2054, 5, 260, 131, 2, 2053, 2050, 3, 2, 2, 2, 2053, 2051, 3, 2, 2, 2, 2053, 2052, 3, 2, 2, 2, 2054, 255, 3, 2, 2, 2, 2055, 2057, 7, 60, 2, 2, 2056, 2055, 3, 2, 2, 2, 2056, 2057, 3, 2, 2, 2, 2057, 2058, 3, 2, 2, 2, 2058, 2061, 7, 246, 2, 2, 2059, 2061, 7, 61, 2, 2, 2060, 2056, 3, 2, 2, 2, 2060, 2059, 3, 2, 2, 2, 2061, 2063, 3, 2, 2, 2, 2062, 2064, 7, 348, 2, 2, 2063, 2062, 3, 2, 2, 2, 2063, 2064, 3, 2, 2, 2, 2064, 2065, 3, 2, 2, 2, 2065, 2066, 5, 384, 193, 2, 2066, 257, 3, 2, 2, 2, 2067, 2068, 9, 31, 2, 2, 2068, 2069, 9, 32, 2, 2, 2069, 259, 3, 2, 2, 2, 2070, 2071, 7, 219, 2, 2, 2071, 2074, 7, 348, 2, 2, 2072, 2075, 5, 384, 193, 2, 2073, 2075, 7, 189, 2, 2, 2074, 2072, 3, 2, 2, 2, 2074, 2073, 3, 2, 2, 2, 2075, 2077, 3, 2, 2, 2, 2076, 2078, 7, 297, 2, 2, 2077, 2076, 3, 2, 2, 2, 2077, 2078, 3, 2, 2, 2, 2078, 2079, 3, 2, 2, 2, 2079, 2080, 7, 112, 2, 2, 2080, 2081, 9, 33, 2, 2, 2081, 261, 3, 2, 2, 2, 2082, 2083, 7, 258, 2, 2, 2083, 2084, 5, 440, 221, 2, 2084, 263, 3, 2, 2, 2, 2085, 2088, 7, 278, 2, 2, 2086, 2087, 7, 290, 2, 2, 2087, 2089, 5, 384, 193, 2, 2088, 2086, 3, 2, 2, 2, 2088, 2089, 3, 2, 2, 2, 2089, 2090, 3, 2, 2, 2, 2090, 2100, 7, 112, 2, 2, 2091, 2101, 5, 282, 142, 2, 2092, 2094, 5, 330, 166, 2, 2093, 2095, 5, 332, 167, 2, 2094, 2093, 3, 2, 2, 2, 2094, 2095, 3, 2, 2, 2, 2095, 2098, 3, 2, 2, 2, 2096, 2097, 7, 161, 2, 2, 2097, 2099, 5, 384, 193, 2, 2098, 2096, 3, 2, 2, 2, 2098, 2099, 3, 2, 2, 2, 2099, 2101, 3, 2, 2, 2, 2100, 2091, 3, 2, 2, 2, 2100, 2092, 3, 2, 2, 2, 2101, 265, 3, 2, 2, 2, 2102, 2104, 7, 293, 2, 2, 2103, 2105, 7, 280, 2, 2, 2104, 2103, 3, 2, 2, 2, 2104, 2105, 3, 2, 2, 2, 2105, 2106, 3, 2, 2, 2, 2106, 2107, 5, 330, 166, 2, 2107, 267, 3, 2, 2, 2, 2108, 2109, 7, 299, 2, 2, 2109, 2110, 5, 384, 193, 2, 2110, 269, 3, 2, 2, 2, 2111, 2113, 7, 302, 2, 2, 2112, 2114, 7, 362, 2, 2, 2113, 2112, 3, 2, 2, 2, 2113, 2114, 3, 2, 2, 2, 2114, 2115, 3, 2, 2, 2, 2115, 2120, 5, 384, 193, 2, 2116, 2117, 7, 343, 2, 2, 2117, 2119, 5, 384, 193, 2, 2118, 2116, 3, 2, 2, 2, 2119, 2122, 3, 2, 2, 2, 2120, 2118, 3, 2, 2, 2, 2120, 2121, 3, 2, 2, 2, 2121, 2124, 3, 2, 2, 2, 2122, 2120, 3, 2, 2, 2, 2123, 2125, 7, 365, 2, 2, 2124, 2123, 3, 2, 2, 2, 2124, 2125, 3, 2, 2, 2, 2125, 2126, 3, 2, 2, 2, 2126, 2128, 7, 148, 2, 2, 2127, 2129, 7, 362, 2, 2, 2128, 2127, 3, 2, 2, 2, 2128, 2129, 3, 2, 2, 2, 2129, 2130, 3, 2, 2, 2, 2130, 2135, 5, 440, 221, 2, 2131, 2132, 7, 343, 2, 2, 2132, 2134, 5, 440, 221, 2, 2133, 2131, 3, 2, 2, 2, 2134, 2137, 3, 2, 2, 2, 2135, 2133, 3, 2, 2, 2, 2135, 2136, 3, 2, 2, 2, 2136, 2139, 3, 2, 2, 2, 2137, 2135, 3, 2, 2, 2, 2138, 2140, 7, 365, 2, 2, 2139, 2138, 3, 2, 2, 2, 2139, 2140, 3, 2, 2, 2, 2140, 271, 3, 2, 2, 2, 2141, 2142, 7, 310, 2, 2, 2142, 2143, 5, 368, 185, 2, 2143, 2144, 9, 34, 2, 2, 2144, 2145, 5, 4, 3, 2, 2145, 2147, 7, 95, 2, 2, 2146, 2148, 9, 35, 2, 2, 2147, 2146, 3, 2, 2, 2, 2147, 2148, 3, 2, 2, 2, 2148, 273, 3, 2, 2, 2, 2149, 2150, 7, 112, 2, 2, 2150, 2151, 7, 369, 2, 2, 2151, 2153, 7, 134, 2, 2, 2152, 2154, 7, 362, 2, 2, 2153, 2152, 3, 2, 2, 2, 2153, 2154, 3, 2, 2, 2, 2154, 2155, 3, 2, 2, 2, 2155, 2157, 5, 282, 142, 2, 2156, 2158, 7, 365, 2, 2, 2157, 2156, 3, 2, 2, 2, 2157, 2158, 3, 2, 2, 2, 2158, 2159, 3, 2, 2, 2, 2159, 2160, 7, 171, 2, 2, 2160, 2161, 5, 4, 3, 2, 2161, 2162, 7, 95, 2, 2, 2162, 2163, 7, 171, 2, 2, 2163, 275, 3, 2, 2, 2, 2164, 2165, 7, 112, 2, 2, 2165, 2166, 7, 369, 2, 2, 2166, 2168, 7, 134, 2, 2, 2167, 2169, 7, 233, 2, 2, 2168, 2167, 3, 2, 2, 2, 2168, 2169, 3, 2, 2, 2, 2169, 2170, 3, 2, 2, 2, 2170, 2171, 5, 384, 193, 2, 2171, 2172, 7, 347, 2, 2, 2172, 2175, 5, 384, 193, 2, 2173, 2174, 9, 36, 2, 2, 2174, 2176, 5, 384, 193, 2, 2175, 2173, 3, 2, 2, 2, 2175, 2176, 3, 2, 2, 2, 2176, 2177, 3, 2, 2, 2, 2177, 2178, 7, 171, 2, 2, 2178, 2179, 5, 4, 3, 2, 2179, 2180, 7, 95, 2, 2, 2180, 2181, 7, 171, 2, 2, 2181, 277, 3, 2, 2, 2, 2182, 2189, 7, 378, 2, 2, 2183, 2184, 7, 356, 2, 2, 2184, 2185, 7, 356, 2, 2, 2185, 2186, 7, 369, 2, 2, 2186, 2187, 7, 354, 2, 2, 2187, 2189, 7, 354, 2, 2, 2188, 2182, 3, 2, 2, 2, 2188, 2183, 3, 2, 2, 2, 2189, 279, 3, 2, 2, 2, 2190, 2191, 7, 300, 2, 2, 2191, 2196, 5, 384, 193, 2, 2192, 2193, 7, 343, 2, 2, 2193, 2195, 5, 384, 193, 2, 2194, 2192, 3, 2, 2, 2, 2195, 2198, 3, 2, 2, 2, 2196, 2194, 3, 2, 2, 2, 2196, 2197, 3, 2, 2, 2, 2197, 281, 3, 2, 2, 2, 2198, 2196, 3, 2, 2, 2, 2199, 2201, 5, 284, 143, 2, 2200, 2199, 3, 2, 2, 2, 2200, 2201, 3, 2, 2, 2, 2201, 2202, 3, 2, 2, 2, 2202, 2203, 5, 290, 146, 2, 2203, 283, 3, 2, 2, 2, 2204, 2205, 7, 311, 2, 2, 2205, 2210, 5, 286, 144, 2, 2206, 2207, 7, 343, 2, 2, 2207, 2209, 5, 286, 144, 2, 2208, 2206, 3, 2, 2, 2, 2209, 2212, 3, 2, 2, 2, 2210, 2208, 3, 2, 2, 2, 2210, 2211, 3, 2, 2, 2, 2211, 285, 3, 2, 2, 2, 2212, 2210, 3, 2, 2, 2, 2213, 2215, 5, 440, 221, 2, 2214, 2216, 5, 288, 145, 2, 2215, 2214, 3, 2, 2, 2, 2215, 2216, 3, 2, 2, 2, 2216, 2217, 3, 2, 2, 2, 2217, 2218, 7, 11, 2, 2, 2218, 2219, 7, 362, 2, 2, 2219, 2220, 5, 290, 146, 2, 2220, 2221, 7, 365, 2, 2, 2221, 287, 3, 2, 2, 2, 2222, 2223, 7, 362, 2, 2, 2223, 2228, 5, 440, 221, 2, 2224, 2225, 7, 343, 2, 2, 2225, 2227, 5, 440, 221, 2, 2226, 2224, 3, 2, 2, 2, 2227, 2230, 3, 2, 2, 2, 2228, 2226, 3, 2, 2, 2, 2228, 2229, 3, 2, 2, 2, 2229, 2231, 3, 2, 2, 2, 2230, 2228, 3, 2, 2, 2, 2231, 2232, 7, 365, 2, 2, 2232, 289, 3, 2, 2, 2, 2233, 2239, 5, 292, 147, 2, 2234, 2235, 5, 294, 148, 2, 2235, 2236, 5, 292, 147, 2, 2236, 2238, 3, 2, 2, 2, 2237, 2234, 3, 2, 2, 2, 2238, 2241, 3, 2, 2, 2, 2239, 2237, 3, 2, 2, 2, 2239, 2240, 3, 2, 2, 2, 2240, 291, 3, 2, 2, 2, 2241, 2239, 3, 2, 2, 2, 2242, 2248, 5, 296, 149, 2, 2243, 2244, 7, 362, 2, 2, 2244, 2245, 5, 290, 146, 2, 2245, 2246, 7, 365, 2, 2, 2246, 2248, 3, 2, 2, 2, 2247, 2242, 3, 2, 2, 2, 2247, 2243, 3, 2, 2, 2, 2248, 293, 3, 2, 2, 2, 2249, 2251, 7, 295, 2, 2, 2250, 2252, 7, 5, 2, 2, 2251, 2250, 3, 2, 2, 2, 2251, 2252, 3, 2, 2, 2, 2252, 2262, 3, 2, 2, 2, 2253, 2255, 7, 98, 2, 2, 2254, 2256, 7, 5, 2, 2, 2255, 2254, 3, 2, 2, 2, 2255, 2256, 3, 2, 2, 2, 2256, 2262, 3, 2, 2, 2, 2257, 2259, 7, 146, 2, 2, 2258, 2260, 7, 5, 2, 2, 2259, 2258, 3, 2, 2, 2, 2259, 2260, 3, 2, 2, 2, 2260, 2262, 3, 2, 2, 2, 2261, 2249, 3, 2, 2, 2, 2261, 2253, 3, 2, 2, 2, 2261, 2257, 3, 2, 2, 2, 2262, 295, 3, 2, 2, 2, 2263, 2264, 9, 37, 2, 2, 2264, 2266, 5, 298, 150, 2, 2265, 2267, 5, 310, 156, 2, 2266, 2265, 3, 2, 2, 2, 2266, 2267, 3, 2, 2, 2, 2267, 2269, 3, 2, 2, 2, 2268, 2270, 5, 312, 157, 2, 2269, 2268, 3, 2, 2, 2, 2269, 2270, 3, 2, 2, 2, 2270, 2272, 3, 2, 2, 2, 2271, 2273, 5, 332, 167, 2, 2272, 2271, 3, 2, 2, 2, 2272, 2273, 3, 2, 2, 2, 2273, 2275, 3, 2, 2, 2, 2274, 2276, 5, 334, 168, 2, 2275, 2274, 3, 2, 2, 2, 2275, 2276, 3, 2, 2, 2, 2276, 2279, 3, 2, 2, 2, 2277, 2280, 5, 336, 169, 2, 2278, 2280, 5, 338, 170, 2, 2279, 2277, 3, 2, 2, 2, 2279, 2278, 3, 2, 2, 2, 2279, 2280, 3, 2, 2, 2, 2280, 2282, 3, 2, 2, 2, 2281, 2283, 5, 340, 171, 2, 2282, 2281, 3, 2, 2, 2, 2282, 2283, 3, 2, 2, 2, 2283, 2285, 3, 2, 2, 2, 2284, 2286, 5, 342, 172, 2, 2285, 2284, 3, 2, 2, 2, 2285, 2286, 3, 2, 2, 2, 2286, 297, 3, 2, 2, 2, 2287, 2289, 5, 300, 151, 2, 2288, 2287, 3, 2, 2, 2, 2288, 2289, 3, 2, 2, 2, 2289, 2291, 3, 2, 2, 2, 2290, 2292, 5, 302, 152, 2, 2291, 2290, 3, 2, 2, 2, 2291, 2292, 3, 2, 2, 2, 2292, 2293, 3, 2, 2, 2, 2293, 2298, 5, 304, 153, 2, 2294, 2295, 7, 343, 2, 2, 2295, 2297, 5, 304, 153, 2, 2296, 2294, 3, 2, 2, 2, 2297, 2300, 3, 2, 2, 2, 2298, 2296, 3, 2, 2, 2, 2298, 2299, 3, 2, 2, 2, 2299, 299, 3, 2, 2, 2, 2300, 2298, 3, 2, 2, 2, 2301, 2302, 9, 38, 2, 2, 2302, 301, 3, 2, 2, 2, 2303, 2304, 7, 290, 2, 2, 2304, 2305, 5, 384, 193, 2, 2305, 303, 3, 2, 2, 2, 2306, 2307, 5, 440, 221, 2, 2307, 2308, 7, 348, 2, 2, 2308, 2310, 3, 2, 2, 2, 2309, 2306, 3, 2, 2, 2, 2309, 2310, 3, 2, 2, 2, 2310, 2311, 3, 2, 2, 2, 2311, 2313, 5, 384, 193, 2, 2312, 2314, 5, 306, 154, 2, 2313, 2312, 3, 2, 2, 2, 2313, 2314, 3, 2, 2, 2, 2314, 2317, 3, 2, 2, 2, 2315, 2317, 5, 308, 155, 2, 2316, 2309, 3, 2, 2, 2, 2316, 2315, 3, 2, 2, 2, 2317, 305, 3, 2, 2, 2, 2318, 2320, 6, 154, 5, 2, 2319, 2321, 7, 11, 2, 2, 2320, 2319, 3, 2, 2, 2, 2320, 2321, 3, 2, 2, 2, 2321, 2322, 3, 2, 2, 2, 2322, 2328, 5, 440, 221, 2, 2323, 2324, 7, 362, 2, 2, 2324, 2325, 7, 288, 2, 2, 2325, 2326, 7, 370, 2, 2, 2326, 2328, 7, 365, 2, 2, 2327, 2318, 3, 2, 2, 2, 2327, 2323, 3, 2, 2, 2, 2328, 307, 3, 2, 2, 2, 2329, 2330, 7, 369, 2, 2, 2330, 2332, 7, 346, 2, 2, 2331, 2329, 3, 2, 2, 2, 2331, 2332, 3, 2, 2, 2, 2332, 2333, 3, 2, 2, 2, 2333, 2334, 7, 358, 2, 2, 2334, 309, 3, 2, 2, 2, 2335, 2336, 7, 148, 2, 2, 2336, 2341, 5, 440, 221, 2, 2337, 2338, 7, 343, 2, 2, 2338, 2340, 5, 440, 221, 2, 2339, 2337, 3, 2, 2, 2, 2340, 2343, 3, 2, 2, 2, 2341, 2339, 3, 2, 2, 2, 2341, 2342, 3, 2, 2, 2, 2342, 311, 3, 2, 2, 2, 2343, 2341, 3, 2, 2, 2, 2344, 2345, 7, 116, 2, 2, 2345, 2349, 5, 314, 158, 2, 2346, 2348, 5, 320, 161, 2, 2347, 2346, 3, 2, 2, 2, 2348, 2351, 3, 2, 2, 2, 2349, 2347, 3, 2, 2, 2, 2349, 2350, 3, 2, 2, 2, 2350, 313, 3, 2, 2, 2, 2351, 2349, 3, 2, 2, 2, 2352, 2356, 5, 316, 159, 2, 2353, 2356, 5, 318, 160, 2, 2354, 2356, 5, 324, 163, 2, 2355, 2352, 3, 2, 2, 2, 2355, 2353, 3, 2, 2, 2, 2355, 2354, 3, 2, 2, 2, 2356, 315, 3, 2, 2, 2, 2357, 2359, 5, 330, 166, 2, 2358, 2360, 5, 328, 165, 2, 2359, 2358, 3, 2, 2, 2, 2359, 2360, 3, 2, 2, 2, 2360, 317, 3, 2, 2, 2, 2361, 2362, 7, 362, 2, 2, 2362, 2363, 5, 282, 142, 2, 2363, 2365, 7, 365, 2, 2, 2364, 2366, 5, 328, 165, 2, 2365, 2364, 3, 2, 2, 2, 2365, 2366, 3, 2, 2, 2, 2366, 319, 3, 2, 2, 2, 2367, 2368, 7, 343, 2, 2, 2368, 2375, 5, 314, 158, 2, 2369, 2370, 5, 322, 162, 2, 2370, 2371, 5, 314, 158, 2, 2371, 2372, 7, 197, 2, 2, 2372, 2373, 5, 368, 185, 2, 2373, 2375, 3, 2, 2, 2, 2374, 2367, 3, 2, 2, 2, 2374, 2369, 3, 2, 2, 2, 2375, 321, 3, 2, 2, 2, 2376, 2378, 7, 138, 2, 2, 2377, 2376, 3, 2, 2, 2, 2377, 2378, 3, 2, 2, 2, 2378, 2379, 3, 2, 2, 2, 2379, 2386, 7, 153, 2, 2, 2380, 2382, 9, 39, 2, 2, 2381, 2383, 7, 203, 2, 2, 2382, 2381, 3, 2, 2, 2, 2382, 2383, 3, 2, 2, 2, 2383, 2384, 3, 2, 2, 2, 2384, 2386, 7, 153, 2, 2, 2385, 2377, 3, 2, 2, 2, 2385, 2380, 3, 2, 2, 2, 2386, 323, 3, 2, 2, 2, 2387, 2388, 7, 280, 2, 2, 2388, 2389, 7, 362, 2, 2, 2389, 2390, 7, 302, 2, 2, 2390, 2395, 5, 326, 164, 2, 2391, 2392, 7, 343, 2, 2, 2392, 2394, 5, 326, 164, 2, 2393, 2391, 3, 2, 2, 2, 2394, 2397, 3, 2, 2, 2, 2395, 2393, 3, 2, 2, 2, 2395, 2396, 3, 2, 2, 2, 2396, 2398, 3, 2, 2, 2, 2397, 2395, 3, 2, 2, 2, 2398, 2400, 7, 365, 2, 2, 2399, 2401, 5, 328, 165, 2, 2400, 2399, 3, 2, 2, 2, 2400, 2401, 3, 2, 2, 2, 2401, 325, 3, 2, 2, 2, 2402, 2415, 5, 384, 193, 2, 2403, 2404, 7, 362, 2, 2, 2404, 2409, 5, 384, 193, 2, 2405, 2406, 7, 343, 2, 2, 2406, 2408, 5, 384, 193, 2, 2407, 2405, 3, 2, 2, 2, 2408, 2411, 3, 2, 2, 2, 2409, 2407, 3, 2, 2, 2, 2409, 2410, 3, 2, 2, 2, 2410, 2412, 3, 2, 2, 2, 2411, 2409, 3, 2, 2, 2, 2412, 2413, 7, 365, 2, 2, 2413, 2415, 3, 2, 2, 2, 2414, 2402, 3, 2, 2, 2, 2414, 2403, 3, 2, 2, 2, 2415, 327, 3, 2, 2, 2, 2416, 2418, 6, 165, 6, 2, 2417, 2419, 7, 11, 2, 2, 2418, 2417, 3, 2, 2, 2, 2418, 2419, 3, 2, 2, 2, 2419, 2420, 3, 2, 2, 2, 2420, 2431, 5, 440, 221, 2, 2421, 2422, 7, 362, 2, 2, 2422, 2427, 7, 369, 2, 2, 2423, 2424, 7, 343, 2, 2, 2424, 2426, 7, 369, 2, 2, 2425, 2423, 3, 2, 2, 2, 2426, 2429, 3, 2, 2, 2, 2427, 2425, 3, 2, 2, 2, 2427, 2428, 3, 2, 2, 2, 2428, 2430, 3, 2, 2, 2, 2429, 2427, 3, 2, 2, 2, 2430, 2432, 7, 365, 2, 2, 2431, 2421, 3, 2, 2, 2, 2431, 2432, 3, 2, 2, 2, 2432, 329, 3, 2, 2, 2, 2433, 2434, 5, 440, 221, 2, 2434, 331, 3, 2, 2, 2, 2435, 2436, 7, 309, 2, 2, 2436, 2437, 5, 368, 185, 2, 2437, 333, 3, 2, 2, 2, 2438, 2439, 7, 123, 2, 2, 2439, 2440, 7, 27, 2, 2, 2440, 2445, 5, 384, 193, 2, 2441, 2442, 7, 343, 2, 2, 2442, 2444, 5, 384, 193, 2, 2443, 2441, 3, 2, 2, 2, 2444, 2447, 3, 2, 2, 2, 2445, 2443, 3, 2, 2, 2, 2445, 2446, 3, 2, 2, 2, 2446, 335, 3, 2, 2, 2, 2447, 2445, 3, 2, 2, 2, 2448, 2449, 7, 126, 2, 2, 2449, 2450, 5, 368, 185, 2, 2450, 337, 3, 2, 2, 2, 2451, 2452, 7, 218, 2, 2, 2452, 2453, 5, 368, 185, 2, 2453, 339, 3, 2, 2, 2, 2454, 2455, 7, 201, 2, 2, 2455, 2456, 7, 27, 2, 2, 2456, 2458, 5, 384, 193, 2, 2457, 2459, 9, 9, 2, 2, 2458, 2457, 3, 2, 2, 2, 2458, 2459, 3, 2, 2, 2, 2459, 2467, 3, 2, 2, 2, 2460, 2461, 7, 343, 2, 2, 2461, 2463, 5, 384, 193, 2, 2462, 2464, 9, 9, 2, 2, 2463, 2462, 3, 2, 2, 2, 2463, 2464, 3, 2, 2, 2, 2464, 2466, 3, 2, 2, 2, 2465, 2460, 3, 2, 2, 2, 2466, 2469, 3, 2, 2, 2, 2467, 2465, 3, 2, 2, 2, 2467, 2468, 3, 2, 2, 2, 2468, 341, 3, 2, 2, 2, 2469, 2467, 3, 2, 2, 2, 2470, 2472, 5, 344, 173, 2, 2471, 2470, 3, 2, 2, 2, 2472, 2473, 3, 2, 2, 2, 2473, 2471, 3, 2, 2, 2, 2473, 2474, 3, 2, 2, 2, 2474, 343, 3, 2, 2, 2, 2475, 2476, 7, 161, 2, 2, 2476, 2487, 5, 384, 193, 2, 2477, 2478, 7, 311, 2, 2, 2478, 2484, 9, 40, 2, 2, 2479, 2480, 7, 299, 2, 2, 2480, 2481, 7, 8, 2, 2, 2481, 2482, 7, 154, 2, 2, 2482, 2483, 9, 41, 2, 2, 2483, 2485, 7, 167, 2, 2, 2484, 2479, 3, 2, 2, 2, 2484, 2485, 3, 2, 2, 2, 2485, 2487, 3, 2, 2, 2, 2486, 2475, 3, 2, 2, 2, 2486, 2477, 3, 2, 2, 2, 2487, 345, 3, 2, 2, 2, 2488, 2489, 7, 297, 2, 2, 2489, 2490, 5, 350, 176, 2, 2490, 2491, 7, 253, 2, 2, 2491, 2493, 5, 348, 175, 2, 2492, 2494, 5, 332, 167, 2, 2493, 2492, 3, 2, 2, 2, 2493, 2494, 3, 2, 2, 2, 2494, 2496, 3, 2, 2, 2, 2495, 2497, 5, 352, 177, 2, 2496, 2495, 3, 2, 2, 2, 2496, 2497, 3, 2, 2, 2, 2497, 347, 3, 2, 2, 2, 2498, 2503, 5, 28, 15, 2, 2499, 2500, 7, 343, 2, 2, 2500, 2502, 5, 28, 15, 2, 2501, 2499, 3, 2, 2, 2, 2502, 2505, 3, 2, 2, 2, 2503, 2501, 3, 2, 2, 2, 2503, 2504, 3, 2, 2, 2, 2504, 349, 3, 2, 2, 2, 2505, 2503, 3, 2, 2, 2, 2506, 2508, 5, 330, 166, 2, 2507, 2509, 5, 312, 157, 2, 2508, 2507, 3, 2, 2, 2, 2508, 2509, 3, 2, 2, 2, 2509, 2515, 3, 2, 2, 2, 2510, 2511, 7, 362, 2, 2, 2511, 2512, 5, 282, 142, 2, 2512, 2513, 7, 365, 2, 2, 2513, 2515, 3, 2, 2, 2, 2514, 2506, 3, 2, 2, 2, 2514, 2510, 3, 2, 2, 2, 2515, 2520, 3, 2, 2, 2, 2516, 2518, 7, 11, 2, 2, 2517, 2516, 3, 2, 2, 2, 2517, 2518, 3, 2, 2, 2, 2518, 2519, 3, 2, 2, 2, 2519, 2521, 5, 440, 221, 2, 2520, 2517, 3, 2, 2, 2, 2520, 2521, 3, 2, 2, 2, 2521, 351, 3, 2, 2, 2, 2522, 2523, 7, 91, 2, 2, 2523, 2524, 5, 178, 90, 2, 2524, 353, 3, 2, 2, 2, 2525, 2526, 7, 176, 2, 2, 2526, 2527, 7, 148, 2, 2, 2527, 2528, 5, 356, 179, 2, 2528, 2529, 7, 300, 2, 2, 2529, 2530, 5, 356, 179, 2, 2530, 2531, 7, 197, 2, 2, 2531, 2533, 5, 368, 185, 2, 2532, 2534, 5, 358, 180, 2, 2533, 2532, 3, 2, 2, 2, 2534, 2535, 3, 2, 2, 2, 2535, 2533, 3, 2, 2, 2, 2535, 2536, 3, 2, 2, 2, 2536, 355, 3, 2, 2, 2, 2537, 2543, 5, 330, 166, 2, 2538, 2539, 7, 362, 2, 2, 2539, 2540, 5, 282, 142, 2, 2540, 2541, 7, 365, 2, 2, 2541, 2543, 3, 2, 2, 2, 2542, 2537, 3, 2, 2, 2, 2542, 2538, 3, 2, 2, 2, 2543, 2548, 3, 2, 2, 2, 2544, 2546, 7, 11, 2, 2, 2545, 2544, 3, 2, 2, 2, 2545, 2546, 3, 2, 2, 2, 2546, 2547, 3, 2, 2, 2, 2547, 2549, 5, 440, 221, 2, 2548, 2545, 3, 2, 2, 2, 2548, 2549, 3, 2, 2, 2, 2549, 357, 3, 2, 2, 2, 2550, 2552, 7, 308, 2, 2, 2551, 2553, 7, 190, 2, 2, 2552, 2551, 3, 2, 2, 2, 2552, 2553, 3, 2, 2, 2, 2553, 2554, 3, 2, 2, 2, 2554, 2557, 7, 173, 2, 2, 2555, 2556, 7, 8, 2, 2, 2556, 2558, 5, 368, 185, 2, 2557, 2555, 3, 2, 2, 2, 2557, 2558, 3, 2, 2, 2, 2558, 2559, 3, 2, 2, 2, 2559, 2560, 7, 285, 2, 2, 2560, 2564, 5, 360, 181, 2, 2561, 2562, 7, 91, 2, 2, 2562, 2564, 7, 132, 2, 2, 2563, 2550, 3, 2, 2, 2, 2563, 2561, 3, 2, 2, 2, 2564, 359, 3, 2, 2, 2, 2565, 2567, 7, 140, 2, 2, 2566, 2568, 5, 180, 91, 2, 2567, 2566, 3, 2, 2, 2, 2567, 2568, 3, 2, 2, 2, 2568, 2569, 3, 2, 2, 2, 2569, 2570, 7, 302, 2, 2, 2570, 2586, 5, 184, 93, 2, 2571, 2572, 7, 297, 2, 2, 2572, 2573, 7, 253, 2, 2, 2573, 2578, 5, 28, 15, 2, 2574, 2575, 7, 343, 2, 2, 2575, 2577, 5, 28, 15, 2, 2576, 2574, 3, 2, 2, 2, 2577, 2580, 3, 2, 2, 2, 2578, 2576, 3, 2, 2, 2, 2578, 2579, 3, 2, 2, 2, 2579, 2582, 3, 2, 2, 2, 2580, 2578, 3, 2, 2, 2, 2581, 2583, 5, 332, 167, 2, 2582, 2581, 3, 2, 2, 2, 2582, 2583, 3, 2, 2, 2, 2583, 2586, 3, 2, 2, 2, 2584, 2586, 7, 77, 2, 2, 2585, 2565, 3, 2, 2, 2, 2585, 2571, 3, 2, 2, 2, 2585, 2584, 3, 2, 2, 2, 2586, 361, 3, 2, 2, 2, 2587, 2589, 7, 77, 2, 2, 2588, 2590, 7, 116, 2, 2, 2589, 2588, 3, 2, 2, 2, 2589, 2590, 3, 2, 2, 2, 2590, 2591, 3, 2, 2, 2, 2591, 2593, 5, 330, 166, 2, 2592, 2594, 5, 364, 183, 2, 2593, 2592, 3, 2, 2, 2, 2593, 2594, 3, 2, 2, 2, 2594, 2597, 3, 2, 2, 2, 2595, 2598, 5, 332, 167, 2, 2596, 2598, 7, 5, 2, 2, 2597, 2595, 3, 2, 2, 2, 2597, 2596, 3, 2, 2, 2, 2597, 2598, 3, 2, 2, 2, 2598, 363, 3, 2, 2, 2, 2599, 2601, 6, 183, 7, 2, 2600, 2602, 7, 11, 2, 2, 2601, 2600, 3, 2, 2, 2, 2601, 2602, 3, 2, 2, 2, 2602, 2603, 3, 2, 2, 2, 2603, 2604, 5, 440, 221, 2, 2604, 365, 3, 2, 2, 2, 2605, 2607, 9, 42, 2, 2, 2606, 2608, 7, 280, 2, 2, 2607, 2606, 3, 2, 2, 2, 2607, 2608, 3, 2, 2, 2, 2608, 2609, 3, 2, 2, 2, 2609, 2610, 5, 330, 166, 2, 2610, 367, 3, 2, 2, 2, 2611, 2613, 8, 185, 1, 2, 2612, 2614, 7, 190, 2, 2, 2613, 2612, 3, 2, 2, 2, 2613, 2614, 3, 2, 2, 2, 2614, 2615, 3, 2, 2, 2, 2615, 2616, 7, 362, 2, 2, 2616, 2617, 5, 368, 185, 2, 2617, 2618, 7, 365, 2, 2, 2618, 2621, 3, 2, 2, 2, 2619, 2621, 5, 370, 186, 2, 2620, 2611, 3, 2, 2, 2, 2620, 2619, 3, 2, 2, 2, 2621, 2628, 3, 2, 2, 2, 2622, 2623, 12, 4, 2, 2, 2623, 2624, 5, 380, 191, 2, 2624, 2625, 5, 368, 185, 5, 2625, 2627, 3, 2, 2, 2, 2626, 2622, 3, 2, 2, 2, 2627, 2630, 3, 2, 2, 2, 2628, 2626, 3, 2, 2, 2, 2628, 2629, 3, 2, 2, 2, 2629, 369, 3, 2, 2, 2, 2630, 2628, 3, 2, 2, 2, 2631, 2635, 5, 372, 187, 2, 2632, 2635, 5, 378, 190, 2, 2633, 2635, 5, 384, 193, 2, 2634, 2631, 3, 2, 2, 2, 2634, 2632, 3, 2, 2, 2, 2634, 2633, 3, 2, 2, 2, 2635, 371, 3, 2, 2, 2, 2636, 2637, 5, 384, 193, 2, 2637, 2639, 7, 150, 2, 2, 2638, 2640, 7, 190, 2, 2, 2639, 2638, 3, 2, 2, 2, 2639, 2640, 3, 2, 2, 2, 2640, 2641, 3, 2, 2, 2, 2641, 2642, 7, 192, 2, 2, 2642, 2660, 3, 2, 2, 2, 2643, 2644, 5, 384, 193, 2, 2644, 2645, 7, 19, 2, 2, 2645, 2646, 5, 384, 193, 2, 2646, 2647, 7, 8, 2, 2, 2647, 2648, 5, 384, 193, 2, 2648, 2660, 3, 2, 2, 2, 2649, 2651, 7, 190, 2, 2, 2650, 2649, 3, 2, 2, 2, 2650, 2651, 3, 2, 2, 2, 2651, 2652, 3, 2, 2, 2, 2652, 2653, 7, 103, 2, 2, 2653, 2654, 7, 362, 2, 2, 2654, 2655, 5, 282, 142, 2, 2655, 2656, 7, 365, 2, 2, 2656, 2660, 3, 2, 2, 2, 2657, 2660, 5, 374, 188, 2, 2658, 2660, 5, 376, 189, 2, 2659, 2636, 3, 2, 2, 2, 2659, 2643, 3, 2, 2, 2, 2659, 2650, 3, 2, 2, 2, 2659, 2657, 3, 2, 2, 2, 2659, 2658, 3, 2, 2, 2, 2660, 373, 3, 2, 2, 2, 2661, 2663, 5, 384, 193, 2, 2662, 2664, 7, 190, 2, 2, 2663, 2662, 3, 2, 2, 2, 2663, 2664, 3, 2, 2, 2, 2664, 2665, 3, 2, 2, 2, 2665, 2666, 7, 134, 2, 2, 2666, 2676, 7, 362, 2, 2, 2667, 2672, 5, 384, 193, 2, 2668, 2669, 7, 343, 2, 2, 2669, 2671, 5, 384, 193, 2, 2670, 2668, 3, 2, 2, 2, 2671, 2674, 3, 2, 2, 2, 2672, 2670, 3, 2, 2, 2, 2672, 2673, 3, 2, 2, 2, 2673, 2677, 3, 2, 2, 2, 2674, 2672, 3, 2, 2, 2, 2675, 2677, 5, 282, 142, 2, 2676, 2667, 3, 2, 2, 2, 2676, 2675, 3, 2, 2, 2, 2677, 2678, 3, 2, 2, 2, 2678, 2679, 7, 365, 2, 2, 2679, 375, 3, 2, 2, 2, 2680, 2681, 7, 362, 2, 2, 2681, 2686, 5, 384, 193, 2, 2682, 2683, 7, 343, 2, 2, 2683, 2685, 5, 384, 193, 2, 2684, 2682, 3, 2, 2, 2, 2685, 2688, 3, 2, 2, 2, 2686, 2684, 3, 2, 2, 2, 2686, 2687, 3, 2, 2, 2, 2687, 2689, 3, 2, 2, 2, 2688, 2686, 3, 2, 2, 2, 2689, 2691, 7, 365, 2, 2, 2690, 2692, 7, 190, 2, 2, 2691, 2690, 3, 2, 2, 2, 2691, 2692, 3, 2, 2, 2, 2692, 2693, 3, 2, 2, 2, 2693, 2694, 7, 134, 2, 2, 2694, 2695, 7, 362, 2, 2, 2695, 2696, 5, 282, 142, 2, 2696, 2697, 7, 365, 2, 2, 2697, 377, 3, 2, 2, 2, 2698, 2699, 5, 384, 193, 2, 2699, 2700, 5, 382, 192, 2, 2700, 2701, 5, 384, 193, 2, 2701, 379, 3, 2, 2, 2, 2702, 2703, 9, 43, 2, 2, 2703, 381, 3, 2, 2, 2, 2704, 2717, 7, 348, 2, 2, 2705, 2717, 7, 349, 2, 2, 2706, 2717, 7, 352, 2, 2, 2707, 2717, 7, 353, 2, 2, 2708, 2717, 7, 356, 2, 2, 2709, 2717, 7, 357, 2, 2, 2710, 2717, 7, 354, 2, 2, 2711, 2717, 7, 355, 2, 2, 2712, 2714, 7, 190, 2, 2, 2713, 2712, 3, 2, 2, 2, 2713, 2714, 3, 2, 2, 2, 2714, 2715, 3, 2, 2, 2, 2715, 2717, 9, 44, 2, 2, 2716, 2704, 3, 2, 2, 2, 2716, 2705, 3, 2, 2, 2, 2716, 2706, 3, 2, 2, 2, 2716, 2707, 3, 2, 2, 2, 2716, 2708, 3, 2, 2, 2, 2716, 2709, 3, 2, 2, 2, 2716, 2710, 3, 2, 2, 2, 2716, 2711, 3, 2, 2, 2, 2716, 2713, 3, 2, 2, 2, 2717, 383, 3, 2, 2, 2, 2718, 2719, 8, 193, 1, 2, 2719, 2720, 7, 362, 2, 2, 2720, 2721, 5, 282, 142, 2, 2721, 2722, 7, 365, 2, 2, 2722, 2736, 3, 2, 2, 2, 2723, 2724, 7, 362, 2, 2, 2724, 2725, 5, 384, 193, 2, 2725, 2726, 7, 365, 2, 2, 2726, 2736, 3, 2, 2, 2, 2727, 2736, 5, 388, 195, 2, 2728, 2736, 5, 392, 197, 2, 2729, 2736, 5, 396, 199, 2, 2730, 2736, 5, 402, 202, 2, 2731, 2736, 5, 404, 203, 2, 2732, 2736, 5, 412, 207, 2, 2733, 2736, 5, 414, 208, 2, 2734, 2736, 5, 386, 194, 2, 2735, 2718, 3, 2, 2, 2, 2735, 2723, 3, 2, 2, 2, 2735, 2727, 3, 2, 2, 2, 2735, 2728, 3, 2, 2, 2, 2735, 2729, 3, 2, 2, 2, 2735, 2730, 3, 2, 2, 2, 2735, 2731, 3, 2, 2, 2, 2735, 2732, 3, 2, 2, 2, 2735, 2733, 3, 2, 2, 2, 2735, 2734, 3, 2, 2, 2, 2736, 2753, 3, 2, 2, 2, 2737, 2738, 12, 16, 2, 2, 2738, 2739, 7, 358, 2, 2, 2739, 2752, 5, 384, 193, 17, 2740, 2741, 12, 15, 2, 2, 2741, 2742, 7, 345, 2, 2, 2742, 2752, 5, 384, 193, 16, 2743, 2744, 12, 14, 2, 2, 2744, 2745, 7, 341, 2, 2, 2745, 2752, 5, 384, 193, 15, 2746, 2747, 12, 13, 2, 2, 2747, 2748, 7, 368, 2, 2, 2748, 2752, 5, 384, 193, 14, 2749, 2750, 12, 17, 2, 2, 2750, 2752, 5, 390, 196, 2, 2751, 2737, 3, 2, 2, 2, 2751, 2740, 3, 2, 2, 2, 2751, 2743, 3, 2, 2, 2, 2751, 2746, 3, 2, 2, 2, 2751, 2749, 3, 2, 2, 2, 2752, 2755, 3, 2, 2, 2, 2753, 2751, 3, 2, 2, 2, 2753, 2754, 3, 2, 2, 2, 2754, 385, 3, 2, 2, 2, 2755, 2753, 3, 2, 2, 2, 2756, 2765, 5, 436, 219, 2, 2757, 2765, 5, 438, 220, 2, 2758, 2765, 5, 448, 225, 2, 2759, 2765, 5, 440, 221, 2, 2760, 2765, 5, 442, 222, 2, 2761, 2765, 5, 446, 224, 2, 2762, 2765, 5, 444, 223, 2, 2763, 2765, 5, 450, 226, 2, 2764, 2756, 3, 2, 2, 2, 2764, 2757, 3, 2, 2, 2, 2764, 2758, 3, 2, 2, 2, 2764, 2759, 3, 2, 2, 2, 2764, 2760, 3, 2, 2, 2, 2764, 2761, 3, 2, 2, 2, 2764, 2762, 3, 2, 2, 2, 2764, 2763, 3, 2, 2, 2, 2765, 387, 3, 2, 2, 2, 2766, 2767, 7, 147, 2, 2, 2767, 2768, 5, 384, 193, 2, 2768, 2769, 5, 390, 196, 2, 2769, 389, 3, 2, 2, 2, 2770, 2771, 9, 45, 2, 2, 2771, 391, 3, 2, 2, 2, 2772, 2773, 5, 394, 198, 2, 2773, 2774, 9, 46, 2, 2, 2774, 2779, 5, 394, 198, 2, 2775, 2776, 9, 46, 2, 2, 2776, 2778, 5, 394, 198, 2, 2777, 2775, 3, 2, 2, 2, 2778, 2781, 3, 2, 2, 2, 2779, 2777, 3, 2, 2, 2, 2779, 2780, 3, 2, 2, 2, 2780, 393, 3, 2, 2, 2, 2781, 2779, 3, 2, 2, 2, 2782, 2783, 7, 362, 2, 2, 2783, 2784, 5, 384, 193, 2, 2784, 2785, 7, 365, 2, 2, 2785, 2792, 3, 2, 2, 2, 2786, 2792, 5, 396, 199, 2, 2787, 2792, 5, 404, 203, 2, 2788, 2792, 5, 412, 207, 2, 2789, 2792, 5, 414, 208, 2, 2790, 2792, 5, 386, 194, 2, 2791, 2782, 3, 2, 2, 2, 2791, 2786, 3, 2, 2, 2, 2791, 2787, 3, 2, 2, 2, 2791, 2788, 3, 2, 2, 2, 2791, 2789, 3, 2, 2, 2, 2791, 2790, 3, 2, 2, 2, 2792, 395, 3, 2, 2, 2, 2793, 2796, 5, 398, 200, 2, 2794, 2796, 5, 400, 201, 2, 2795, 2793, 3, 2, 2, 2, 2795, 2794, 3, 2, 2, 2, 2796, 397, 3, 2, 2, 2, 2797, 2798, 7, 32, 2, 2, 2798, 2804, 5, 384, 193, 2, 2799, 2800, 7, 308, 2, 2, 2800, 2801, 5, 384, 193, 2, 2801, 2802, 7, 285, 2, 2, 2802, 2803, 5, 384, 193, 2, 2803, 2805, 3, 2, 2, 2, 2804, 2799, 3, 2, 2, 2, 2805, 2806, 3, 2, 2, 2, 2806, 2804, 3, 2, 2, 2, 2806, 2807, 3, 2, 2, 2, 2807, 2810, 3, 2, 2, 2, 2808, 2809, 7, 91, 2, 2, 2809, 2811, 5, 384, 193, 2, 2810, 2808, 3, 2, 2, 2, 2810, 2811, 3, 2, 2, 2, 2811, 2812, 3, 2, 2, 2, 2812, 2813, 7, 95, 2, 2, 2813, 399, 3, 2, 2, 2, 2814, 2820, 7, 32, 2, 2, 2815, 2816, 7, 308, 2, 2, 2816, 2817, 5, 368, 185, 2, 2817, 2818, 7, 285, 2, 2, 2818, 2819, 5, 384, 193, 2, 2819, 2821, 3, 2, 2, 2, 2820, 2815, 3, 2, 2, 2, 2821, 2822, 3, 2, 2, 2, 2822, 2820, 3, 2, 2, 2, 2822, 2823, 3, 2, 2, 2, 2823, 2826, 3, 2, 2, 2, 2824, 2825, 7, 91, 2, 2, 2825, 2827, 5, 384, 193, 2, 2826, 2824, 3, 2, 2, 2, 2826, 2827, 3, 2, 2, 2, 2827, 2828, 3, 2, 2, 2, 2828, 2829, 7, 95, 2, 2, 2829, 401, 3, 2, 2, 2, 2830, 2831, 5, 440, 221, 2, 2831, 2832, 7, 359, 2, 2, 2832, 2833, 9, 47, 2, 2, 2833, 403, 3, 2, 2, 2, 2834, 2835, 7, 16, 2, 2, 2835, 2837, 7, 362, 2, 2, 2836, 2838, 5, 406, 204, 2, 2837, 2836, 3, 2, 2, 2, 2837, 2838, 3, 2, 2, 2, 2838, 2839, 3, 2, 2, 2, 2839, 2840, 5, 384, 193, 2, 2840, 2842, 7, 365, 2, 2, 2841, 2843, 5, 408, 205, 2, 2842, 2841, 3, 2, 2, 2, 2842, 2843, 3, 2, 2, 2, 2843, 2987, 3, 2, 2, 2, 2844, 2845, 7, 54, 2, 2, 2845, 2851, 7, 362, 2, 2, 2846, 2848, 5, 406, 204, 2, 2847, 2846, 3, 2, 2, 2, 2847, 2848, 3, 2, 2, 2, 2848, 2849, 3, 2, 2, 2, 2849, 2852, 5, 384, 193, 2, 2850, 2852, 7, 358, 2, 2, 2851, 2847, 3, 2, 2, 2, 2851, 2850, 3, 2, 2, 2, 2852, 2853, 3, 2, 2, 2, 2853, 2855, 7, 365, 2, 2, 2854, 2856, 5, 408, 205, 2, 2855, 2854, 3, 2, 2, 2, 2855, 2856, 3, 2, 2, 2, 2856, 2987, 3, 2, 2, 2, 2857, 2858, 7, 55, 2, 2, 2858, 2864, 7, 362, 2, 2, 2859, 2861, 5, 406, 204, 2, 2860, 2859, 3, 2, 2, 2, 2860, 2861, 3, 2, 2, 2, 2861, 2862, 3, 2, 2, 2, 2862, 2865, 5, 384, 193, 2, 2863, 2865, 7, 358, 2, 2, 2864, 2860, 3, 2, 2, 2, 2864, 2863, 3, 2, 2, 2, 2865, 2866, 3, 2, 2, 2, 2866, 2868, 7, 365, 2, 2, 2867, 2869, 5, 408, 205, 2, 2868, 2867, 3, 2, 2, 2, 2868, 2869, 3, 2, 2, 2, 2869, 2987, 3, 2, 2, 2, 2870, 2871, 7, 318, 2, 2, 2871, 2872, 7, 362, 2, 2, 2872, 2873, 7, 365, 2, 2, 2873, 2987, 5, 408, 205, 2, 2874, 2875, 7, 322, 2, 2, 2875, 2876, 7, 362, 2, 2, 2876, 2877, 7, 365, 2, 2, 2877, 2987, 5, 408, 205, 2, 2878, 2879, 7, 323, 2, 2, 2879, 2880, 7, 362, 2, 2, 2880, 2881, 5, 384, 193, 2, 2881, 2882, 7, 365, 2, 2, 2882, 2883, 5, 408, 205, 2, 2883, 2987, 3, 2, 2, 2, 2884, 2885, 7, 324, 2, 2, 2885, 2886, 7, 362, 2, 2, 2886, 2893, 5, 384, 193, 2, 2887, 2888, 7, 343, 2, 2, 2888, 2891, 5, 384, 193, 2, 2889, 2890, 7, 343, 2, 2, 2890, 2892, 5, 384, 193, 2, 2891, 2889, 3, 2, 2, 2, 2891, 2892, 3, 2, 2, 2, 2892, 2894, 3, 2, 2, 2, 2893, 2887, 3, 2, 2, 2, 2893, 2894, 3, 2, 2, 2, 2894, 2895, 3, 2, 2, 2, 2895, 2896, 7, 365, 2, 2, 2896, 2897, 5, 408, 205, 2, 2897, 2987, 3, 2, 2, 2, 2898, 2899, 7, 325, 2, 2, 2899, 2900, 7, 362, 2, 2, 2900, 2901, 5, 384, 193, 2, 2901, 2902, 7, 365, 2, 2, 2902, 2903, 5, 408, 205, 2, 2903, 2987, 3, 2, 2, 2, 2904, 2905, 7, 326, 2, 2, 2905, 2906, 7, 362, 2, 2, 2906, 2913, 5, 384, 193, 2, 2907, 2908, 7, 343, 2, 2, 2908, 2911, 5, 384, 193, 2, 2909, 2910, 7, 343, 2, 2, 2910, 2912, 5, 384, 193, 2, 2911, 2909, 3, 2, 2, 2, 2911, 2912, 3, 2, 2, 2, 2912, 2914, 3, 2, 2, 2, 2913, 2907, 3, 2, 2, 2, 2913, 2914, 3, 2, 2, 2, 2914, 2915, 3, 2, 2, 2, 2915, 2916, 7, 365, 2, 2, 2916, 2917, 5, 408, 205, 2, 2917, 2987, 3, 2, 2, 2, 2918, 2919, 7, 174, 2, 2, 2919, 2921, 7, 362, 2, 2, 2920, 2922, 5, 406, 204, 2, 2921, 2920, 3, 2, 2, 2, 2921, 2922, 3, 2, 2, 2, 2922, 2923, 3, 2, 2, 2, 2923, 2924, 5, 384, 193, 2, 2924, 2926, 7, 365, 2, 2, 2925, 2927, 5, 408, 205, 2, 2926, 2925, 3, 2, 2, 2, 2926, 2927, 3, 2, 2, 2, 2927, 2987, 3, 2, 2, 2, 2928, 2929, 7, 180, 2, 2, 2929, 2931, 7, 362, 2, 2, 2930, 2932, 5, 406, 204, 2, 2931, 2930, 3, 2, 2, 2, 2931, 2932, 3, 2, 2, 2, 2932, 2933, 3, 2, 2, 2, 2933, 2934, 5, 384, 193, 2, 2934, 2936, 7, 365, 2, 2, 2935, 2937, 5, 408, 205, 2, 2936, 2935, 3, 2, 2, 2, 2936, 2937, 3, 2, 2, 2, 2937, 2987, 3, 2, 2, 2, 2938, 2939, 7, 335, 2, 2, 2939, 2940, 7, 362, 2, 2, 2940, 2941, 7, 365, 2, 2, 2941, 2987, 5, 408, 205, 2, 2942, 2943, 7, 336, 2, 2, 2943, 2944, 7, 362, 2, 2, 2944, 2945, 7, 365, 2, 2, 2945, 2987, 5, 408, 205, 2, 2946, 2947, 7, 337, 2, 2, 2947, 2949, 7, 362, 2, 2, 2948, 2950, 5, 406, 204, 2, 2949, 2948, 3, 2, 2, 2, 2949, 2950, 3, 2, 2, 2, 2950, 2951, 3, 2, 2, 2, 2951, 2952, 5, 384, 193, 2, 2952, 2954, 7, 365, 2, 2, 2953, 2955, 5, 408, 205, 2, 2954, 2953, 3, 2, 2, 2, 2954, 2955, 3, 2, 2, 2, 2955, 2987, 3, 2, 2, 2, 2956, 2957, 7, 277, 2, 2, 2957, 2959, 7, 362, 2, 2, 2958, 2960, 5, 406, 204, 2, 2959, 2958, 3, 2, 2, 2, 2959, 2960, 3, 2, 2, 2, 2960, 2961, 3, 2, 2, 2, 2961, 2962, 5, 384, 193, 2, 2962, 2964, 7, 365, 2, 2, 2963, 2965, 5, 408, 205, 2, 2964, 2963, 3, 2, 2, 2, 2964, 2965, 3, 2, 2, 2, 2965, 2987, 3, 2, 2, 2, 2966, 2967, 7, 303, 2, 2, 2967, 2969, 7, 362, 2, 2, 2968, 2970, 5, 406, 204, 2, 2969, 2968, 3, 2, 2, 2, 2969, 2970, 3, 2, 2, 2, 2970, 2971, 3, 2, 2, 2, 2971, 2972, 5, 384, 193, 2, 2972, 2974, 7, 365, 2, 2, 2973, 2975, 5, 408, 205, 2, 2974, 2973, 3, 2, 2, 2, 2974, 2975, 3, 2, 2, 2, 2975, 2987, 3, 2, 2, 2, 2976, 2977, 7, 339, 2, 2, 2977, 2979, 7, 362, 2, 2, 2978, 2980, 5, 406, 204, 2, 2979, 2978, 3, 2, 2, 2, 2979, 2980, 3, 2, 2, 2, 2980, 2981, 3, 2, 2, 2, 2981, 2982, 5, 384, 193, 2, 2982, 2984, 7, 365, 2, 2, 2983, 2985, 5, 408, 205, 2, 2984, 2983, 3, 2, 2, 2, 2984, 2985, 3, 2, 2, 2, 2985, 2987, 3, 2, 2, 2, 2986, 2834, 3, 2, 2, 2, 2986, 2844, 3, 2, 2, 2, 2986, 2857, 3, 2, 2, 2, 2986, 2870, 3, 2, 2, 2, 2986, 2874, 3, 2, 2, 2, 2986, 2878, 3, 2, 2, 2, 2986, 2884, 3, 2, 2, 2, 2986, 2898, 3, 2, 2, 2, 2986, 2904, 3, 2, 2, 2, 2986, 2918, 3, 2, 2, 2, 2986, 2928, 3, 2, 2, 2, 2986, 2938, 3, 2, 2, 2, 2986, 2942, 3, 2, 2, 2, 2986, 2946, 3, 2, 2, 2, 2986, 2956, 3, 2, 2, 2, 2986, 2966, 3, 2, 2, 2, 2986, 2976, 3, 2, 2, 2, 2987, 405, 3, 2, 2, 2, 2988, 2989, 9, 38, 2, 2, 2989, 407, 3, 2, 2, 2, 2990, 2991, 7, 204, 2, 2, 2991, 2993, 7, 362, 2, 2, 2992, 2994, 5, 410, 206, 2, 2993, 2992, 3, 2, 2, 2, 2993, 2994, 3, 2, 2, 2, 2994, 2996, 3, 2, 2, 2, 2995, 2997, 5, 340, 171, 2, 2996, 2995, 3, 2, 2, 2, 2996, 2997, 3, 2, 2, 2, 2997, 2998, 3, 2, 2, 2, 2998, 2999, 7, 365, 2, 2, 2999, 409, 3, 2, 2, 2, 3000, 3001, 7, 208, 2, 2, 3001, 3002, 7, 27, 2, 2, 3002, 3007, 5, 384, 193, 2, 3003, 3004, 7, 343, 2, 2, 3004, 3006, 5, 384, 193, 2, 3005, 3003, 3, 2, 2, 2, 3006, 3009, 3, 2, 2, 2, 3007, 3005, 3, 2, 2, 2, 3007, 3008, 3, 2, 2, 2, 3008, 411, 3, 2, 2, 2, 3009, 3007, 3, 2, 2, 2, 3010, 3211, 7, 317, 2, 2, 3011, 3012, 7, 34, 2, 2, 3012, 3013, 7, 362, 2, 2, 3013, 3014, 5, 384, 193, 2, 3014, 3015, 7, 11, 2, 2, 3015, 3017, 5, 120, 61, 2, 3016, 3018, 5, 122, 62, 2, 3017, 3016, 3, 2, 2, 2, 3017, 3018, 3, 2, 2, 2, 3018, 3019, 3, 2, 2, 2, 3019, 3020, 7, 365, 2, 2, 3020, 3211, 3, 2, 2, 2, 3021, 3022, 7, 54, 2, 2, 3022, 3025, 7, 362, 2, 2, 3023, 3026, 5, 384, 193, 2, 3024, 3026, 7, 358, 2, 2, 3025, 3023, 3, 2, 2, 2, 3025, 3024, 3, 2, 2, 2, 3026, 3027, 3, 2, 2, 2, 3027, 3211, 7, 365, 2, 2, 3028, 3211, 7, 319, 2, 2, 3029, 3030, 7, 60, 2, 2, 3030, 3211, 7, 65, 2, 2, 3031, 3035, 7, 320, 2, 2, 3032, 3033, 7, 60, 2, 2, 3033, 3035, 7, 286, 2, 2, 3034, 3031, 3, 2, 2, 2, 3034, 3032, 3, 2, 2, 2, 3035, 3040, 3, 2, 2, 2, 3036, 3037, 7, 362, 2, 2, 3037, 3038, 5, 384, 193, 2, 3038, 3039, 7, 365, 2, 2, 3039, 3041, 3, 2, 2, 2, 3040, 3036, 3, 2, 2, 2, 3040, 3041, 3, 2, 2, 2, 3041, 3211, 3, 2, 2, 2, 3042, 3211, 7, 321, 2, 2, 3043, 3044, 7, 60, 2, 2, 3044, 3211, 7, 340, 2, 2, 3045, 3046, 7, 327, 2, 2, 3046, 3047, 7, 362, 2, 2, 3047, 3060, 5, 384, 193, 2, 3048, 3049, 7, 343, 2, 2, 3049, 3057, 5, 384, 193, 2, 3050, 3051, 7, 343, 2, 2, 3051, 3052, 5, 384, 193, 2, 3052, 3053, 7, 348, 2, 2, 3053, 3054, 5, 384, 193, 2, 3054, 3056, 3, 2, 2, 2, 3055, 3050, 3, 2, 2, 2, 3056, 3059, 3, 2, 2, 2, 3057, 3055, 3, 2, 2, 2, 3057, 3058, 3, 2, 2, 2, 3058, 3061, 3, 2, 2, 2, 3059, 3057, 3, 2, 2, 2, 3060, 3048, 3, 2, 2, 2, 3060, 3061, 3, 2, 2, 2, 3061, 3062, 3, 2, 2, 2, 3062, 3063, 7, 365, 2, 2, 3063, 3211, 3, 2, 2, 2, 3064, 3065, 7, 328, 2, 2, 3065, 3066, 7, 362, 2, 2, 3066, 3079, 5, 384, 193, 2, 3067, 3068, 7, 343, 2, 2, 3068, 3076, 5, 384, 193, 2, 3069, 3070, 7, 343, 2, 2, 3070, 3071, 5, 384, 193, 2, 3071, 3072, 7, 348, 2, 2, 3072, 3073, 5, 384, 193, 2, 3073, 3075, 3, 2, 2, 2, 3074, 3069, 3, 2, 2, 2, 3075, 3078, 3, 2, 2, 2, 3076, 3074, 3, 2, 2, 2, 3076, 3077, 3, 2, 2, 2, 3077, 3080, 3, 2, 2, 2, 3078, 3076, 3, 2, 2, 2, 3079, 3067, 3, 2, 2, 2, 3079, 3080, 3, 2, 2, 2, 3080, 3081, 3, 2, 2, 2, 3081, 3082, 7, 365, 2, 2, 3082, 3211, 3, 2, 2, 2, 3083, 3084, 7, 329, 2, 2, 3084, 3085, 7, 362, 2, 2, 3085, 3098, 5, 384, 193, 2, 3086, 3087, 7, 343, 2, 2, 3087, 3095, 5, 384, 193, 2, 3088, 3089, 7, 343, 2, 2, 3089, 3090, 5, 384, 193, 2, 3090, 3091, 7, 348, 2, 2, 3091, 3092, 5, 384, 193, 2, 3092, 3094, 3, 2, 2, 2, 3093, 3088, 3, 2, 2, 2, 3094, 3097, 3, 2, 2, 2, 3095, 3093, 3, 2, 2, 2, 3095, 3096, 3, 2, 2, 2, 3096, 3099, 3, 2, 2, 2, 3097, 3095, 3, 2, 2, 2, 3098, 3086, 3, 2, 2, 2, 3098, 3099, 3, 2, 2, 2, 3099, 3100, 3, 2, 2, 2, 3100, 3101, 7, 365, 2, 2, 3101, 3211, 3, 2, 2, 2, 3102, 3103, 7, 330, 2, 2, 3103, 3104, 7, 362, 2, 2, 3104, 3117, 5, 384, 193, 2, 3105, 3106, 7, 343, 2, 2, 3106, 3114, 5, 384, 193, 2, 3107, 3108, 7, 343, 2, 2, 3108, 3109, 5, 384, 193, 2, 3109, 3110, 7, 348, 2, 2, 3110, 3111, 5, 384, 193, 2, 3111, 3113, 3, 2, 2, 2, 3112, 3107, 3, 2, 2, 2, 3113, 3116, 3, 2, 2, 2, 3114, 3112, 3, 2, 2, 2, 3114, 3115, 3, 2, 2, 2, 3115, 3118, 3, 2, 2, 2, 3116, 3114, 3, 2, 2, 2, 3117, 3105, 3, 2, 2, 2, 3117, 3118, 3, 2, 2, 2, 3118, 3119, 3, 2, 2, 2, 3119, 3120, 7, 365, 2, 2, 3120, 3211, 3, 2, 2, 2, 3121, 3122, 7, 331, 2, 2, 3122, 3123, 7, 362, 2, 2, 3123, 3136, 5, 384, 193, 2, 3124, 3125, 7, 343, 2, 2, 3125, 3133, 5, 384, 193, 2, 3126, 3127, 7, 343, 2, 2, 3127, 3128, 5, 384, 193, 2, 3128, 3129, 7, 348, 2, 2, 3129, 3130, 5, 384, 193, 2, 3130, 3132, 3, 2, 2, 2, 3131, 3126, 3, 2, 2, 2, 3132, 3135, 3, 2, 2, 2, 3133, 3131, 3, 2, 2, 2, 3133, 3134, 3, 2, 2, 2, 3134, 3137, 3, 2, 2, 2, 3135, 3133, 3, 2, 2, 2, 3136, 3124, 3, 2, 2, 2, 3136, 3137, 3, 2, 2, 2, 3137, 3138, 3, 2, 2, 2, 3138, 3139, 7, 365, 2, 2, 3139, 3211, 3, 2, 2, 2, 3140, 3141, 7, 332, 2, 2, 3141, 3142, 7, 362, 2, 2, 3142, 3155, 5, 384, 193, 2, 3143, 3144, 7, 343, 2, 2, 3144, 3152, 5, 384, 193, 2, 3145, 3146, 7, 343, 2, 2, 3146, 3147, 5, 384, 193, 2, 3147, 3148, 7, 348, 2, 2, 3148, 3149, 5, 384, 193, 2, 3149, 3151, 3, 2, 2, 2, 3150, 3145, 3, 2, 2, 2, 3151, 3154, 3, 2, 2, 2, 3152, 3150, 3, 2, 2, 2, 3152, 3153, 3, 2, 2, 2, 3153, 3156, 3, 2, 2, 2, 3154, 3152, 3, 2, 2, 2, 3155, 3143, 3, 2, 2, 2, 3155, 3156, 3, 2, 2, 2, 3156, 3157, 3, 2, 2, 2, 3157, 3158, 7, 365, 2, 2, 3158, 3211, 3, 2, 2, 2, 3159, 3160, 7, 333, 2, 2, 3160, 3161, 7, 362, 2, 2, 3161, 3169, 5, 384, 193, 2, 3162, 3163, 7, 343, 2, 2, 3163, 3164, 5, 384, 193, 2, 3164, 3165, 7, 348, 2, 2, 3165, 3166, 5, 384, 193, 2, 3166, 3168, 3, 2, 2, 2, 3167, 3162, 3, 2, 2, 2, 3168, 3171, 3, 2, 2, 2, 3169, 3167, 3, 2, 2, 2, 3169, 3170, 3, 2, 2, 2, 3170, 3172, 3, 2, 2, 2, 3171, 3169, 3, 2, 2, 2, 3172, 3173, 7, 365, 2, 2, 3173, 3211, 3, 2, 2, 2, 3174, 3175, 7, 334, 2, 2, 3175, 3176, 7, 362, 2, 2, 3176, 3182, 5, 384, 193, 2, 3177, 3178, 7, 343, 2, 2, 3178, 3179, 5, 384, 193, 2, 3179, 3180, 7, 348, 2, 2, 3180, 3181, 5, 384, 193, 2, 3181, 3183, 3, 2, 2, 2, 3182, 3177, 3, 2, 2, 2, 3183, 3184, 3, 2, 2, 2, 3184, 3182, 3, 2, 2, 2, 3184, 3185, 3, 2, 2, 2, 3185, 3188, 3, 2, 2, 2, 3186, 3187, 7, 343, 2, 2, 3187, 3189, 5, 384, 193, 2, 3188, 3186, 3, 2, 2, 2, 3188, 3189, 3, 2, 2, 2, 3189, 3190, 3, 2, 2, 2, 3190, 3191, 7, 365, 2, 2, 3191, 3211, 3, 2, 2, 2, 3192, 3193, 7, 245, 2, 2, 3193, 3194, 7, 362, 2, 2, 3194, 3195, 5, 384, 193, 2, 3195, 3196, 7, 365, 2, 2, 3196, 3211, 3, 2, 2, 2, 3197, 3198, 7, 276, 2, 2, 3198, 3199, 7, 362, 2, 2, 3199, 3200, 5, 384, 193, 2, 3200, 3201, 7, 116, 2, 2, 3201, 3204, 5, 384, 193, 2, 3202, 3203, 7, 112, 2, 2, 3203, 3205, 5, 384, 193, 2, 3204, 3202, 3, 2, 2, 2, 3204, 3205, 3, 2, 2, 2, 3205, 3206, 3, 2, 2, 2, 3206, 3207, 7, 365, 2, 2, 3207, 3211, 3, 2, 2, 2, 3208, 3211, 7, 338, 2, 2, 3209, 3211, 7, 340, 2, 2, 3210, 3010, 3, 2, 2, 2, 3210, 3011, 3, 2, 2, 2, 3210, 3021, 3, 2, 2, 2, 3210, 3028, 3, 2, 2, 2, 3210, 3029, 3, 2, 2, 2, 3210, 3034, 3, 2, 2, 2, 3210, 3042, 3, 2, 2, 2, 3210, 3043, 3, 2, 2, 2, 3210, 3045, 3, 2, 2, 2, 3210, 3064, 3, 2, 2, 2, 3210, 3083, 3, 2, 2, 2, 3210, 3102, 3, 2, 2, 2, 3210, 3121, 3, 2, 2, 2, 3210, 3140, 3, 2, 2, 2, 3210, 3159, 3, 2, 2, 2, 3210, 3174, 3, 2, 2, 2, 3210, 3192, 3, 2, 2, 2, 3210, 3197, 3, 2, 2, 2, 3210, 3208, 3, 2, 2, 2, 3210, 3209, 3, 2, 2, 2, 3211, 413, 3, 2, 2, 2, 3212, 3213, 5, 440, 221, 2, 3213, 3215, 7, 362, 2, 2, 3214, 3216, 5, 416, 209, 2, 3215, 3214, 3, 2, 2, 2, 3215, 3216, 3, 2, 2, 2, 3216, 3217, 3, 2, 2, 2, 3217, 3218, 7, 365, 2, 2, 3218, 415, 3, 2, 2, 2, 3219, 3224, 5, 418, 210, 2, 3220, 3221, 7, 343, 2, 2, 3221, 3223, 5, 418, 210, 2, 3222, 3220, 3, 2, 2, 2, 3223, 3226, 3, 2, 2, 2, 3224, 3222, 3, 2, 2, 2, 3224, 3225, 3, 2, 2, 2, 3225, 417, 3, 2, 2, 2, 3226, 3224, 3, 2, 2, 2, 3227, 3233, 6, 210, 14, 2, 3228, 3229, 5, 440, 221, 2, 3229, 3231, 7, 348, 2, 2, 3230, 3232, 7, 354, 2, 2, 3231, 3230, 3, 2, 2, 2, 3231, 3232, 3, 2, 2, 2, 3232, 3234, 3, 2, 2, 2, 3233, 3228, 3, 2, 2, 2, 3233, 3234, 3, 2, 2, 2, 3234, 3235, 3, 2, 2, 2, 3235, 3236, 5, 384, 193, 2, 3236, 419, 3, 2, 2, 2, 3237, 3240, 5, 282, 142, 2, 3238, 3240, 5, 384, 193, 2, 3239, 3237, 3, 2, 2, 2, 3239, 3238, 3, 2, 2, 2, 3240, 421, 3, 2, 2, 2, 3241, 3244, 5, 434, 218, 2, 3242, 3244, 5, 384, 193, 2, 3243, 3241, 3, 2, 2, 2, 3243, 3242, 3, 2, 2, 2, 3244, 423, 3, 2, 2, 2, 3245, 3249, 7, 128, 2, 2, 3246, 3248, 5, 426, 214, 2, 3247, 3246, 3, 2, 2, 2, 3248, 3251, 3, 2, 2, 2, 3249, 3247, 3, 2, 2, 2, 3249, 3250, 3, 2, 2, 2, 3250, 425, 3, 2, 2, 2, 3251, 3249, 3, 2, 2, 2, 3252, 3253, 7, 368, 2, 2, 3253, 3254, 5, 440, 221, 2, 3254, 3255, 5, 384, 193, 2, 3255, 3265, 3, 2, 2, 2, 3256, 3257, 7, 368, 2, 2, 3257, 3258, 5, 440, 221, 2, 3258, 3259, 7, 369, 2, 2, 3259, 3260, 7, 348, 2, 2, 3260, 3261, 5, 384, 193, 2, 3261, 3265, 3, 2, 2, 2, 3262, 3263, 7, 368, 2, 2, 3263, 3265, 5, 440, 221, 2, 3264, 3252, 3, 2, 2, 2, 3264, 3256, 3, 2, 2, 2, 3264, 3262, 3, 2, 2, 2, 3265, 427, 3, 2, 2, 2, 3266, 3267, 7, 351, 2, 2, 3267, 3268, 5, 430, 216, 2, 3268, 3269, 7, 367, 2, 2, 3269, 3272, 3, 2, 2, 2, 3270, 3272, 5, 432, 217, 2, 3271, 3266, 3, 2, 2, 2, 3271, 3270, 3, 2, 2, 2, 3272, 429, 3, 2, 2, 2, 3273, 3275, 11, 2, 2, 2, 3274, 3273, 3, 2, 2, 2, 3275, 3278, 3, 2, 2, 2, 3276, 3277, 3, 2, 2, 2, 3276, 3274, 3, 2, 2, 2, 3277, 431, 3, 2, 2, 2, 3278, 3276, 3, 2, 2, 2, 3279, 3280, 7, 129, 2, 2, 3280, 3281, 5, 384, 193, 2, 3281, 433, 3, 2, 2, 2, 3282, 3297, 7, 377, 2, 2, 3283, 3287, 7, 345, 2, 2, 3284, 3285, 7, 346, 2, 2, 3285, 3287, 7, 345, 2, 2, 3286, 3283, 3, 2, 2, 2, 3286, 3284, 3, 2, 2, 2, 3286, 3287, 3, 2, 2, 2, 3287, 3288, 3, 2, 2, 2, 3288, 3293, 5, 440, 221, 2, 3289, 3290, 7, 345, 2, 2, 3290, 3292, 5, 440, 221, 2, 3291, 3289, 3, 2, 2, 2, 3292, 3295, 3, 2, 2, 2, 3293, 3291, 3, 2, 2, 2, 3293, 3294, 3, 2, 2, 2, 3294, 3297, 3, 2, 2, 2, 3295, 3293, 3, 2, 2, 2, 3296, 3282, 3, 2, 2, 2, 3296, 3286, 3, 2, 2, 2, 3297, 435, 3, 2, 2, 2, 3298, 3299, 7, 65, 2, 2, 3299, 3300, 5, 442, 222, 2, 3300, 437, 3, 2, 2, 2, 3301, 3302, 7, 286, 2, 2, 3302, 3303, 5, 442, 222, 2, 3303, 439, 3, 2, 2, 2, 3304, 3307, 7, 369, 2, 2, 3305, 3307, 5, 452, 227, 2, 3306, 3304, 3, 2, 2, 2, 3306, 3305, 3, 2, 2, 2, 3307, 3315, 3, 2, 2, 2, 3308, 3311, 7, 346, 2, 2, 3309, 3312, 7, 369, 2, 2, 3310, 3312, 5, 452, 227, 2, 3311, 3309, 3, 2, 2, 2, 3311, 3310, 3, 2, 2, 2, 3312, 3314, 3, 2, 2, 2, 3313, 3308, 3, 2, 2, 2, 3314, 3317, 3, 2, 2, 2, 3315, 3313, 3, 2, 2, 2, 3315, 3316, 3, 2, 2, 2, 3316, 441, 3, 2, 2, 2, 3317, 3315, 3, 2, 2, 2, 3318, 3321, 7, 370, 2, 2, 3319, 3321, 7, 371, 2, 2, 3320, 3318, 3, 2, 2, 2, 3320, 3319, 3, 2, 2, 2, 3321, 443, 3, 2, 2, 2, 3322, 3324, 9, 48, 2, 2, 3323, 3322, 3, 2, 2, 2, 3323, 3324, 3, 2, 2, 2, 3324, 3325, 3, 2, 2, 2, 3325, 3326, 7, 372, 2, 2, 3326, 445, 3, 2, 2, 2, 3327, 3329, 9, 48, 2, 2, 3328, 3327, 3, 2, 2, 2, 3328, 3329, 3, 2, 2, 2, 3329, 3330, 3, 2, 2, 2, 3330, 3331, 7, 373, 2, 2, 3331, 447, 3, 2, 2, 2, 3332, 3333, 9, 49, 2, 2, 3333, 449, 3, 2, 2, 2, 3334, 3335, 7, 192, 2, 2, 3335, 451, 3, 2, 2, 2, 3336, 3337, 9, 50, 2, 2, 3337, 453, 3, 2, 2, 2, 425, 459, 462, 466, 469, 474, 481, 487, 489, 498, 501, 503, 566, 574, 590, 597, 600, 605, 609, 618, 623, 631, 636, 645, 657, 662, 665, 679, 686, 695, 712, 716, 724, 735, 745, 753, 760, 764, 768, 773, 777, 782, 786, 790, 800, 804, 809, 814, 818, 831, 836, 842, 851, 855, 863, 866, 871, 876, 883, 890, 893, 900, 906, 911, 917, 922, 925, 931, 945, 955, 961, 966, 971, 976, 980, 985, 988, 998, 1010, 1017, 1020, 1032, 1037, 1042, 1045, 1052, 1064, 1077, 1079, 1084, 1087, 1102, 1108, 1119, 1122, 1132, 1139, 1145, 1153, 1163, 1183, 1189, 1193, 1198, 1202, 1207, 1210, 1215, 1218, 1230, 1237, 1242, 1247, 1251, 1256, 1259, 1269, 1281, 1288, 1296, 1310, 1341, 1343, 1348, 1352, 1357, 1364, 1367, 1370, 1375, 1379, 1381, 1388, 1394, 1401, 1407, 1410, 1415, 1419, 1422, 1429, 1435, 1438, 1448, 1457, 1464, 1471, 1473, 1479, 1482, 1493, 1502, 1508, 1514, 1517, 1522, 1525, 1528, 1531, 1534, 1540, 1550, 1561, 1564, 1571, 1576, 1581, 1585, 1593, 1597, 1602, 1606, 1608, 1613, 1621, 1626, 1632, 1639, 1642, 1649, 1657, 1665, 1668, 1671, 1676, 1685, 1689, 1699, 1718, 1725, 1727, 1731, 1735, 1743, 1754, 1763, 1771, 1779, 1783, 1791, 1809, 1823, 1830, 1834, 1841, 1843, 1847, 1856, 1864, 1873, 1889, 1895, 1899, 1909, 1917, 1926, 1930, 1936, 1941, 1945, 1955, 1961, 1965, 1977, 1984, 2000, 2007, 2017, 2020, 2024, 2031, 2038, 2040, 2044, 2048, 2053, 2056, 2060, 2063, 2074, 2077, 2088, 2094, 2098, 2100, 2104, 2113, 2120, 2124, 2128, 2135, 2139, 2147, 2153, 2157, 2168, 2175, 2188, 2196, 2200, 2210, 2215, 2228, 2239, 2247, 2251, 2255, 2259, 2261, 2266, 2269, 2272, 2275, 2279, 2282, 2285, 2288, 2291, 2298, 2309, 2313, 2316, 2320, 2327, 2331, 2341, 2349, 2355, 2359, 2365, 2374, 2377, 2382, 2385, 2395, 2400, 2409, 2414, 2418, 2427, 2431, 2445, 2458, 2463, 2467, 2473, 2484, 2486, 2493, 2496, 2503, 2508, 2514, 2517, 2520, 2535, 2542, 2545, 2548, 2552, 2557, 2563, 2567, 2578, 2582, 2585, 2589, 2593, 2597, 2601, 2607, 2613, 2620, 2628, 2634, 2639, 2650, 2659, 2663, 2672, 2676, 2686, 2691, 2713, 2716, 2735, 2751, 2753, 2764, 2779, 2791, 2795, 2806, 2810, 2822, 2826, 2837, 2842, 2847, 2851, 2855, 2860, 2864, 2868, 2891, 2893, 2911, 2913, 2921, 2926, 2931, 2936, 2949, 2954, 2959, 2964, 2969, 2974, 2979, 2984, 2986, 2993, 2996, 3007, 3017, 3025, 3034, 3040, 3057, 3060, 3076, 3079, 3095, 3098, 3114, 3117, 3133, 3136, 3152, 3155, 3169, 3184, 3188, 3204, 3210, 3215, 3224, 3231, 3233, 3239, 3243, 3249, 3264, 3271, 3276, 3286, 3293, 3296, 3306, 3311, 3315, 3320, 3323, 3328] \ No newline at end of file diff --git a/src/lib/hive/HiveSqlParser.js b/src/lib/hive/HiveSql.js similarity index 53% rename from src/lib/hive/HiveSqlParser.js rename to src/lib/hive/HiveSql.js index 6be559b..46a0095 100644 --- a/src/lib/hive/HiveSqlParser.js +++ b/src/lib/hive/HiveSql.js @@ -1,4 +1,4 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); var HiveSqlListener = require('./HiveSqlListener').HiveSqlListener; @@ -8,7 +8,7 @@ var grammarFileName = "HiveSql.g4"; var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0003\u0178\u0d11\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", + "\u0003\u017a\u0d0b\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004\f\t\f", "\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010\t\u0010", @@ -126,401 +126,402 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\n#\u0003#\u0003#\u0003$\u0003$\u0003$\u0003$\u0005$\u0360\n$\u0003", "$\u0005$\u0363\n$\u0003$\u0003$\u0003$\u0005$\u0368\n$\u0003$\u0003", "$\u0003%\u0005%\u036d\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u0374", - "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u037d\n", - "%\u0003%\u0005%\u0380\n%\u0003&\u0003&\u0003&\u0007&\u0385\n&\f&\u000e", - "&\u0388\u000b&\u0003\'\u0003\'\u0003\'\u0005\'\u038d\n\'\u0003\'\u0007", - "\'\u0390\n\'\f\'\u000e\'\u0393\u000b\'\u0003\'\u0007\'\u0396\n\'\f\'", - "\u000e\'\u0399\u000b\'\u0003\'\u0003\'\u0005\'\u039d\n\'\u0003\'\u0005", - "\'\u03a0\n\'\u0003(\u0003(\u0003)\u0003)\u0005)\u03a6\n)\u0003)\u0003", - ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03b2", - "\n)\f)\u000e)\u03b5\u000b)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007", - ")\u03bc\n)\f)\u000e)\u03bf\u000b)\u0003)\u0003)\u0003)\u0005)\u03c4", - "\n)\u0003*\u0003*\u0003*\u0005*\u03c9\n*\u0003*\u0003*\u0003*\u0005", - "*\u03ce\n*\u0003*\u0003*\u0003*\u0005*\u03d3\n*\u0007*\u03d5\n*\f*\u000e", - "*\u03d8\u000b*\u0003*\u0003*\u0005*\u03dc\n*\u0003*\u0005*\u03df\n*", - "\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007*\u03e7\n*\f*\u000e", - "*\u03ea\u000b*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007", - "*\u03f3\n*\f*\u000e*\u03f6\u000b*\u0003*\u0003*\u0007*\u03fa\n*\f*\u000e", - "*\u03fd\u000b*\u0005*\u03ff\n*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", - "+\u0003+\u0003+\u0003+\u0003+\u0005+\u040b\n+\u0003,\u0006,\u040e\n", - ",\r,\u000e,\u040f\u0003-\u0003-\u0003-\u0005-\u0415\n-\u0003.\u0005", - ".\u0418\n.\u0003.\u0003.\u0003/\u0006/\u041d\n/\r/\u000e/\u041e\u0003", - "0\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u0005", - "0\u042b\n0\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", - "1\u00031\u00031\u00061\u0438\n1\r1\u000e1\u0439\u00031\u00031\u0003", - "1\u00051\u043f\n1\u00032\u00052\u0442\n2\u00032\u00032\u00032\u0003", - "2\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u00072\u044f\n2\f", - "2\u000e2\u0452\u000b2\u00032\u00032\u00032\u00052\u0457\n2\u00032\u0003", - "2\u00032\u00032\u00032\u00032\u00032\u00032\u00032\u00052\u0462\n2\u0003", - "3\u00053\u0465\n3\u00033\u00033\u00033\u00033\u00033\u00033\u00073\u046d", - "\n3\f3\u000e3\u0470\u000b3\u00033\u00033\u00033\u00033\u00053\u0476", - "\n3\u00034\u00034\u00034\u00034\u00054\u047c\n4\u00035\u00035\u0003", - "5\u00035\u00075\u0482\n5\f5\u000e5\u0485\u000b5\u00036\u00036\u0003", - "6\u00036\u00036\u00036\u00036\u00056\u048e\n6\u00036\u00036\u00036\u0003", + "\n%\u0003%\u0003%\u0003%\u0003%\u0003%\u0005%\u037b\n%\u0003%\u0005", + "%\u037e\n%\u0003&\u0003&\u0003&\u0007&\u0383\n&\f&\u000e&\u0386\u000b", + "&\u0003\'\u0003\'\u0003\'\u0005\'\u038b\n\'\u0003\'\u0007\'\u038e\n", + "\'\f\'\u000e\'\u0391\u000b\'\u0003\'\u0007\'\u0394\n\'\f\'\u000e\'\u0397", + "\u000b\'\u0003\'\u0003\'\u0005\'\u039b\n\'\u0003\'\u0005\'\u039e\n\'", + "\u0003(\u0003(\u0003)\u0003)\u0005)\u03a4\n)\u0003)\u0003)\u0003)\u0003", + ")\u0003)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03b0\n)\f)\u000e", + ")\u03b3\u000b)\u0003)\u0003)\u0003)\u0003)\u0003)\u0007)\u03ba\n)\f", + ")\u000e)\u03bd\u000b)\u0003)\u0003)\u0003)\u0005)\u03c2\n)\u0003*\u0003", + "*\u0003*\u0005*\u03c7\n*\u0003*\u0003*\u0003*\u0005*\u03cc\n*\u0003", + "*\u0003*\u0003*\u0005*\u03d1\n*\u0007*\u03d3\n*\f*\u000e*\u03d6\u000b", + "*\u0003*\u0003*\u0005*\u03da\n*\u0003*\u0005*\u03dd\n*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0007*\u03e5\n*\f*\u000e*\u03e8\u000b", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0007*\u03f1\n*\f", + "*\u000e*\u03f4\u000b*\u0003*\u0003*\u0007*\u03f8\n*\f*\u000e*\u03fb", + "\u000b*\u0005*\u03fd\n*\u0003+\u0003+\u0003+\u0003+\u0003+\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0005+\u0409\n+\u0003,\u0006,\u040c\n,\r,\u000e", + ",\u040d\u0003-\u0003-\u0003-\u0005-\u0413\n-\u0003.\u0005.\u0416\n.", + "\u0003.\u0003.\u0003/\u0006/\u041b\n/\r/\u000e/\u041c\u00030\u00030", + "\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00030\u00050\u0429", + "\n0\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00061\u0436\n1\r1\u000e1\u0437\u00031\u00031\u00031\u0005", + "1\u043d\n1\u00032\u00052\u0440\n2\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00032\u00032\u00072\u044d\n2\f2\u000e", + "2\u0450\u000b2\u00032\u00032\u00032\u00052\u0455\n2\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00032\u00032\u00052\u0460\n2\u00033\u0005", + "3\u0463\n3\u00033\u00033\u00033\u00033\u00033\u00033\u00073\u046b\n", + "3\f3\u000e3\u046e\u000b3\u00033\u00033\u00033\u00033\u00053\u0474\n", + "3\u00034\u00034\u00034\u00034\u00054\u047a\n4\u00035\u00035\u00035\u0003", + "5\u00075\u0480\n5\f5\u000e5\u0483\u000b5\u00036\u00036\u00036\u0003", + "6\u00036\u00036\u00036\u00056\u048c\n6\u00036\u00036\u00036\u00036\u0003", "6\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u00036\u0003", - "6\u00036\u00036\u00036\u00036\u00056\u04a2\n6\u00037\u00037\u00037\u0003", - "7\u00057\u04a8\n7\u00038\u00038\u00058\u04ac\n8\u00038\u00038\u0003", - "8\u00058\u04b1\n8\u00038\u00038\u00058\u04b5\n8\u00038\u00038\u0003", - "8\u00058\u04ba\n8\u00038\u00058\u04bd\n8\u00038\u00038\u00038\u0005", - "8\u04c2\n8\u00038\u00058\u04c5\n8\u00039\u00039\u00039\u00039\u0003", - "9\u0003:\u0003:\u0003;\u0003;\u0003;\u0005;\u04d1\n;\u0003;\u0003;\u0003", - "<\u0003<\u0003<\u0005<\u04d8\n<\u0003<\u0003<\u0003<\u0005<\u04dd\n", - "<\u0003<\u0003<\u0003<\u0005<\u04e2\n<\u0007<\u04e4\n<\f<\u000e<\u04e7", - "\u000b<\u0003<\u0003<\u0005<\u04eb\n<\u0003<\u0005<\u04ee\n<\u0003<", - "\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u04f6\n<\f<\u000e<\u04f9", - "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u0502", - "\n<\f<\u000e<\u0505\u000b<\u0003<\u0003<\u0007<\u0509\n<\f<\u000e<\u050c", - "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005<\u0513\n<\u0003=\u0003", + "6\u00036\u00036\u00036\u00056\u04a0\n6\u00037\u00037\u00037\u00037\u0005", + "7\u04a6\n7\u00038\u00038\u00058\u04aa\n8\u00038\u00038\u00038\u0005", + "8\u04af\n8\u00038\u00038\u00058\u04b3\n8\u00038\u00038\u00038\u0005", + "8\u04b8\n8\u00038\u00058\u04bb\n8\u00038\u00038\u00038\u00058\u04c0", + "\n8\u00038\u00058\u04c3\n8\u00039\u00039\u00039\u00039\u00039\u0003", + ":\u0003:\u0003;\u0003;\u0003;\u0005;\u04cf\n;\u0003;\u0003;\u0003<\u0003", + "<\u0003<\u0005<\u04d6\n<\u0003<\u0003<\u0003<\u0005<\u04db\n<\u0003", + "<\u0003<\u0003<\u0005<\u04e0\n<\u0007<\u04e2\n<\f<\u000e<\u04e5\u000b", + "<\u0003<\u0003<\u0005<\u04e9\n<\u0003<\u0005<\u04ec\n<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0007<\u04f4\n<\f<\u000e<\u04f7\u000b", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0007<\u0500\n<\f", + "<\u000e<\u0503\u000b<\u0003<\u0003<\u0007<\u0507\n<\f<\u000e<\u050a", + "\u000b<\u0003<\u0003<\u0003<\u0003<\u0003<\u0005<\u0511\n<\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0005=\u0522\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0005=\u051f\n=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", "=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", - "=\u0003=\u0003=\u0005=\u0541\n=\u0005=\u0543\n=\u0003>\u0003>\u0003", - ">\u0005>\u0548\n>\u0003>\u0003>\u0005>\u054c\n>\u0003>\u0003>\u0003", - "?\u0005?\u0551\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0558\n", - "?\u0003?\u0005?\u055b\n?\u0003@\u0005@\u055e\n@\u0003@\u0003@\u0003", - "@\u0005@\u0563\n@\u0003@\u0003@\u0005@\u0567\n@\u0005@\u0569\n@\u0003", - "A\u0003A\u0003A\u0003A\u0003A\u0005A\u0570\nA\u0003A\u0003A\u0007A\u0574", - "\nA\fA\u000eA\u0577\u000bA\u0003B\u0003B\u0003B\u0003B\u0005B\u057d", - "\nB\u0003C\u0003C\u0003C\u0003C\u0005C\u0583\nC\u0003C\u0005C\u0586", - "\nC\u0003C\u0003C\u0003C\u0005C\u058b\nC\u0003C\u0003C\u0005C\u058f", - "\nC\u0003C\u0005C\u0592\nC\u0003C\u0003C\u0003D\u0003D\u0003D\u0005", - "D\u0599\nD\u0003E\u0003E\u0003E\u0003E\u0005E\u059f\nE\u0003E\u0005", - "E\u05a2\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005", - "E\u05ac\nE\u0003F\u0003F\u0003F\u0003F\u0003F\u0007F\u05b3\nF\fF\u000e", - "F\u05b6\u000bF\u0003G\u0003G\u0003G\u0003G\u0005G\u05bc\nG\u0003G\u0003", - "G\u0003G\u0003G\u0003G\u0005G\u05c3\nG\u0005G\u05c5\nG\u0003H\u0003", - "H\u0003H\u0003H\u0005H\u05cb\nH\u0003H\u0005H\u05ce\nH\u0003H\u0003", - "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0005H\u05d9\nH\u0003", - "I\u0003I\u0003I\u0003I\u0003I\u0007I\u05e0\nI\fI\u000eI\u05e3\u000b", - "I\u0003J\u0003J\u0003J\u0005J\u05e8\nJ\u0003K\u0003K\u0003K\u0003K\u0005", - "K\u05ee\nK\u0003K\u0005K\u05f1\nK\u0003K\u0003K\u0003K\u0005K\u05f6", - "\nK\u0003K\u0005K\u05f9\nK\u0003K\u0005K\u05fc\nK\u0003K\u0005K\u05ff", - "\nK\u0003K\u0005K\u0602\nK\u0003K\u0003K\u0003K\u0003K\u0005K\u0608", - "\nK\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u0610\nL\fL\u000e", - "L\u0613\u000bL\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u061b", - "\nL\fL\u000eL\u061e\u000bL\u0005L\u0620\nL\u0003M\u0003M\u0003M\u0003", - "M\u0003M\u0005M\u0627\nM\u0003M\u0003M\u0003M\u0005M\u062c\nM\u0003", - "M\u0007M\u062f\nM\fM\u000eM\u0632\u000bM\u0003M\u0005M\u0635\nM\u0003", - "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0005M\u063d\nM\u0003M\u0003M\u0005", - "M\u0641\nM\u0003M\u0007M\u0644\nM\fM\u000eM\u0647\u000bM\u0003M\u0005", - "M\u064a\nM\u0005M\u064c\nM\u0003N\u0006N\u064f\nN\rN\u000eN\u0650\u0003", - "O\u0003O\u0003O\u0003O\u0003O\u0003O\u0005O\u0659\nO\u0003O\u0003O\u0003", - "O\u0005O\u065e\nO\u0003P\u0003P\u0003P\u0003P\u0005P\u0664\nP\u0003", - "P\u0003P\u0003P\u0003P\u0003P\u0005P\u066b\nP\u0003P\u0005P\u066e\n", - "P\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0005R\u0675\nR\u0003R\u0003R\u0003", - "R\u0003R\u0003R\u0003R\u0005R\u067d\nR\u0003R\u0003R\u0003R\u0003R\u0007", - "R\u0683\nR\fR\u000eR\u0686\u000bR\u0005R\u0688\nR\u0003R\u0005R\u068b", - "\nR\u0003S\u0003S\u0003S\u0005S\u0690\nS\u0003T\u0003T\u0003T\u0003", - "T\u0003T\u0007T\u0697\nT\fT\u000eT\u069a\u000bT\u0003T\u0005T\u069d", - "\nT\u0003T\u0003T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u06a7", - "\nU\u0003V\u0003V\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003", - "W\u0003W\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0005Y\u06ba\nY\u0003", - "Z\u0003Z\u0003Z\u0003Z\u0003Z\u0005Z\u06c1\nZ\u0005Z\u06c3\nZ\u0003", - "Z\u0003Z\u0005Z\u06c7\nZ\u0003Z\u0003Z\u0005Z\u06cb\nZ\u0003[\u0003", - "[\u0003[\u0003[\u0007[\u06d1\n[\f[\u000e[\u06d4\u000b[\u0003[\u0003", - "[\u0003\\\u0003\\\u0003\\\u0003\\\u0007\\\u06dc\n\\\f\\\u000e\\\u06df", - "\u000b\\\u0003]\u0003]\u0003]\u0003]\u0007]\u06e5\n]\f]\u000e]\u06e8", - "\u000b]\u0003]\u0003]\u0003^\u0003^\u0003^\u0005^\u06ef\n^\u0003^\u0003", - "^\u0003^\u0003^\u0003_\u0003_\u0005_\u06f7\n_\u0003_\u0003_\u0005_\u06fb", - "\n_\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0005a\u0703\na\u0003", - "b\u0003b\u0003b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003", - "d\u0003d\u0003d\u0003d\u0007d\u0713\nd\fd\u000ed\u0716\u000bd\u0003", - "d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003", - "f\u0005f\u0723\nf\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u072a\n", - "g\u0003g\u0003g\u0005g\u072e\ng\u0003h\u0003h\u0003h\u0003h\u0003h\u0005", - "h\u0735\nh\u0005h\u0737\nh\u0003i\u0003i\u0005i\u073b\ni\u0003i\u0003", - "i\u0003i\u0003i\u0003i\u0007i\u0742\ni\fi\u000ei\u0745\u000bi\u0003", - "j\u0003j\u0003j\u0003j\u0003j\u0005j\u074c\nj\u0003k\u0003k\u0003k\u0003", - "k\u0003k\u0007k\u0753\nk\fk\u000ek\u0756\u000bk\u0003k\u0003k\u0003", - "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", - "n\u0005n\u0765\nn\u0003n\u0003n\u0003n\u0003n\u0005n\u076b\nn\u0003", - "n\u0003n\u0005n\u076f\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0007", - "o\u0777\no\fo\u000eo\u077a\u000bo\u0003o\u0003o\u0003o\u0007o\u077f", - "\no\fo\u000eo\u0782\u000bo\u0003p\u0003p\u0003p\u0003p\u0003p\u0003", - "p\u0005p\u078a\np\u0003p\u0003p\u0005p\u078e\np\u0003p\u0003p\u0007", - "p\u0792\np\fp\u000ep\u0795\u000bp\u0003q\u0003q\u0005q\u0799\nq\u0003", - "r\u0003r\u0005r\u079d\nr\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003", - "s\u0003s\u0005s\u07a7\ns\u0003t\u0003t\u0003u\u0003u\u0005u\u07ad\n", - "u\u0003v\u0003v\u0005v\u07b1\nv\u0003v\u0003v\u0003v\u0003v\u0003v\u0003", - "v\u0003v\u0003v\u0007v\u07bb\nv\fv\u000ev\u07be\u000bv\u0003v\u0003", - "v\u0003w\u0003w\u0005w\u07c4\nw\u0003x\u0003x\u0003y\u0003y\u0003y\u0003", - "y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0007y\u07d2\ny\fy\u000e", - "y\u07d5\u000by\u0003y\u0003y\u0007y\u07d9\ny\fy\u000ey\u07dc\u000by", - "\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0003z\u0005z\u07e5\nz\u0003", - "{\u0005{\u07e8\n{\u0003{\u0003{\u0005{\u07ec\n{\u0003|\u0003|\u0003", - "}\u0003}\u0003}\u0005}\u07f3\n}\u0003}\u0003}\u0003}\u0003}\u0003}\u0005", - "}\u07fa\n}\u0005}\u07fc\n}\u0003~\u0003~\u0005~\u0800\n~\u0003\u007f", - "\u0003\u007f\u0005\u007f\u0804\n\u007f\u0003\u0080\u0003\u0080\u0003", - "\u0080\u0005\u0080\u0809\n\u0080\u0003\u0081\u0005\u0081\u080c\n\u0081", - "\u0003\u0081\u0003\u0081\u0005\u0081\u0810\n\u0081\u0003\u0081\u0005", - "\u0081\u0813\n\u0081\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082", - "\u0003\u0082\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0005\u0083", - "\u081e\n\u0083\u0003\u0083\u0005\u0083\u0821\n\u0083\u0003\u0083\u0003", - "\u0083\u0003\u0083\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003", - "\u0085\u0003\u0085\u0005\u0085\u082c\n\u0085\u0003\u0085\u0003\u0085", - "\u0003\u0085\u0003\u0085\u0005\u0085\u0832\n\u0085\u0003\u0085\u0003", - "\u0085\u0005\u0085\u0836\n\u0085\u0005\u0085\u0838\n\u0085\u0003\u0086", - "\u0003\u0086\u0005\u0086\u083c\n\u0086\u0003\u0086\u0003\u0086\u0003", - "\u0087\u0003\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0005\u0088\u0845", - "\n\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0007\u0088\u084a\n\u0088", - "\f\u0088\u000e\u0088\u084d\u000b\u0088\u0003\u0088\u0005\u0088\u0850", - "\n\u0088\u0003\u0088\u0003\u0088\u0005\u0088\u0854\n\u0088\u0003\u0088", - "\u0003\u0088\u0003\u0088\u0007\u0088\u0859\n\u0088\f\u0088\u000e\u0088", - "\u085c\u000b\u0088\u0003\u0088\u0005\u0088\u085f\n\u0088\u0003\u0089", - "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0005\u0089", - "\u0867\n\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005", - "\u008a\u086d\n\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u0871\n\u008a", - "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b", - "\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u087c\n\u008b\u0003", - "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u0883", - "\n\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b", - "\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c", - "\u0005\u008c\u0890\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003", - "\u008d\u0007\u008d\u0896\n\u008d\f\u008d\u000e\u008d\u0899\u000b\u008d", - "\u0003\u008e\u0005\u008e\u089c\n\u008e\u0003\u008e\u0003\u008e\u0003", - "\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0007\u008f\u08a4\n\u008f", - "\f\u008f\u000e\u008f\u08a7\u000b\u008f\u0003\u0090\u0003\u0090\u0005", - "\u0090\u08ab\n\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090", - "\u0003\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091", - "\u08b6\n\u0091\f\u0091\u000e\u0091\u08b9\u000b\u0091\u0003\u0091\u0003", - "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092\u08c1", - "\n\u0092\f\u0092\u000e\u0092\u08c4\u000b\u0092\u0003\u0093\u0003\u0093", - "\u0003\u0093\u0003\u0093\u0003\u0093\u0005\u0093\u08cb\n\u0093\u0003", - "\u0094\u0003\u0094\u0005\u0094\u08cf\n\u0094\u0003\u0094\u0003\u0094", - "\u0005\u0094\u08d3\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u08d7", - "\n\u0094\u0005\u0094\u08d9\n\u0094\u0003\u0095\u0003\u0095\u0003\u0095", - "\u0005\u0095\u08de\n\u0095\u0003\u0095\u0005\u0095\u08e1\n\u0095\u0003", - "\u0095\u0005\u0095\u08e4\n\u0095\u0003\u0095\u0005\u0095\u08e7\n\u0095", - "\u0003\u0095\u0003\u0095\u0005\u0095\u08eb\n\u0095\u0003\u0095\u0005", - "\u0095\u08ee\n\u0095\u0003\u0095\u0005\u0095\u08f1\n\u0095\u0003\u0096", - "\u0005\u0096\u08f4\n\u0096\u0003\u0096\u0005\u0096\u08f7\n\u0096\u0003", - "\u0096\u0003\u0096\u0003\u0096\u0007\u0096\u08fc\n\u0096\f\u0096\u000e", - "\u0096\u08ff\u000b\u0096\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098", - "\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0909\n", - "\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u090d\n\u0099\u0003\u0099", - "\u0005\u0099\u0910\n\u0099\u0003\u009a\u0003\u009a\u0005\u009a\u0914", - "\n\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a", - "\u0005\u009a\u091b\n\u009a\u0003\u009b\u0003\u009b\u0005\u009b\u091f", - "\n\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c", - "\u0003\u009c\u0007\u009c\u0927\n\u009c\f\u009c\u000e\u009c\u092a\u000b", - "\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0007\u009d\u092f\n\u009d", - "\f\u009d\u000e\u009d\u0932\u000b\u009d\u0003\u009e\u0003\u009e\u0003", - "\u009e\u0005\u009e\u0937\n\u009e\u0003\u009f\u0003\u009f\u0005\u009f", - "\u093b\n\u009f\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005", - "\u00a0\u0941\n\u00a0\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1", - "\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0005\u00a1\u094a\n\u00a1\u0003", - "\u00a2\u0005\u00a2\u094d\n\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2", - "\u0005\u00a2\u0952\n\u00a2\u0003\u00a2\u0005\u00a2\u0955\n\u00a2\u0003", - "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0007", - "\u00a3\u095d\n\u00a3\f\u00a3\u000e\u00a3\u0960\u000b\u00a3\u0003\u00a3", - "\u0003\u00a3\u0005\u00a3\u0964\n\u00a3\u0003\u00a4\u0003\u00a4\u0003", - "\u00a4\u0003\u00a4\u0003\u00a4\u0007\u00a4\u096b\n\u00a4\f\u00a4\u000e", - "\u00a4\u096e\u000b\u00a4\u0003\u00a4\u0003\u00a4\u0005\u00a4\u0972\n", - "\u00a4\u0003\u00a5\u0003\u00a5\u0005\u00a5\u0976\n\u00a5\u0003\u00a5", - "\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0007\u00a5\u097d\n", - "\u00a5\f\u00a5\u000e\u00a5\u0980\u000b\u00a5\u0003\u00a5\u0005\u00a5", - "\u0983\n\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a7\u0003\u00a7\u0003", - "\u00a7\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0007", - "\u00a8\u098f\n\u00a8\f\u00a8\u000e\u00a8\u0992\u000b\u00a8\u0003\u00a9", - "\u0003\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00ab", - "\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u099e\n\u00ab\u0003", - "\u00ab\u0003\u00ab\u0003\u00ab\u0005\u00ab\u09a3\n\u00ab\u0007\u00ab", - "\u09a5\n\u00ab\f\u00ab\u000e\u00ab\u09a8\u000b\u00ab\u0003\u00ac\u0006", - "\u00ac\u09ab\n\u00ac\r\u00ac\u000e\u00ac\u09ac\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad", - "\u0003\u00ad\u0005\u00ad\u09b8\n\u00ad\u0005\u00ad\u09ba\n\u00ad\u0003", - "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0005\u00ae\u09c1", - "\n\u00ae\u0003\u00ae\u0005\u00ae\u09c4\n\u00ae\u0003\u00af\u0003\u00af", - "\u0003\u00af\u0007\u00af\u09c9\n\u00af\f\u00af\u000e\u00af\u09cc\u000b", - "\u00af\u0003\u00b0\u0003\u00b0\u0005\u00b0\u09d0\n\u00b0\u0003\u00b0", - "\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0005\u00b0\u09d6\n\u00b0\u0003", - "\u00b0\u0005\u00b0\u09d9\n\u00b0\u0003\u00b0\u0005\u00b0\u09dc\n\u00b0", - "\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2", - "\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0006\u00b2", - "\u09e9\n\u00b2\r\u00b2\u000e\u00b2\u09ea\u0003\u00b3\u0003\u00b3\u0003", - "\u00b3\u0003\u00b3\u0003\u00b3\u0005\u00b3\u09f2\n\u00b3\u0003\u00b3", - "\u0005\u00b3\u09f5\n\u00b3\u0003\u00b3\u0005\u00b3\u09f8\n\u00b3\u0003", - "\u00b4\u0003\u00b4\u0005\u00b4\u09fc\n\u00b4\u0003\u00b4\u0003\u00b4", - "\u0003\u00b4\u0005\u00b4\u0a01\n\u00b4\u0003\u00b4\u0003\u00b4\u0003", - "\u00b4\u0003\u00b4\u0005\u00b4\u0a07\n\u00b4\u0003\u00b5\u0003\u00b5", - "\u0005\u00b5\u0a0b\n\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", - "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0007\u00b5\u0a14\n\u00b5", - "\f\u00b5\u000e\u00b5\u0a17\u000b\u00b5\u0003\u00b5\u0005\u00b5\u0a1a", - "\n\u00b5\u0003\u00b5\u0005\u00b5\u0a1d\n\u00b5\u0003\u00b6\u0003\u00b6", - "\u0005\u00b6\u0a21\n\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a25", - "\n\u00b6\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a29\n\u00b6\u0003\u00b7", - "\u0003\u00b7\u0005\u00b7\u0a2d\n\u00b7\u0003\u00b7\u0003\u00b7\u0003", - "\u00b8\u0003\u00b8\u0005\u00b8\u0a33\n\u00b8\u0003\u00b8\u0003\u00b8", - "\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a39\n\u00b9\u0003\u00b9\u0003", - "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a40\n\u00b9", - "\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0007\u00b9\u0a46\n", - "\u00b9\f\u00b9\u000e\u00b9\u0a49\u000b\u00b9\u0003\u00ba\u0003\u00ba", - "\u0003\u00ba\u0005\u00ba\u0a4e\n\u00ba\u0003\u00bb\u0003\u00bb\u0003", - "\u00bb\u0005\u00bb\u0a53\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", + "=\u0003=\u0005=\u053e\n=\u0005=\u0540\n=\u0003>\u0003>\u0003>\u0005", + ">\u0545\n>\u0003>\u0003>\u0005>\u0549\n>\u0003>\u0003>\u0003?\u0005", + "?\u054e\n?\u0003?\u0003?\u0003?\u0003?\u0003?\u0005?\u0555\n?\u0003", + "?\u0005?\u0558\n?\u0003@\u0005@\u055b\n@\u0003@\u0003@\u0003@\u0005", + "@\u0560\n@\u0003@\u0003@\u0005@\u0564\n@\u0005@\u0566\n@\u0003A\u0003", + "A\u0003A\u0003A\u0003A\u0005A\u056d\nA\u0003A\u0003A\u0007A\u0571\n", + "A\fA\u000eA\u0574\u000bA\u0003B\u0003B\u0003B\u0003B\u0005B\u057a\n", + "B\u0003C\u0003C\u0003C\u0003C\u0005C\u0580\nC\u0003C\u0005C\u0583\n", + "C\u0003C\u0003C\u0003C\u0005C\u0588\nC\u0003C\u0003C\u0005C\u058c\n", + "C\u0003C\u0005C\u058f\nC\u0003C\u0003C\u0003D\u0003D\u0003D\u0005D\u0596", + "\nD\u0003E\u0003E\u0003E\u0003E\u0005E\u059c\nE\u0003E\u0005E\u059f", + "\nE\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0005E\u05a9", + "\nE\u0003F\u0003F\u0003F\u0003F\u0003F\u0007F\u05b0\nF\fF\u000eF\u05b3", + "\u000bF\u0003G\u0003G\u0003G\u0003G\u0005G\u05b9\nG\u0003G\u0003G\u0003", + "G\u0003G\u0003G\u0005G\u05c0\nG\u0005G\u05c2\nG\u0003H\u0003H\u0003", + "H\u0003H\u0005H\u05c8\nH\u0003H\u0005H\u05cb\nH\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003H\u0005H\u05d6\nH\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0007I\u05dd\nI\fI\u000eI\u05e0\u000bI\u0003", + "J\u0003J\u0003J\u0005J\u05e5\nJ\u0003K\u0003K\u0003K\u0003K\u0005K\u05eb", + "\nK\u0003K\u0005K\u05ee\nK\u0003K\u0003K\u0003K\u0005K\u05f3\nK\u0003", + "K\u0005K\u05f6\nK\u0003K\u0005K\u05f9\nK\u0003K\u0005K\u05fc\nK\u0003", + "K\u0005K\u05ff\nK\u0003K\u0003K\u0003K\u0003K\u0005K\u0605\nK\u0003", + "L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u060d\nL\fL\u000eL\u0610", + "\u000bL\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0007L\u0618\nL\f", + "L\u000eL\u061b\u000bL\u0005L\u061d\nL\u0003M\u0003M\u0003M\u0003M\u0003", + "M\u0005M\u0624\nM\u0003M\u0003M\u0003M\u0005M\u0629\nM\u0003M\u0007", + "M\u062c\nM\fM\u000eM\u062f\u000bM\u0003M\u0005M\u0632\nM\u0003M\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0005M\u063a\nM\u0003M\u0003M\u0005M\u063e", + "\nM\u0003M\u0007M\u0641\nM\fM\u000eM\u0644\u000bM\u0003M\u0005M\u0647", + "\nM\u0005M\u0649\nM\u0003N\u0006N\u064c\nN\rN\u000eN\u064d\u0003O\u0003", + "O\u0003O\u0003O\u0003O\u0003O\u0005O\u0656\nO\u0003O\u0003O\u0003O\u0005", + "O\u065b\nO\u0003P\u0003P\u0003P\u0003P\u0005P\u0661\nP\u0003P\u0003", + "P\u0003P\u0003P\u0003P\u0005P\u0668\nP\u0003P\u0005P\u066b\nP\u0003", + "Q\u0003Q\u0003Q\u0003R\u0003R\u0005R\u0672\nR\u0003R\u0003R\u0003R\u0003", + "R\u0003R\u0003R\u0005R\u067a\nR\u0003R\u0003R\u0003R\u0003R\u0007R\u0680", + "\nR\fR\u000eR\u0683\u000bR\u0005R\u0685\nR\u0003R\u0005R\u0688\nR\u0003", + "S\u0003S\u0003S\u0005S\u068d\nS\u0003T\u0003T\u0003T\u0003T\u0003T\u0007", + "T\u0694\nT\fT\u000eT\u0697\u000bT\u0003T\u0005T\u069a\nT\u0003T\u0003", + "T\u0003T\u0003U\u0003U\u0003U\u0003U\u0003U\u0005U\u06a4\nU\u0003V\u0003", + "V\u0003V\u0003V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0005Y\u06b7\nY\u0003Z\u0003Z\u0003", + "Z\u0003Z\u0003Z\u0005Z\u06be\nZ\u0005Z\u06c0\nZ\u0003Z\u0003Z\u0005", + "Z\u06c4\nZ\u0003Z\u0003Z\u0005Z\u06c8\nZ\u0003[\u0003[\u0003[\u0003", + "[\u0007[\u06ce\n[\f[\u000e[\u06d1\u000b[\u0003[\u0003[\u0003\\\u0003", + "\\\u0003\\\u0003\\\u0007\\\u06d9\n\\\f\\\u000e\\\u06dc\u000b\\\u0003", + "]\u0003]\u0003]\u0003]\u0007]\u06e2\n]\f]\u000e]\u06e5\u000b]\u0003", + "]\u0003]\u0003^\u0003^\u0003^\u0005^\u06ec\n^\u0003^\u0003^\u0003^\u0003", + "^\u0003_\u0003_\u0005_\u06f4\n_\u0003_\u0003_\u0005_\u06f8\n_\u0003", + "`\u0003`\u0003`\u0003`\u0003a\u0003a\u0005a\u0700\na\u0003b\u0003b\u0003", + "b\u0003b\u0003b\u0003b\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003", + "d\u0003d\u0007d\u0710\nd\fd\u000ed\u0713\u000bd\u0003d\u0003d\u0003", + "d\u0003d\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003f\u0005f\u0720", + "\nf\u0003g\u0003g\u0003g\u0003g\u0003g\u0005g\u0727\ng\u0003g\u0003", + "g\u0005g\u072b\ng\u0003h\u0003h\u0003h\u0003h\u0003h\u0005h\u0732\n", + "h\u0005h\u0734\nh\u0003i\u0003i\u0005i\u0738\ni\u0003i\u0003i\u0003", + "i\u0003i\u0003i\u0007i\u073f\ni\fi\u000ei\u0742\u000bi\u0003j\u0003", + "j\u0003j\u0003j\u0003j\u0005j\u0749\nj\u0003k\u0003k\u0003k\u0003k\u0003", + "k\u0007k\u0750\nk\fk\u000ek\u0753\u000bk\u0003k\u0003k\u0003l\u0003", + "l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003n\u0005", + "n\u0762\nn\u0003n\u0003n\u0003n\u0003n\u0005n\u0768\nn\u0003n\u0003", + "n\u0005n\u076c\nn\u0003o\u0003o\u0003o\u0003o\u0003o\u0003o\u0007o\u0774", + "\no\fo\u000eo\u0777\u000bo\u0003o\u0003o\u0003o\u0007o\u077c\no\fo\u000e", + "o\u077f\u000bo\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0005p\u0787", + "\np\u0003p\u0003p\u0005p\u078b\np\u0003p\u0003p\u0007p\u078f\np\fp\u000e", + "p\u0792\u000bp\u0003q\u0003q\u0005q\u0796\nq\u0003r\u0003r\u0005r\u079a", + "\nr\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0003s\u0005s\u07a4", + "\ns\u0003t\u0003t\u0003u\u0003u\u0005u\u07aa\nu\u0003v\u0003v\u0005", + "v\u07ae\nv\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0003v\u0007", + "v\u07b8\nv\fv\u000ev\u07bb\u000bv\u0003v\u0003v\u0003w\u0003w\u0005", + "w\u07c1\nw\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003", + "y\u0003y\u0003y\u0003y\u0007y\u07cf\ny\fy\u000ey\u07d2\u000by\u0003", + "y\u0003y\u0007y\u07d6\ny\fy\u000ey\u07d9\u000by\u0003z\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0005z\u07e2\nz\u0003{\u0005{\u07e5\n", + "{\u0003{\u0003{\u0005{\u07e9\n{\u0003|\u0003|\u0003}\u0003}\u0003}\u0005", + "}\u07f0\n}\u0003}\u0003}\u0003}\u0003}\u0003}\u0005}\u07f7\n}\u0005", + "}\u07f9\n}\u0003~\u0003~\u0005~\u07fd\n~\u0003\u007f\u0003\u007f\u0005", + "\u007f\u0801\n\u007f\u0003\u0080\u0003\u0080\u0003\u0080\u0005\u0080", + "\u0806\n\u0080\u0003\u0081\u0005\u0081\u0809\n\u0081\u0003\u0081\u0003", + "\u0081\u0005\u0081\u080d\n\u0081\u0003\u0081\u0005\u0081\u0810\n\u0081", + "\u0003\u0081\u0003\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083", + "\u0003\u0083\u0003\u0083\u0003\u0083\u0005\u0083\u081b\n\u0083\u0003", + "\u0083\u0005\u0083\u081e\n\u0083\u0003\u0083\u0003\u0083\u0003\u0083", + "\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085", + "\u0005\u0085\u0829\n\u0085\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0085\u0005\u0085\u082f\n\u0085\u0003\u0085\u0003\u0085\u0005\u0085", + "\u0833\n\u0085\u0005\u0085\u0835\n\u0085\u0003\u0086\u0003\u0086\u0005", + "\u0086\u0839\n\u0086\u0003\u0086\u0003\u0086\u0003\u0087\u0003\u0087", + "\u0003\u0087\u0003\u0088\u0003\u0088\u0005\u0088\u0842\n\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0007\u0088\u0847\n\u0088\f\u0088\u000e", + "\u0088\u084a\u000b\u0088\u0003\u0088\u0005\u0088\u084d\n\u0088\u0003", + "\u0088\u0003\u0088\u0005\u0088\u0851\n\u0088\u0003\u0088\u0003\u0088", + "\u0003\u0088\u0007\u0088\u0856\n\u0088\f\u0088\u000e\u0088\u0859\u000b", + "\u0088\u0003\u0088\u0005\u0088\u085c\n\u0088\u0003\u0089\u0003\u0089", + "\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0005\u0089\u0864\n", + "\u0089\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u086a", + "\n\u008a\u0003\u008a\u0003\u008a\u0005\u008a\u086e\n\u008a\u0003\u008a", + "\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003\u008b", + "\u0003\u008b\u0003\u008b\u0005\u008b\u0879\n\u008b\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0005\u008b\u0880\n\u008b", + "\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008c", + "\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0005\u008c", + "\u088d\n\u008c\u0003\u008d\u0003\u008d\u0003\u008d\u0003\u008d\u0007", + "\u008d\u0893\n\u008d\f\u008d\u000e\u008d\u0896\u000b\u008d\u0003\u008e", + "\u0005\u008e\u0899\n\u008e\u0003\u008e\u0003\u008e\u0003\u008f\u0003", + "\u008f\u0003\u008f\u0003\u008f\u0007\u008f\u08a1\n\u008f\f\u008f\u000e", + "\u008f\u08a4\u000b\u008f\u0003\u0090\u0003\u0090\u0005\u0090\u08a8\n", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0007\u0091\u08b3\n\u0091", + "\f\u0091\u000e\u0091\u08b6\u000b\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0007\u0092\u08be\n\u0092", + "\f\u0092\u000e\u0092\u08c1\u000b\u0092\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0005\u0093\u08c8\n\u0093\u0003\u0094", + "\u0003\u0094\u0005\u0094\u08cc\n\u0094\u0003\u0094\u0003\u0094\u0005", + "\u0094\u08d0\n\u0094\u0003\u0094\u0003\u0094\u0005\u0094\u08d4\n\u0094", + "\u0005\u0094\u08d6\n\u0094\u0003\u0095\u0003\u0095\u0003\u0095\u0005", + "\u0095\u08db\n\u0095\u0003\u0095\u0005\u0095\u08de\n\u0095\u0003\u0095", + "\u0005\u0095\u08e1\n\u0095\u0003\u0095\u0005\u0095\u08e4\n\u0095\u0003", + "\u0095\u0003\u0095\u0005\u0095\u08e8\n\u0095\u0003\u0095\u0005\u0095", + "\u08eb\n\u0095\u0003\u0095\u0005\u0095\u08ee\n\u0095\u0003\u0096\u0005", + "\u0096\u08f1\n\u0096\u0003\u0096\u0005\u0096\u08f4\n\u0096\u0003\u0096", + "\u0003\u0096\u0003\u0096\u0007\u0096\u08f9\n\u0096\f\u0096\u000e\u0096", + "\u08fc\u000b\u0096\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0005\u0099\u0906\n\u0099", + "\u0003\u0099\u0003\u0099\u0005\u0099\u090a\n\u0099\u0003\u0099\u0005", + "\u0099\u090d\n\u0099\u0003\u009a\u0003\u009a\u0005\u009a\u0911\n\u009a", + "\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0005\u009a", + "\u0918\n\u009a\u0003\u009b\u0003\u009b\u0005\u009b\u091c\n\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0007", + "\u009c\u0924\n\u009c\f\u009c\u000e\u009c\u0927\u000b\u009c\u0003\u009d", + "\u0003\u009d\u0003\u009d\u0007\u009d\u092c\n\u009d\f\u009d\u000e\u009d", + "\u092f\u000b\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0005\u009e\u0934", + "\n\u009e\u0003\u009f\u0003\u009f\u0005\u009f\u0938\n\u009f\u0003\u00a0", + "\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0005\u00a0\u093e\n\u00a0\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003", + "\u00a1\u0005\u00a1\u0947\n\u00a1\u0003\u00a2\u0005\u00a2\u094a\n\u00a2", + "\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0005\u00a2\u094f\n\u00a2\u0003", + "\u00a2\u0005\u00a2\u0952\n\u00a2\u0003\u00a3\u0003\u00a3\u0003\u00a3", + "\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0007\u00a3\u095a\n\u00a3\f\u00a3", + "\u000e\u00a3\u095d\u000b\u00a3\u0003\u00a3\u0003\u00a3\u0005\u00a3\u0961", + "\n\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4", + "\u0007\u00a4\u0968\n\u00a4\f\u00a4\u000e\u00a4\u096b\u000b\u00a4\u0003", + "\u00a4\u0003\u00a4\u0005\u00a4\u096f\n\u00a4\u0003\u00a5\u0003\u00a5", + "\u0005\u00a5\u0973\n\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0007\u00a5\u097a\n\u00a5\f\u00a5\u000e\u00a5\u097d", + "\u000b\u00a5\u0003\u00a5\u0005\u00a5\u0980\n\u00a5\u0003\u00a6\u0003", + "\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0007\u00a8\u098c\n\u00a8\f\u00a8\u000e", + "\u00a8\u098f\u000b\u00a8\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00aa", + "\u0003\u00aa\u0003\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab", + "\u0005\u00ab\u099b\n\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0005", + "\u00ab\u09a0\n\u00ab\u0007\u00ab\u09a2\n\u00ab\f\u00ab\u000e\u00ab\u09a5", + "\u000b\u00ab\u0003\u00ac\u0006\u00ac\u09a8\n\u00ac\r\u00ac\u000e\u00ac", + "\u09a9\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003", + "\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0005\u00ad\u09b5\n\u00ad", + "\u0005\u00ad\u09b7\n\u00ad\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0005\u00ae\u09be\n\u00ae\u0003\u00ae\u0005\u00ae", + "\u09c1\n\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0007\u00af\u09c6", + "\n\u00af\f\u00af\u000e\u00af\u09c9\u000b\u00af\u0003\u00b0\u0003\u00b0", + "\u0005\u00b0\u09cd\n\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0005\u00b0\u09d3\n\u00b0\u0003\u00b0\u0005\u00b0\u09d6\n\u00b0", + "\u0003\u00b0\u0005\u00b0\u09d9\n\u00b0\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0006\u00b2\u09e6\n\u00b2\r\u00b2\u000e", + "\u00b2\u09e7\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3\u0003\u00b3", + "\u0005\u00b3\u09ef\n\u00b3\u0003\u00b3\u0005\u00b3\u09f2\n\u00b3\u0003", + "\u00b3\u0005\u00b3\u09f5\n\u00b3\u0003\u00b4\u0003\u00b4\u0005\u00b4", + "\u09f9\n\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4\u09fe", + "\n\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0005\u00b4", + "\u0a04\n\u00b4\u0003\u00b5\u0003\u00b5\u0005\u00b5\u0a08\n\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003", + "\u00b5\u0007\u00b5\u0a11\n\u00b5\f\u00b5\u000e\u00b5\u0a14\u000b\u00b5", + "\u0003\u00b5\u0005\u00b5\u0a17\n\u00b5\u0003\u00b5\u0005\u00b5\u0a1a", + "\n\u00b5\u0003\u00b6\u0003\u00b6\u0005\u00b6\u0a1e\n\u00b6\u0003\u00b6", + "\u0003\u00b6\u0005\u00b6\u0a22\n\u00b6\u0003\u00b6\u0003\u00b6\u0005", + "\u00b6\u0a26\n\u00b6\u0003\u00b7\u0003\u00b7\u0005\u00b7\u0a2a\n\u00b7", + "\u0003\u00b7\u0003\u00b7\u0003\u00b8\u0003\u00b8\u0005\u00b8\u0a30\n", + "\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0005\u00b9\u0a36", + "\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9", + "\u0005\u00b9\u0a3d\n\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0007\u00b9\u0a43\n\u00b9\f\u00b9\u000e\u00b9\u0a46\u000b\u00b9", + "\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0005\u00ba\u0a4b\n\u00ba\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a50\n\u00bb\u0003\u00bb", "\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb", - "\u0005\u00bb\u0a5e\n\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", - "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a67\n\u00bb", - "\u0003\u00bc\u0003\u00bc\u0005\u00bc\u0a6b\n\u00bc\u0003\u00bc\u0003", - "\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0007\u00bc\u0a72\n\u00bc", - "\f\u00bc\u000e\u00bc\u0a75\u000b\u00bc\u0003\u00bc\u0005\u00bc\u0a78", - "\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd", - "\u0003\u00bd\u0007\u00bd\u0a80\n\u00bd\f\u00bd\u000e\u00bd\u0a83\u000b", - "\u00bd\u0003\u00bd\u0003\u00bd\u0005\u00bd\u0a87\n\u00bd\u0003\u00bd", - "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003\u00be", - "\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00c0\u0003\u00c0", + "\u0003\u00bb\u0003\u00bb\u0005\u00bb\u0a5b\n\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0005", + "\u00bb\u0a64\n\u00bb\u0003\u00bc\u0003\u00bc\u0005\u00bc\u0a68\n\u00bc", + "\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0007\u00bc", + "\u0a6f\n\u00bc\f\u00bc\u000e\u00bc\u0a72\u000b\u00bc\u0003\u00bc\u0005", + "\u00bc\u0a75\n\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bd\u0003\u00bd", + "\u0003\u00bd\u0003\u00bd\u0007\u00bd\u0a7d\n\u00bd\f\u00bd\u000e\u00bd", + "\u0a80\u000b\u00bd\u0003\u00bd\u0003\u00bd\u0005\u00bd\u0a84\n\u00bd", + "\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be", + "\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00c0", "\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0", - "\u0003\u00c0\u0005\u00c0\u0a9d\n\u00c0\u0003\u00c0\u0005\u00c0\u0aa0", - "\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", + "\u0003\u00c0\u0003\u00c0\u0005\u00c0\u0a9a\n\u00c0\u0003\u00c0\u0005", + "\u00c0\u0a9d\n\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", "\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1", - "\u0005\u00c1\u0ab3\n\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u0003\u00c1\u0005\u00c1\u0ab0\n\u00c1\u0003\u00c1\u0003\u00c1\u0003", "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", - "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0007\u00c1\u0ac3", - "\n\u00c1\f\u00c1\u000e\u00c1\u0ac6\u000b\u00c1\u0003\u00c2\u0003\u00c2", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0007", + "\u00c1\u0ac0\n\u00c1\f\u00c1\u000e\u00c1\u0ac3\u000b\u00c1\u0003\u00c2", "\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2", - "\u0005\u00c2\u0ad0\n\u00c2\u0003\u00c3\u0003\u00c3\u0003\u00c3\u0003", - "\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003", - "\u00c5\u0003\u00c5\u0007\u00c5\u0add\n\u00c5\f\u00c5\u000e\u00c5\u0ae0", - "\u000b\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", - "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6\u0aeb\n", - "\u00c6\u0003\u00c7\u0003\u00c7\u0005\u00c7\u0aef\n\u00c7\u0003\u00c8", - "\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8", - "\u0006\u00c8\u0af8\n\u00c8\r\u00c8\u000e\u00c8\u0af9\u0003\u00c8\u0003", - "\u00c8\u0005\u00c8\u0afe\n\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c9", - "\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006\u00c9", - "\u0b08\n\u00c9\r\u00c9\u000e\u00c9\u0b09\u0003\u00c9\u0003\u00c9\u0005", - "\u00c9\u0b0e\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003\u00ca", - "\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", - "\u0b19\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b1e", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b23\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b27\n\u00cb\u0003\u00cb\u0003", - "\u00cb\u0005\u00cb\u0b2b\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0005\u00cb\u0b30\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b34", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b38\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b4f\n\u00cb\u0005\u00cb\u0b51", - "\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", - "\u0b63\n\u00cb\u0005\u00cb\u0b65\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6d\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b72\n\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b77\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b7c\n\u00cb\u0003\u00cb\u0003", + "\u0003\u00c2\u0005\u00c2\u0acd\n\u00c2\u0003\u00c3\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c5\u0003\u00c5\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0007\u00c5\u0ada\n\u00c5\f\u00c5\u000e", + "\u00c5\u0add\u000b\u00c5\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6", + "\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0005\u00c6", + "\u0ae8\n\u00c6\u0003\u00c7\u0003\u00c7\u0005\u00c7\u0aec\n\u00c7\u0003", + "\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c8\u0006\u00c8\u0af5\n\u00c8\r\u00c8\u000e\u00c8\u0af6\u0003\u00c8", + "\u0003\u00c8\u0005\u00c8\u0afb\n\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0006", + "\u00c9\u0b05\n\u00c9\r\u00c9\u000e\u00c9\u0b06\u0003\u00c9\u0003\u00c9", + "\u0005\u00c9\u0b0b\n\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u0b16\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u0b1b\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b20", + "\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b24\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0005\u00cb\u0b28\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0005\u00cb\u0b2d\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb", + "\u0b31\n\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b35\n\u00cb\u0003", "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b89\n\u00cb", - "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b8e\n\u00cb\u0003", - "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b93\n\u00cb\u0003\u00cb", - "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b98\n\u00cb\u0003\u00cb\u0003", - "\u00cb\u0003\u00cb\u0005\u00cb\u0b9d\n\u00cb\u0003\u00cb\u0003\u00cb", - "\u0003\u00cb\u0005\u00cb\u0ba2\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", - "\u00cb\u0005\u00cb\u0ba7\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", - "\u0005\u00cb\u0bac\n\u00cb\u0005\u00cb\u0bae\n\u00cb\u0003\u00cc\u0003", - "\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u0bb5\n\u00cd", - "\u0003\u00cd\u0005\u00cd\u0bb8\n\u00cd\u0003\u00cd\u0003\u00cd\u0003", - "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0007\u00ce\u0bc1", - "\n\u00ce\f\u00ce\u000e\u00ce\u0bc4\u000b\u00ce\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0bcd\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0005\u00cf\u0bd5\n\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0bde\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", - "\u00cf\u0be4\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0bf3\n\u00cf\f\u00cf", - "\u000e\u00cf\u0bf6\u000b\u00cf\u0005\u00cf\u0bf8\n\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf", - "\u0c06\n\u00cf\f\u00cf\u000e\u00cf\u0c09\u000b\u00cf\u0005\u00cf\u0c0b", - "\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c19\n\u00cf\f\u00cf\u000e\u00cf\u0c1c\u000b", - "\u00cf\u0005\u00cf\u0c1e\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0c2c\n\u00cf\f\u00cf", - "\u000e\u00cf\u0c2f\u000b\u00cf\u0005\u00cf\u0c31\n\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf", - "\u0c3f\n\u00cf\f\u00cf\u000e\u00cf\u0c42\u000b\u00cf\u0005\u00cf\u0c44", - "\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c52\n\u00cf\f\u00cf\u000e\u00cf\u0c55\u000b", - "\u00cf\u0005\u00cf\u0c57\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", - "\u0003\u00cf\u0007\u00cf\u0c63\n\u00cf\f\u00cf\u000e\u00cf\u0c66\u000b", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b4c\n\u00cb\u0005\u00cb", + "\u0b4e\n\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005", + "\u00cb\u0b60\n\u00cb\u0005\u00cb\u0b62\n\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6a\n", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b6f\n\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b74\n\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b79\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b86\n", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b8b\n\u00cb", + "\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b90\n\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b95\n\u00cb\u0003\u00cb", + "\u0003\u00cb\u0003\u00cb\u0005\u00cb\u0b9a\n\u00cb\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0005\u00cb\u0b9f\n\u00cb\u0003\u00cb\u0003\u00cb", + "\u0003\u00cb\u0005\u00cb\u0ba4\n\u00cb\u0003\u00cb\u0003\u00cb\u0003", + "\u00cb\u0005\u00cb\u0ba9\n\u00cb\u0005\u00cb\u0bab\n\u00cb\u0003\u00cc", + "\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0005\u00cd\u0bb2\n", + "\u00cd\u0003\u00cd\u0005\u00cd\u0bb5\n\u00cd\u0003\u00cd\u0003\u00cd", + "\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0007\u00ce", + "\u0bbe\n\u00ce\f\u00ce\u000e\u00ce\u0bc1\u000b\u00ce\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0bca\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0bd2\n\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0bdb\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0005\u00cf\u0be1\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0006\u00cf\u0c72", - "\n\u00cf\r\u00cf\u000e\u00cf\u0c73\u0003\u00cf\u0003\u00cf\u0005\u00cf", - "\u0c78\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0bf0\n\u00cf", + "\f\u00cf\u000e\u00cf\u0bf3\u000b\u00cf\u0005\u00cf\u0bf5\n\u00cf\u0003", "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", - "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c88\n\u00cf", - "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c8e\n", - "\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u0c93\n\u00d0", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007", + "\u00cf\u0c03\n\u00cf\f\u00cf\u000e\u00cf\u0c06\u000b\u00cf\u0005\u00cf", + "\u0c08\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c16\n\u00cf\f\u00cf\u000e\u00cf\u0c19", + "\u000b\u00cf\u0005\u00cf\u0c1b\n\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007\u00cf\u0c29\n\u00cf", + "\f\u00cf\u000e\u00cf\u0c2c\u000b\u00cf\u0005\u00cf\u0c2e\n\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0007", + "\u00cf\u0c3c\n\u00cf\f\u00cf\u000e\u00cf\u0c3f\u000b\u00cf\u0005\u00cf", + "\u0c41\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c4f\n\u00cf\f\u00cf\u000e\u00cf\u0c52", + "\u000b\u00cf\u0005\u00cf\u0c54\n\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0007\u00cf\u0c60\n\u00cf\f\u00cf\u000e\u00cf\u0c63", + "\u000b\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0006\u00cf", + "\u0c6f\n\u00cf\r\u00cf\u000e\u00cf\u0c70\u0003\u00cf\u0003\u00cf\u0005", + "\u00cf\u0c75\n\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf", + "\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c85\n", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0005\u00cf\u0c8b", + "\n\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0005\u00d0\u0c90\n\u00d0", "\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0007\u00d1", - "\u0c9a\n\u00d1\f\u00d1\u000e\u00d1\u0c9d\u000b\u00d1\u0003\u00d2\u0003", - "\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u0ca3\n\u00d2\u0005\u00d2", - "\u0ca5\n\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0005", - "\u00d3\u0cab\n\u00d3\u0003\u00d4\u0003\u00d4\u0005\u00d4\u0caf\n\u00d4", - "\u0003\u00d5\u0003\u00d5\u0007\u00d5\u0cb3\n\u00d5\f\u00d5\u000e\u00d5", - "\u0cb6\u000b\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u0c97\n\u00d1\f\u00d1\u000e\u00d1\u0c9a\u000b\u00d1\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0005\u00d2\u0ca0\n\u00d2\u0005\u00d2", + "\u0ca2\n\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d3\u0003\u00d3\u0005", + "\u00d3\u0ca8\n\u00d3\u0003\u00d4\u0003\u00d4\u0005\u00d4\u0cac\n\u00d4", + "\u0003\u00d5\u0003\u00d5\u0007\u00d5\u0cb0\n\u00d5\f\u00d5\u000e\u00d5", + "\u0cb3\u000b\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", - "\u00d6\u0003\u00d6\u0005\u00d6\u0cc4\n\u00d6\u0003\u00d7\u0003\u00d7", - "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7\u0ccb\n\u00d7\u0003", - "\u00d8\u0007\u00d8\u0cce\n\u00d8\f\u00d8\u000e\u00d8\u0cd1\u000b\u00d8", + "\u00d6\u0003\u00d6\u0005\u00d6\u0cc1\n\u00d6\u0003\u00d7\u0003\u00d7", + "\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0005\u00d7\u0cc8\n\u00d7\u0003", + "\u00d8\u0007\u00d8\u0ccb\n\u00d8\f\u00d8\u000e\u00d8\u0cce\u000b\u00d8", "\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00da\u0003\u00da\u0003\u00da", - "\u0003\u00da\u0005\u00da\u0cda\n\u00da\u0003\u00da\u0003\u00da\u0003", - "\u00da\u0007\u00da\u0cdf\n\u00da\f\u00da\u000e\u00da\u0ce2\u000b\u00da", - "\u0005\u00da\u0ce4\n\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003", - "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0005\u00dd\u0ced\n\u00dd", - "\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0cf1\n\u00dd\u0003\u00dd\u0003", - "\u00dd\u0003\u00dd\u0005\u00dd\u0cf6\n\u00dd\u0007\u00dd\u0cf8\n\u00dd", - "\f\u00dd\u000e\u00dd\u0cfb\u000b\u00dd\u0003\u00de\u0003\u00de\u0005", - "\u00de\u0cff\n\u00de\u0003\u00df\u0005\u00df\u0d02\n\u00df\u0003\u00df", - "\u0003\u00df\u0003\u00e0\u0005\u00e0\u0d07\n\u00e0\u0003\u00e0\u0003", - "\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003", - "\u00e3\u0003\u00e3\u0003\u0ccf\u0004\u0170\u0180\u00e4\u0002\u0004\u0006", - "\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018\u001a\u001c\u001e \"$&(*", - ",.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|~\u0080\u0082\u0084\u0086", - "\u0088\u008a\u008c\u008e\u0090\u0092\u0094\u0096\u0098\u009a\u009c\u009e", - "\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac\u00ae\u00b0\u00b2\u00b4\u00b6", - "\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4\u00c6\u00c8\u00ca\u00cc\u00ce", - "\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc\u00de\u00e0\u00e2\u00e4\u00e6", - "\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4\u00f6\u00f8\u00fa\u00fc\u00fe", - "\u0100\u0102\u0104\u0106\u0108\u010a\u010c\u010e\u0110\u0112\u0114\u0116", - "\u0118\u011a\u011c\u011e\u0120\u0122\u0124\u0126\u0128\u012a\u012c\u012e", - "\u0130\u0132\u0134\u0136\u0138\u013a\u013c\u013e\u0140\u0142\u0144\u0146", - "\u0148\u014a\u014c\u014e\u0150\u0152\u0154\u0156\u0158\u015a\u015c\u015e", - "\u0160\u0162\u0164\u0166\u0168\u016a\u016c\u016e\u0170\u0172\u0174\u0176", - "\u0178\u017a\u017c\u017e\u0180\u0182\u0184\u0186\u0188\u018a\u018c\u018e", - "\u0190\u0192\u0194\u0196\u0198\u019a\u019c\u019e\u01a0\u01a2\u01a4\u01a6", - "\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4\u01b6\u01b8\u01ba\u01bc\u01be", - "\u01c0\u01c2\u01c4\u00023\u0004\u0002\u0003\u0005\u000f\u000f\u0004", - "\u0002\u0010\u0010\u0012\u0012\u0003\u0002\"#\u0005\u0002\u001e\u001e", - ")),,\u0003\u000201\u0003\u000234\u0004\u0002\u0016\u0016AA\u0003\u0002", - "NO\u0003\u0002RS\u0003\u0002YZ\u0004\u0002SS\\\\\u0003\u0002`a\u0003", - "\u0002be\u0003\u0002gh\u0004\u0002TTss\u0003\u0002\u00b1\u00b2\u0004", - "\u0002JJ\u00b3\u00b3\u0004\u0002\u008b\u008b\u00b4\u00b4\u0003\u0002", - "\u00b5\u00b6\u0003\u0002\u00b7\u00b8\u0004\u0002)),,\u0004\u0002--\u00bc", - "\u00bc\u0004\u0002 \u00be\u00be\u0003\u0002\u00c5\u00c8\u0003\u0002", - "\u00cb\u00cc\u0003\u0002\u00cf\u00d0\u0003\u0002\u00e3\u00e4\u0004\u0002", - "\u00d9\u00d9\u00e8\u00e8\u0005\u0002SS\u00d3\u00d3\u00ee\u00ee\u0003", - "\u0002\u00f9\u00fd\u0004\u0002QQ\u00fe\u00fe\u0004\u0002%%\u0101\u0101", - "\u0005\u0002\u000e\u000e\u0014\u0014\u0109\u010a\u0004\u0002\u0108\u0108", - "\u010a\u010a\u0004\u0002oo\u010d\u010d\u0003\u0002\u0116\u0117\u0004", - "\u0002\u0113\u0113\u0118\u0118\u0003\u0002\u011d\u011f\u0004\u0002\u00b6", - "\u00b6\u0126\u0128\u0004\u0002RR\u012b\u012c\u0004\u0002OO\u0130\u0130", - "\u0004\u0002\u00ba\u00ba\u0129\u0129\u0004\u0002CC\u0137\u0138\u0003", - "\u0002\u013e\u0143\u0003\u0002\u0144\u0145\u0004\u000299\u0147\u0148", - "\u0003\u0002\u000b\f\u0003\u0002\u0170\u0171\u0018\u0002\r\u000e\u0011", - "\u0011\u0014\u0014\u0016\u0016\u001cIK\u008e\u0090\u00a0\u00a2\u00a6", - "\u00a8\u00ac\u00ae\u00b0\u00b3\u00cd\u00d1\u010b\u010d\u010d\u0111\u0111", - "\u0113\u0119\u011b\u0120\u0122\u0131\u0137\u0138\u013d\u0143\u0145\u015f", - "\u0166\u016c\u0170\u0178\u0002\u0ebc\u0002\u01c6\u0003\u0002\u0002\u0002", - "\u0004\u01d0\u0003\u0002\u0002\u0002\u0006\u01d5\u0003\u0002\u0002\u0002", - "\b\u01e9\u0003\u0002\u0002\u0002\n\u01eb\u0003\u0002\u0002\u0002\f\u01f7", + "\u0003\u00da\u0005\u00da\u0cd7\n\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0007\u00da\u0cdc\n\u00da\f\u00da\u000e\u00da\u0cdf\u000b\u00da", + "\u0005\u00da\u0ce1\n\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0ceb", + "\n\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0005\u00dd\u0cf0\n\u00dd", + "\u0007\u00dd\u0cf2\n\u00dd\f\u00dd\u000e\u00dd\u0cf5\u000b\u00dd\u0003", + "\u00de\u0003\u00de\u0005\u00de\u0cf9\n\u00de\u0003\u00df\u0005\u00df", + "\u0cfc\n\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0005\u00e0\u0d01", + "\n\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003\u00e1\u0003\u00e2", + "\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u0ccc\u0004\u0170", + "\u0180\u00e4\u0002\u0004\u0006\b\n\f\u000e\u0010\u0012\u0014\u0016\u0018", + "\u001a\u001c\u001e \"$&(*,.02468:<>@BDFHJLNPRTVXZ\\^`bdfhjlnprtvxz|", + "~\u0080\u0082\u0084\u0086\u0088\u008a\u008c\u008e\u0090\u0092\u0094", + "\u0096\u0098\u009a\u009c\u009e\u00a0\u00a2\u00a4\u00a6\u00a8\u00aa\u00ac", + "\u00ae\u00b0\u00b2\u00b4\u00b6\u00b8\u00ba\u00bc\u00be\u00c0\u00c2\u00c4", + "\u00c6\u00c8\u00ca\u00cc\u00ce\u00d0\u00d2\u00d4\u00d6\u00d8\u00da\u00dc", + "\u00de\u00e0\u00e2\u00e4\u00e6\u00e8\u00ea\u00ec\u00ee\u00f0\u00f2\u00f4", + "\u00f6\u00f8\u00fa\u00fc\u00fe\u0100\u0102\u0104\u0106\u0108\u010a\u010c", + "\u010e\u0110\u0112\u0114\u0116\u0118\u011a\u011c\u011e\u0120\u0122\u0124", + "\u0126\u0128\u012a\u012c\u012e\u0130\u0132\u0134\u0136\u0138\u013a\u013c", + "\u013e\u0140\u0142\u0144\u0146\u0148\u014a\u014c\u014e\u0150\u0152\u0154", + "\u0156\u0158\u015a\u015c\u015e\u0160\u0162\u0164\u0166\u0168\u016a\u016c", + "\u016e\u0170\u0172\u0174\u0176\u0178\u017a\u017c\u017e\u0180\u0182\u0184", + "\u0186\u0188\u018a\u018c\u018e\u0190\u0192\u0194\u0196\u0198\u019a\u019c", + "\u019e\u01a0\u01a2\u01a4\u01a6\u01a8\u01aa\u01ac\u01ae\u01b0\u01b2\u01b4", + "\u01b6\u01b8\u01ba\u01bc\u01be\u01c0\u01c2\u01c4\u00023\u0006\u0002", + "\u0159\u0159\u015e\u015e\u0168\u0168\u016f\u016f\u0004\u0002__\u0134", + "\u0134\u0003\u0002\u00a5\u00a6\u0005\u0002\u000b\u000bpp\u0096\u0096", + "\u0004\u0002\u001e\u001e&&\u0004\u000244hh\u0004\u0002\u00b5\u00b5\u00fd", + "\u00fd\u0004\u0002\f\fPP\u0004\u0002MM\u0129\u0129\u0004\u0002ii\u00a8", + "\u00a8\u0004\u0002MM\u00d5\u00d5\u0004\u0002II\u0085\u0085\u0005\u0002", + "\u0089\u0089\u00af\u00af\u00d1\u00d2\u0004\u0002\u00aa\u00aa\u00bc\u00bc", + "\u0004\u0002\u00b9\u00b9\u013c\u013c\u0004\u0002\u00f0\u00f0\u0126\u0126", + "\u0004\u0002\u00ae\u00ae\u0174\u0174\u0004\u0002\u001c\u001c##\u0004", + "\u0002!!;;\u0004\u0002??\u00f6\u00f6\u0004\u0002\u000b\u000b\u0096\u0096", + "\u0003\u0002\u00e7\u00e8\u0003\u0002\u00d8\u00d9\u0006\u0002::KK\u0095", + "\u0095\u00ce\u00ce\u0003\u0002cd\u0003\u0002\\]\u0003\u0002\u010d\u010e", + "\u0004\u0002\u00f1\u00f1\u0115\u0115\u0005\u0002MM\u0084\u0084\u00cd", + "\u00cd\u0006\u0002\t\n\u00ba\u00ba\u00dd\u00dd\u013a\u013a\u0003\u0002", + "\u00c4\u00c5\u0004\u0002\u00fe\u00fe\u0123\u0123\u0006\u0002\u0012\u0012", + "WW\u00ab\u00ab\u011d\u011d\u0004\u0002\u00ab\u00ab\u0136\u0136\u0004", + "\u0002\u001b\u001b\u010f\u010f\u0003\u0002\u00fb\u00fc\u0004\u0002\u0005", + "\u0005UU\u0005\u0002uu\u009f\u009f\u00ea\u00ea\u0005\u0002;;\u00f2\u00f3", + "\u012a\u012a\u0005\u0002ff\u0101\u0101\u0129\u0129\u0003\u0002PQ\u0004", + "\u0002\b\b\u00c8\u00c8\u0005\u0002\u00a0\u00a0\u00e1\u00e1\u00eb\u00eb", + "\u0005\u0002CD\u00b2\u00b3\u00f7\u00f8\u0004\u000211\u0158\u0158\u0005", + "\u0002ss\u0097\u0097\u00bf\u00bf\u0004\u0002\u0155\u0155\u0170\u0170", + "\u0004\u0002jj\u0124\u0124\u000e\u0002\u0003\u0016\u0018Z^^`\u00bf\u00c1", + "\u00d2\u00d4\u00ef\u00f1\u0104\u0106\u011e\u0120\u0125\u0128\u0133\u0136", + "\u0146\u014d\u0154\u0002\u0eb3\u0002\u01c6\u0003\u0002\u0002\u0002\u0004", + "\u01d0\u0003\u0002\u0002\u0002\u0006\u01d5\u0003\u0002\u0002\u0002\b", + "\u01e9\u0003\u0002\u0002\u0002\n\u01eb\u0003\u0002\u0002\u0002\f\u01f7", "\u0003\u0002\u0002\u0002\u000e\u0236\u0003\u0002\u0002\u0002\u0010\u0238", "\u0003\u0002\u0002\u0002\u0012\u023a\u0003\u0002\u0002\u0002\u0014\u0240", "\u0003\u0002\u0002\u0002\u0016\u0246\u0003\u0002\u0002\u0002\u0018\u0248", @@ -535,129 +536,129 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0002\u0002\u0002<\u032b\u0003\u0002\u0002\u0002>\u0334\u0003\u0002", "\u0002\u0002@\u0337\u0003\u0002\u0002\u0002B\u0344\u0003\u0002\u0002", "\u0002D\u034e\u0003\u0002\u0002\u0002F\u035b\u0003\u0002\u0002\u0002", - "H\u037c\u0003\u0002\u0002\u0002J\u0381\u0003\u0002\u0002\u0002L\u039f", - "\u0003\u0002\u0002\u0002N\u03a1\u0003\u0002\u0002\u0002P\u03c3\u0003", - "\u0002\u0002\u0002R\u03fe\u0003\u0002\u0002\u0002T\u0400\u0003\u0002", - "\u0002\u0002V\u040d\u0003\u0002\u0002\u0002X\u0414\u0003\u0002\u0002", - "\u0002Z\u0417\u0003\u0002\u0002\u0002\\\u041c\u0003\u0002\u0002\u0002", - "^\u042a\u0003\u0002\u0002\u0002`\u043e\u0003\u0002\u0002\u0002b\u0461", - "\u0003\u0002\u0002\u0002d\u0475\u0003\u0002\u0002\u0002f\u047b\u0003", - "\u0002\u0002\u0002h\u047d\u0003\u0002\u0002\u0002j\u04a1\u0003\u0002", - "\u0002\u0002l\u04a7\u0003\u0002\u0002\u0002n\u04c4\u0003\u0002\u0002", - "\u0002p\u04c6\u0003\u0002\u0002\u0002r\u04cb\u0003\u0002\u0002\u0002", - "t\u04cd\u0003\u0002\u0002\u0002v\u0512\u0003\u0002\u0002\u0002x\u0542", - "\u0003\u0002\u0002\u0002z\u0544\u0003\u0002\u0002\u0002|\u055a\u0003", - "\u0002\u0002\u0002~\u0568\u0003\u0002\u0002\u0002\u0080\u056a\u0003", - "\u0002\u0002\u0002\u0082\u057c\u0003\u0002\u0002\u0002\u0084\u0585\u0003", - "\u0002\u0002\u0002\u0086\u0595\u0003\u0002\u0002\u0002\u0088\u05a1\u0003", - "\u0002\u0002\u0002\u008a\u05ad\u0003\u0002\u0002\u0002\u008c\u05c4\u0003", - "\u0002\u0002\u0002\u008e\u05cd\u0003\u0002\u0002\u0002\u0090\u05da\u0003", - "\u0002\u0002\u0002\u0092\u05e7\u0003\u0002\u0002\u0002\u0094\u05f0\u0003", - "\u0002\u0002\u0002\u0096\u061f\u0003\u0002\u0002\u0002\u0098\u064b\u0003", - "\u0002\u0002\u0002\u009a\u064e\u0003\u0002\u0002\u0002\u009c\u065d\u0003", - "\u0002\u0002\u0002\u009e\u066d\u0003\u0002\u0002\u0002\u00a0\u066f\u0003", - "\u0002\u0002\u0002\u00a2\u0672\u0003\u0002\u0002\u0002\u00a4\u068f\u0003", - "\u0002\u0002\u0002\u00a6\u0691\u0003\u0002\u0002\u0002\u00a8\u06a1\u0003", - "\u0002\u0002\u0002\u00aa\u06a8\u0003\u0002\u0002\u0002\u00ac\u06ae\u0003", - "\u0002\u0002\u0002\u00ae\u06b3\u0003\u0002\u0002\u0002\u00b0\u06b6\u0003", - "\u0002\u0002\u0002\u00b2\u06bb\u0003\u0002\u0002\u0002\u00b4\u06cc\u0003", - "\u0002\u0002\u0002\u00b6\u06d7\u0003\u0002\u0002\u0002\u00b8\u06e0\u0003", - "\u0002\u0002\u0002\u00ba\u06eb\u0003\u0002\u0002\u0002\u00bc\u06f4\u0003", - "\u0002\u0002\u0002\u00be\u06fc\u0003\u0002\u0002\u0002\u00c0\u0702\u0003", - "\u0002\u0002\u0002\u00c2\u0704\u0003\u0002\u0002\u0002\u00c4\u070a\u0003", - "\u0002\u0002\u0002\u00c6\u070e\u0003\u0002\u0002\u0002\u00c8\u071b\u0003", - "\u0002\u0002\u0002\u00ca\u0720\u0003\u0002\u0002\u0002\u00cc\u0724\u0003", - "\u0002\u0002\u0002\u00ce\u072f\u0003\u0002\u0002\u0002\u00d0\u0738\u0003", - "\u0002\u0002\u0002\u00d2\u0746\u0003\u0002\u0002\u0002\u00d4\u074d\u0003", - "\u0002\u0002\u0002\u00d6\u0759\u0003\u0002\u0002\u0002\u00d8\u075c\u0003", - "\u0002\u0002\u0002\u00da\u076a\u0003\u0002\u0002\u0002\u00dc\u0770\u0003", - "\u0002\u0002\u0002\u00de\u0783\u0003\u0002\u0002\u0002\u00e0\u0798\u0003", - "\u0002\u0002\u0002\u00e2\u079c\u0003\u0002\u0002\u0002\u00e4\u07a6\u0003", - "\u0002\u0002\u0002\u00e6\u07a8\u0003\u0002\u0002\u0002\u00e8\u07aa\u0003", - "\u0002\u0002\u0002\u00ea\u07ae\u0003\u0002\u0002\u0002\u00ec\u07c1\u0003", - "\u0002\u0002\u0002\u00ee\u07c5\u0003\u0002\u0002\u0002\u00f0\u07c7\u0003", - "\u0002\u0002\u0002\u00f2\u07e4\u0003\u0002\u0002\u0002\u00f4\u07e7\u0003", - "\u0002\u0002\u0002\u00f6\u07ed\u0003\u0002\u0002\u0002\u00f8\u07ef\u0003", - "\u0002\u0002\u0002\u00fa\u07fd\u0003\u0002\u0002\u0002\u00fc\u0801\u0003", - "\u0002\u0002\u0002\u00fe\u0808\u0003\u0002\u0002\u0002\u0100\u080f\u0003", - "\u0002\u0002\u0002\u0102\u0816\u0003\u0002\u0002\u0002\u0104\u0819\u0003", - "\u0002\u0002\u0002\u0106\u0825\u0003\u0002\u0002\u0002\u0108\u0828\u0003", - "\u0002\u0002\u0002\u010a\u0839\u0003\u0002\u0002\u0002\u010c\u083f\u0003", - "\u0002\u0002\u0002\u010e\u0842\u0003\u0002\u0002\u0002\u0110\u0860\u0003", - "\u0002\u0002\u0002\u0112\u0868\u0003\u0002\u0002\u0002\u0114\u0877\u0003", - "\u0002\u0002\u0002\u0116\u088f\u0003\u0002\u0002\u0002\u0118\u0891\u0003", - "\u0002\u0002\u0002\u011a\u089b\u0003\u0002\u0002\u0002\u011c\u089f\u0003", - "\u0002\u0002\u0002\u011e\u08a8\u0003\u0002\u0002\u0002\u0120\u08b1\u0003", - "\u0002\u0002\u0002\u0122\u08bc\u0003\u0002\u0002\u0002\u0124\u08ca\u0003", - "\u0002\u0002\u0002\u0126\u08d8\u0003\u0002\u0002\u0002\u0128\u08da\u0003", - "\u0002\u0002\u0002\u012a\u08f3\u0003\u0002\u0002\u0002\u012c\u0900\u0003", - "\u0002\u0002\u0002\u012e\u0902\u0003\u0002\u0002\u0002\u0130\u090f\u0003", - "\u0002\u0002\u0002\u0132\u091a\u0003\u0002\u0002\u0002\u0134\u091e\u0003", - "\u0002\u0002\u0002\u0136\u0922\u0003\u0002\u0002\u0002\u0138\u092b\u0003", - "\u0002\u0002\u0002\u013a\u0936\u0003\u0002\u0002\u0002\u013c\u0938\u0003", - "\u0002\u0002\u0002\u013e\u093c\u0003\u0002\u0002\u0002\u0140\u0949\u0003", - "\u0002\u0002\u0002\u0142\u0954\u0003\u0002\u0002\u0002\u0144\u0956\u0003", - "\u0002\u0002\u0002\u0146\u0971\u0003\u0002\u0002\u0002\u0148\u0973\u0003", - "\u0002\u0002\u0002\u014a\u0984\u0003\u0002\u0002\u0002\u014c\u0986\u0003", - "\u0002\u0002\u0002\u014e\u0989\u0003\u0002\u0002\u0002\u0150\u0993\u0003", - "\u0002\u0002\u0002\u0152\u0996\u0003\u0002\u0002\u0002\u0154\u0999\u0003", - "\u0002\u0002\u0002\u0156\u09aa\u0003\u0002\u0002\u0002\u0158\u09b9\u0003", - "\u0002\u0002\u0002\u015a\u09bb\u0003\u0002\u0002\u0002\u015c\u09c5\u0003", - "\u0002\u0002\u0002\u015e\u09d5\u0003\u0002\u0002\u0002\u0160\u09dd\u0003", - "\u0002\u0002\u0002\u0162\u09e0\u0003\u0002\u0002\u0002\u0164\u09f1\u0003", - "\u0002\u0002\u0002\u0166\u0a06\u0003\u0002\u0002\u0002\u0168\u0a1c\u0003", - "\u0002\u0002\u0002\u016a\u0a1e\u0003\u0002\u0002\u0002\u016c\u0a2a\u0003", - "\u0002\u0002\u0002\u016e\u0a30\u0003\u0002\u0002\u0002\u0170\u0a3f\u0003", - "\u0002\u0002\u0002\u0172\u0a4d\u0003\u0002\u0002\u0002\u0174\u0a66\u0003", - "\u0002\u0002\u0002\u0176\u0a68\u0003\u0002\u0002\u0002\u0178\u0a7b\u0003", - "\u0002\u0002\u0002\u017a\u0a8d\u0003\u0002\u0002\u0002\u017c\u0a91\u0003", - "\u0002\u0002\u0002\u017e\u0a9f\u0003\u0002\u0002\u0002\u0180\u0ab2\u0003", - "\u0002\u0002\u0002\u0182\u0acf\u0003\u0002\u0002\u0002\u0184\u0ad1\u0003", - "\u0002\u0002\u0002\u0186\u0ad5\u0003\u0002\u0002\u0002\u0188\u0ad7\u0003", - "\u0002\u0002\u0002\u018a\u0aea\u0003\u0002\u0002\u0002\u018c\u0aee\u0003", - "\u0002\u0002\u0002\u018e\u0af0\u0003\u0002\u0002\u0002\u0190\u0b01\u0003", - "\u0002\u0002\u0002\u0192\u0b11\u0003\u0002\u0002\u0002\u0194\u0bad\u0003", - "\u0002\u0002\u0002\u0196\u0baf\u0003\u0002\u0002\u0002\u0198\u0bb1\u0003", - "\u0002\u0002\u0002\u019a\u0bbb\u0003\u0002\u0002\u0002\u019c\u0c8d\u0003", - "\u0002\u0002\u0002\u019e\u0c8f\u0003\u0002\u0002\u0002\u01a0\u0c96\u0003", - "\u0002\u0002\u0002\u01a2\u0c9e\u0003\u0002\u0002\u0002\u01a4\u0caa\u0003", - "\u0002\u0002\u0002\u01a6\u0cae\u0003\u0002\u0002\u0002\u01a8\u0cb0\u0003", - "\u0002\u0002\u0002\u01aa\u0cc3\u0003\u0002\u0002\u0002\u01ac\u0cca\u0003", - "\u0002\u0002\u0002\u01ae\u0ccf\u0003\u0002\u0002\u0002\u01b0\u0cd2\u0003", - "\u0002\u0002\u0002\u01b2\u0ce3\u0003\u0002\u0002\u0002\u01b4\u0ce5\u0003", - "\u0002\u0002\u0002\u01b6\u0ce8\u0003\u0002\u0002\u0002\u01b8\u0cec\u0003", - "\u0002\u0002\u0002\u01ba\u0cfe\u0003\u0002\u0002\u0002\u01bc\u0d01\u0003", - "\u0002\u0002\u0002\u01be\u0d06\u0003\u0002\u0002\u0002\u01c0\u0d0a\u0003", - "\u0002\u0002\u0002\u01c2\u0d0c\u0003\u0002\u0002\u0002\u01c4\u0d0e\u0003", + "H\u037a\u0003\u0002\u0002\u0002J\u037f\u0003\u0002\u0002\u0002L\u039d", + "\u0003\u0002\u0002\u0002N\u039f\u0003\u0002\u0002\u0002P\u03c1\u0003", + "\u0002\u0002\u0002R\u03fc\u0003\u0002\u0002\u0002T\u03fe\u0003\u0002", + "\u0002\u0002V\u040b\u0003\u0002\u0002\u0002X\u0412\u0003\u0002\u0002", + "\u0002Z\u0415\u0003\u0002\u0002\u0002\\\u041a\u0003\u0002\u0002\u0002", + "^\u0428\u0003\u0002\u0002\u0002`\u043c\u0003\u0002\u0002\u0002b\u045f", + "\u0003\u0002\u0002\u0002d\u0473\u0003\u0002\u0002\u0002f\u0479\u0003", + "\u0002\u0002\u0002h\u047b\u0003\u0002\u0002\u0002j\u049f\u0003\u0002", + "\u0002\u0002l\u04a5\u0003\u0002\u0002\u0002n\u04c2\u0003\u0002\u0002", + "\u0002p\u04c4\u0003\u0002\u0002\u0002r\u04c9\u0003\u0002\u0002\u0002", + "t\u04cb\u0003\u0002\u0002\u0002v\u0510\u0003\u0002\u0002\u0002x\u053f", + "\u0003\u0002\u0002\u0002z\u0541\u0003\u0002\u0002\u0002|\u0557\u0003", + "\u0002\u0002\u0002~\u0565\u0003\u0002\u0002\u0002\u0080\u0567\u0003", + "\u0002\u0002\u0002\u0082\u0579\u0003\u0002\u0002\u0002\u0084\u0582\u0003", + "\u0002\u0002\u0002\u0086\u0592\u0003\u0002\u0002\u0002\u0088\u059e\u0003", + "\u0002\u0002\u0002\u008a\u05aa\u0003\u0002\u0002\u0002\u008c\u05c1\u0003", + "\u0002\u0002\u0002\u008e\u05ca\u0003\u0002\u0002\u0002\u0090\u05d7\u0003", + "\u0002\u0002\u0002\u0092\u05e4\u0003\u0002\u0002\u0002\u0094\u05ed\u0003", + "\u0002\u0002\u0002\u0096\u061c\u0003\u0002\u0002\u0002\u0098\u0648\u0003", + "\u0002\u0002\u0002\u009a\u064b\u0003\u0002\u0002\u0002\u009c\u065a\u0003", + "\u0002\u0002\u0002\u009e\u066a\u0003\u0002\u0002\u0002\u00a0\u066c\u0003", + "\u0002\u0002\u0002\u00a2\u066f\u0003\u0002\u0002\u0002\u00a4\u068c\u0003", + "\u0002\u0002\u0002\u00a6\u068e\u0003\u0002\u0002\u0002\u00a8\u069e\u0003", + "\u0002\u0002\u0002\u00aa\u06a5\u0003\u0002\u0002\u0002\u00ac\u06ab\u0003", + "\u0002\u0002\u0002\u00ae\u06b0\u0003\u0002\u0002\u0002\u00b0\u06b3\u0003", + "\u0002\u0002\u0002\u00b2\u06b8\u0003\u0002\u0002\u0002\u00b4\u06c9\u0003", + "\u0002\u0002\u0002\u00b6\u06d4\u0003\u0002\u0002\u0002\u00b8\u06dd\u0003", + "\u0002\u0002\u0002\u00ba\u06e8\u0003\u0002\u0002\u0002\u00bc\u06f1\u0003", + "\u0002\u0002\u0002\u00be\u06f9\u0003\u0002\u0002\u0002\u00c0\u06ff\u0003", + "\u0002\u0002\u0002\u00c2\u0701\u0003\u0002\u0002\u0002\u00c4\u0707\u0003", + "\u0002\u0002\u0002\u00c6\u070b\u0003\u0002\u0002\u0002\u00c8\u0718\u0003", + "\u0002\u0002\u0002\u00ca\u071d\u0003\u0002\u0002\u0002\u00cc\u0721\u0003", + "\u0002\u0002\u0002\u00ce\u072c\u0003\u0002\u0002\u0002\u00d0\u0735\u0003", + "\u0002\u0002\u0002\u00d2\u0743\u0003\u0002\u0002\u0002\u00d4\u074a\u0003", + "\u0002\u0002\u0002\u00d6\u0756\u0003\u0002\u0002\u0002\u00d8\u0759\u0003", + "\u0002\u0002\u0002\u00da\u0767\u0003\u0002\u0002\u0002\u00dc\u076d\u0003", + "\u0002\u0002\u0002\u00de\u0780\u0003\u0002\u0002\u0002\u00e0\u0795\u0003", + "\u0002\u0002\u0002\u00e2\u0799\u0003\u0002\u0002\u0002\u00e4\u07a3\u0003", + "\u0002\u0002\u0002\u00e6\u07a5\u0003\u0002\u0002\u0002\u00e8\u07a7\u0003", + "\u0002\u0002\u0002\u00ea\u07ab\u0003\u0002\u0002\u0002\u00ec\u07be\u0003", + "\u0002\u0002\u0002\u00ee\u07c2\u0003\u0002\u0002\u0002\u00f0\u07c4\u0003", + "\u0002\u0002\u0002\u00f2\u07e1\u0003\u0002\u0002\u0002\u00f4\u07e4\u0003", + "\u0002\u0002\u0002\u00f6\u07ea\u0003\u0002\u0002\u0002\u00f8\u07ec\u0003", + "\u0002\u0002\u0002\u00fa\u07fa\u0003\u0002\u0002\u0002\u00fc\u07fe\u0003", + "\u0002\u0002\u0002\u00fe\u0805\u0003\u0002\u0002\u0002\u0100\u080c\u0003", + "\u0002\u0002\u0002\u0102\u0813\u0003\u0002\u0002\u0002\u0104\u0816\u0003", + "\u0002\u0002\u0002\u0106\u0822\u0003\u0002\u0002\u0002\u0108\u0825\u0003", + "\u0002\u0002\u0002\u010a\u0836\u0003\u0002\u0002\u0002\u010c\u083c\u0003", + "\u0002\u0002\u0002\u010e\u083f\u0003\u0002\u0002\u0002\u0110\u085d\u0003", + "\u0002\u0002\u0002\u0112\u0865\u0003\u0002\u0002\u0002\u0114\u0874\u0003", + "\u0002\u0002\u0002\u0116\u088c\u0003\u0002\u0002\u0002\u0118\u088e\u0003", + "\u0002\u0002\u0002\u011a\u0898\u0003\u0002\u0002\u0002\u011c\u089c\u0003", + "\u0002\u0002\u0002\u011e\u08a5\u0003\u0002\u0002\u0002\u0120\u08ae\u0003", + "\u0002\u0002\u0002\u0122\u08b9\u0003\u0002\u0002\u0002\u0124\u08c7\u0003", + "\u0002\u0002\u0002\u0126\u08d5\u0003\u0002\u0002\u0002\u0128\u08d7\u0003", + "\u0002\u0002\u0002\u012a\u08f0\u0003\u0002\u0002\u0002\u012c\u08fd\u0003", + "\u0002\u0002\u0002\u012e\u08ff\u0003\u0002\u0002\u0002\u0130\u090c\u0003", + "\u0002\u0002\u0002\u0132\u0917\u0003\u0002\u0002\u0002\u0134\u091b\u0003", + "\u0002\u0002\u0002\u0136\u091f\u0003\u0002\u0002\u0002\u0138\u0928\u0003", + "\u0002\u0002\u0002\u013a\u0933\u0003\u0002\u0002\u0002\u013c\u0935\u0003", + "\u0002\u0002\u0002\u013e\u0939\u0003\u0002\u0002\u0002\u0140\u0946\u0003", + "\u0002\u0002\u0002\u0142\u0951\u0003\u0002\u0002\u0002\u0144\u0953\u0003", + "\u0002\u0002\u0002\u0146\u096e\u0003\u0002\u0002\u0002\u0148\u0970\u0003", + "\u0002\u0002\u0002\u014a\u0981\u0003\u0002\u0002\u0002\u014c\u0983\u0003", + "\u0002\u0002\u0002\u014e\u0986\u0003\u0002\u0002\u0002\u0150\u0990\u0003", + "\u0002\u0002\u0002\u0152\u0993\u0003\u0002\u0002\u0002\u0154\u0996\u0003", + "\u0002\u0002\u0002\u0156\u09a7\u0003\u0002\u0002\u0002\u0158\u09b6\u0003", + "\u0002\u0002\u0002\u015a\u09b8\u0003\u0002\u0002\u0002\u015c\u09c2\u0003", + "\u0002\u0002\u0002\u015e\u09d2\u0003\u0002\u0002\u0002\u0160\u09da\u0003", + "\u0002\u0002\u0002\u0162\u09dd\u0003\u0002\u0002\u0002\u0164\u09ee\u0003", + "\u0002\u0002\u0002\u0166\u0a03\u0003\u0002\u0002\u0002\u0168\u0a19\u0003", + "\u0002\u0002\u0002\u016a\u0a1b\u0003\u0002\u0002\u0002\u016c\u0a27\u0003", + "\u0002\u0002\u0002\u016e\u0a2d\u0003\u0002\u0002\u0002\u0170\u0a3c\u0003", + "\u0002\u0002\u0002\u0172\u0a4a\u0003\u0002\u0002\u0002\u0174\u0a63\u0003", + "\u0002\u0002\u0002\u0176\u0a65\u0003\u0002\u0002\u0002\u0178\u0a78\u0003", + "\u0002\u0002\u0002\u017a\u0a8a\u0003\u0002\u0002\u0002\u017c\u0a8e\u0003", + "\u0002\u0002\u0002\u017e\u0a9c\u0003\u0002\u0002\u0002\u0180\u0aaf\u0003", + "\u0002\u0002\u0002\u0182\u0acc\u0003\u0002\u0002\u0002\u0184\u0ace\u0003", + "\u0002\u0002\u0002\u0186\u0ad2\u0003\u0002\u0002\u0002\u0188\u0ad4\u0003", + "\u0002\u0002\u0002\u018a\u0ae7\u0003\u0002\u0002\u0002\u018c\u0aeb\u0003", + "\u0002\u0002\u0002\u018e\u0aed\u0003\u0002\u0002\u0002\u0190\u0afe\u0003", + "\u0002\u0002\u0002\u0192\u0b0e\u0003\u0002\u0002\u0002\u0194\u0baa\u0003", + "\u0002\u0002\u0002\u0196\u0bac\u0003\u0002\u0002\u0002\u0198\u0bae\u0003", + "\u0002\u0002\u0002\u019a\u0bb8\u0003\u0002\u0002\u0002\u019c\u0c8a\u0003", + "\u0002\u0002\u0002\u019e\u0c8c\u0003\u0002\u0002\u0002\u01a0\u0c93\u0003", + "\u0002\u0002\u0002\u01a2\u0c9b\u0003\u0002\u0002\u0002\u01a4\u0ca7\u0003", + "\u0002\u0002\u0002\u01a6\u0cab\u0003\u0002\u0002\u0002\u01a8\u0cad\u0003", + "\u0002\u0002\u0002\u01aa\u0cc0\u0003\u0002\u0002\u0002\u01ac\u0cc7\u0003", + "\u0002\u0002\u0002\u01ae\u0ccc\u0003\u0002\u0002\u0002\u01b0\u0ccf\u0003", + "\u0002\u0002\u0002\u01b2\u0ce0\u0003\u0002\u0002\u0002\u01b4\u0ce2\u0003", + "\u0002\u0002\u0002\u01b6\u0ce5\u0003\u0002\u0002\u0002\u01b8\u0cea\u0003", + "\u0002\u0002\u0002\u01ba\u0cf8\u0003\u0002\u0002\u0002\u01bc\u0cfb\u0003", + "\u0002\u0002\u0002\u01be\u0d00\u0003\u0002\u0002\u0002\u01c0\u0d04\u0003", + "\u0002\u0002\u0002\u01c2\u0d06\u0003\u0002\u0002\u0002\u01c4\u0d08\u0003", "\u0002\u0002\u0002\u01c6\u01c7\u0005\u0004\u0003\u0002\u01c7\u01c8\u0007", "\u0002\u0002\u0003\u01c8\u0003\u0003\u0002\u0002\u0002\u01c9\u01cc\u0005", "\u0006\u0004\u0002\u01ca\u01cc\u0005\u000e\b\u0002\u01cb\u01c9\u0003", "\u0002\u0002\u0002\u01cb\u01ca\u0003\u0002\u0002\u0002\u01cc\u01ce\u0003", - "\u0002\u0002\u0002\u01cd\u01cf\u0007\r\u0002\u0002\u01ce\u01cd\u0003", + "\u0002\u0002\u0002\u01cd\u01cf\u0007y\u0002\u0002\u01ce\u01cd\u0003", "\u0002\u0002\u0002\u01ce\u01cf\u0003\u0002\u0002\u0002\u01cf\u01d1\u0003", "\u0002\u0002\u0002\u01d0\u01cb\u0003\u0002\u0002\u0002\u01d1\u01d2\u0003", "\u0002\u0002\u0002\u01d2\u01d0\u0003\u0002\u0002\u0002\u01d2\u01d3\u0003", "\u0002\u0002\u0002\u01d3\u0005\u0003\u0002\u0002\u0002\u01d4\u01d6\u0005", "0\u0019\u0002\u01d5\u01d4\u0003\u0002\u0002\u0002\u01d5\u01d6\u0003", "\u0002\u0002\u0002\u01d6\u01d7\u0003\u0002\u0002\u0002\u01d7\u01d8\u0007", - "\u000e\u0002\u0002\u01d8\u01da\u0005\u0004\u0003\u0002\u01d9\u01db\u0005", + "\u0012\u0002\u0002\u01d8\u01da\u0005\u0004\u0003\u0002\u01d9\u01db\u0005", "\u0012\n\u0002\u01da\u01d9\u0003\u0002\u0002\u0002\u01da\u01db\u0003", "\u0002\u0002\u0002\u01db\u01dc\u0003\u0002\u0002\u0002\u01dc\u01dd\u0005", "\n\u0006\u0002\u01dd\u0007\u0003\u0002\u0002\u0002\u01de\u01df\u0007", - "\u000e\u0002\u0002\u01df\u01e1\u0005\u0004\u0003\u0002\u01e0\u01e2\u0005", + "\u0012\u0002\u0002\u01df\u01e1\u0005\u0004\u0003\u0002\u01e0\u01e2\u0005", "\u0012\n\u0002\u01e1\u01e0\u0003\u0002\u0002\u0002\u01e1\u01e2\u0003", "\u0002\u0002\u0002\u01e2\u01e3\u0003\u0002\u0002\u0002\u01e3\u01e4\u0005", "\n\u0006\u0002\u01e4\u01ea\u0003\u0002\u0002\u0002\u01e5\u01e7\u0005", - "\u000e\b\u0002\u01e6\u01e8\u0007\u000f\u0002\u0002\u01e7\u01e6\u0003", + "\u000e\b\u0002\u01e6\u01e8\u0007\u016f\u0002\u0002\u01e7\u01e6\u0003", "\u0002\u0002\u0002\u01e7\u01e8\u0003\u0002\u0002\u0002\u01e8\u01ea\u0003", "\u0002\u0002\u0002\u01e9\u01de\u0003\u0002\u0002\u0002\u01e9\u01e5\u0003", "\u0002\u0002\u0002\u01ea\t\u0003\u0002\u0002\u0002\u01eb\u01ec\u0006", - "\u0006\u0002\u0002\u01ec\u01ed\u0007\u0010\u0002\u0002\u01ed\u000b\u0003", + "\u0006\u0002\u0002\u01ec\u01ed\u0007_\u0002\u0002\u01ed\u000b\u0003", "\u0002\u0002\u0002\u01ee\u01f8\u0005\u0006\u0004\u0002\u01ef\u01f1\u0005", "\u000e\b\u0002\u01f0\u01ef\u0003\u0002\u0002\u0002\u01f1\u01f2\u0003", "\u0002\u0002\u0002\u01f2\u01f0\u0003\u0002\u0002\u0002\u01f2\u01f3\u0003", "\u0002\u0002\u0002\u01f3\u01f5\u0003\u0002\u0002\u0002\u01f4\u01f6\u0007", - "\r\u0002\u0002\u01f5\u01f4\u0003\u0002\u0002\u0002\u01f5\u01f6\u0003", + "y\u0002\u0002\u01f5\u01f4\u0003\u0002\u0002\u0002\u01f5\u01f6\u0003", "\u0002\u0002\u0002\u01f6\u01f8\u0003\u0002\u0002\u0002\u01f7\u01ee\u0003", "\u0002\u0002\u0002\u01f7\u01f0\u0003\u0002\u0002\u0002\u01f8\r\u0003", "\u0002\u0002\u0002\u01f9\u0237\u0005\u001a\u000e\u0002\u01fa\u0237\u0005", @@ -721,19 +722,19 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\u0002\u0002\u0002\u0236\u0234\u0003\u0002\u0002\u0002\u0236\u0235\u0003", "\u0002\u0002\u0002\u0237\u000f\u0003\u0002\u0002\u0002\u0238\u0239\t", "\u0002\u0002\u0002\u0239\u0011\u0003\u0002\u0002\u0002\u023a\u023c\u0007", - "\u0011\u0002\u0002\u023b\u023d\u0005\u0014\u000b\u0002\u023c\u023b\u0003", + "e\u0002\u0002\u023b\u023d\u0005\u0014\u000b\u0002\u023c\u023b\u0003", "\u0002\u0002\u0002\u023d\u023e\u0003\u0002\u0002\u0002\u023e\u023c\u0003", "\u0002\u0002\u0002\u023e\u023f\u0003\u0002\u0002\u0002\u023f\u0013\u0003", - "\u0002\u0002\u0002\u0240\u0241\u0007\u0012\u0002\u0002\u0241\u0242\u0007", - "\u0013\u0002\u0002\u0242\u0243\u0007\u0014\u0002\u0002\u0243\u0244\u0005", + "\u0002\u0002\u0002\u0240\u0241\u0007\u0134\u0002\u0002\u0241\u0242\u0007", + "\u0171\u0002\u0002\u0242\u0243\u0007\u011d\u0002\u0002\u0243\u0244\u0005", "\u0004\u0003\u0002\u0244\u0245\n\u0003\u0002\u0002\u0245\u0015\u0003", - "\u0002\u0002\u0002\u0246\u0247\u0007\u0015\u0002\u0002\u0247\u0017\u0003", + "\u0002\u0002\u0002\u0246\u0247\u0007\u00c0\u0002\u0002\u0247\u0017\u0003", "\u0002\u0002\u0002\u0248\u0249\u0006\r\u0003\u0002\u0249\u024a\u0005", "\u0180\u00c1\u0002\u024a\u0019\u0003\u0002\u0002\u0002\u024b\u024c\u0007", - "\u0016\u0002\u0002\u024c\u0259\u0005\u00fe\u0080\u0002\u024d\u024f\u0007", - "\u0016\u0002\u0002\u024e\u024d\u0003\u0002\u0002\u0002\u024e\u024f\u0003", + "\u00fd\u0002\u0002\u024c\u0259\u0005\u00fe\u0080\u0002\u024d\u024f\u0007", + "\u00fd\u0002\u0002\u024e\u024d\u0003\u0002\u0002\u0002\u024e\u024f\u0003", "\u0002\u0002\u0002\u024f\u0250\u0003\u0002\u0002\u0002\u0250\u0255\u0005", - "\u001c\u000f\u0002\u0251\u0252\u0007\u0017\u0002\u0002\u0252\u0254\u0005", + "\u001c\u000f\u0002\u0251\u0252\u0007\u0157\u0002\u0002\u0252\u0254\u0005", "\u001c\u000f\u0002\u0253\u0251\u0003\u0002\u0002\u0002\u0254\u0257\u0003", "\u0002\u0002\u0002\u0255\u0253\u0003\u0002\u0002\u0002\u0255\u0256\u0003", "\u0002\u0002\u0002\u0256\u0259\u0003\u0002\u0002\u0002\u0257\u0255\u0003", @@ -743,1683 +744,1682 @@ var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", "\"\u0012\u0002\u025d\u025a\u0003\u0002\u0002\u0002\u025d\u025b\u0003", "\u0002\u0002\u0002\u025d\u025c\u0003\u0002\u0002\u0002\u025e\u001d\u0003", "\u0002\u0002\u0002\u025f\u0261\u0005\u01b8\u00dd\u0002\u0260\u0262\u0007", - "\u0018\u0002\u0002\u0261\u0260\u0003\u0002\u0002\u0002\u0261\u0262\u0003", + "\u0156\u0002\u0002\u0261\u0260\u0003\u0002\u0002\u0002\u0261\u0262\u0003", "\u0002\u0002\u0002\u0262\u0263\u0003\u0002\u0002\u0002\u0263\u0264\u0007", - "\u0019\u0002\u0002\u0264\u0265\u0005\u0180\u00c1\u0002\u0265\u0270\u0003", - "\u0002\u0002\u0002\u0266\u0267\u0007\u001a\u0002\u0002\u0267\u0268\u0005", - "\u01b8\u00dd\u0002\u0268\u026a\u0007\u001b\u0002\u0002\u0269\u026b\u0007", - "\u0018\u0002\u0002\u026a\u0269\u0003\u0002\u0002\u0002\u026a\u026b\u0003", + "\u015c\u0002\u0002\u0264\u0265\u0005\u0180\u00c1\u0002\u0265\u0270\u0003", + "\u0002\u0002\u0002\u0266\u0267\u0007\u016a\u0002\u0002\u0267\u0268\u0005", + "\u01b8\u00dd\u0002\u0268\u026a\u0007\u016d\u0002\u0002\u0269\u026b\u0007", + "\u0156\u0002\u0002\u026a\u0269\u0003\u0002\u0002\u0002\u026a\u026b\u0003", "\u0002\u0002\u0002\u026b\u026c\u0003\u0002\u0002\u0002\u026c\u026d\u0007", - "\u0019\u0002\u0002\u026d\u026e\u0005\u0180\u00c1\u0002\u026e\u0270\u0003", + "\u015c\u0002\u0002\u026d\u026e\u0005\u0180\u00c1\u0002\u026e\u0270\u0003", "\u0002\u0002\u0002\u026f\u025f\u0003\u0002\u0002\u0002\u026f\u0266\u0003", "\u0002\u0002\u0002\u0270\u001f\u0003\u0002\u0002\u0002\u0271\u0272\u0007", - "\u001a\u0002\u0002\u0272\u0277\u0005\u01b8\u00dd\u0002\u0273\u0274\u0007", - "\u0017\u0002\u0002\u0274\u0276\u0005\u01b8\u00dd\u0002\u0275\u0273\u0003", + "\u016a\u0002\u0002\u0272\u0277\u0005\u01b8\u00dd\u0002\u0273\u0274\u0007", + "\u0157\u0002\u0002\u0274\u0276\u0005\u01b8\u00dd\u0002\u0275\u0273\u0003", "\u0002\u0002\u0002\u0276\u0279\u0003\u0002\u0002\u0002\u0277\u0275\u0003", "\u0002\u0002\u0002\u0277\u0278\u0003\u0002\u0002\u0002\u0278\u027a\u0003", "\u0002\u0002\u0002\u0279\u0277\u0003\u0002\u0002\u0002\u027a\u027c\u0007", - "\u001b\u0002\u0002\u027b\u027d\u0007\u0018\u0002\u0002\u027c\u027b\u0003", + "\u016d\u0002\u0002\u027b\u027d\u0007\u0156\u0002\u0002\u027c\u027b\u0003", "\u0002\u0002\u0002\u027c\u027d\u0003\u0002\u0002\u0002\u027d\u027e\u0003", - "\u0002\u0002\u0002\u027e\u027f\u0007\u0019\u0002\u0002\u027f\u0280\u0007", - "\u001a\u0002\u0002\u0280\u0285\u0005\u0180\u00c1\u0002\u0281\u0282\u0007", - "\u0017\u0002\u0002\u0282\u0284\u0005\u0180\u00c1\u0002\u0283\u0281\u0003", + "\u0002\u0002\u0002\u027e\u027f\u0007\u015c\u0002\u0002\u027f\u0280\u0007", + "\u016a\u0002\u0002\u0280\u0285\u0005\u0180\u00c1\u0002\u0281\u0282\u0007", + "\u0157\u0002\u0002\u0282\u0284\u0005\u0180\u00c1\u0002\u0283\u0281\u0003", "\u0002\u0002\u0002\u0284\u0287\u0003\u0002\u0002\u0002\u0285\u0283\u0003", "\u0002\u0002\u0002\u0285\u0286\u0003\u0002\u0002\u0002\u0286\u0288\u0003", "\u0002\u0002\u0002\u0287\u0285\u0003\u0002\u0002\u0002\u0288\u0289\u0007", - "\u001b\u0002\u0002\u0289!\u0003\u0002\u0002\u0002\u028a\u0297\u0005", - "\u01b8\u00dd\u0002\u028b\u028c\u0007\u001a\u0002\u0002\u028c\u0291\u0005", - "\u01b8\u00dd\u0002\u028d\u028e\u0007\u0017\u0002\u0002\u028e\u0290\u0005", + "\u016d\u0002\u0002\u0289!\u0003\u0002\u0002\u0002\u028a\u0297\u0005", + "\u01b8\u00dd\u0002\u028b\u028c\u0007\u016a\u0002\u0002\u028c\u0291\u0005", + "\u01b8\u00dd\u0002\u028d\u028e\u0007\u0157\u0002\u0002\u028e\u0290\u0005", "\u01b8\u00dd\u0002\u028f\u028d\u0003\u0002\u0002\u0002\u0290\u0293\u0003", "\u0002\u0002\u0002\u0291\u028f\u0003\u0002\u0002\u0002\u0291\u0292\u0003", "\u0002\u0002\u0002\u0292\u0294\u0003\u0002\u0002\u0002\u0293\u0291\u0003", - "\u0002\u0002\u0002\u0294\u0295\u0007\u001b\u0002\u0002\u0295\u0297\u0003", + "\u0002\u0002\u0002\u0294\u0295\u0007\u016d\u0002\u0002\u0295\u0297\u0003", "\u0002\u0002\u0002\u0296\u028a\u0003\u0002\u0002\u0002\u0296\u028b\u0003", "\u0002\u0002\u0002\u0297\u0299\u0003\u0002\u0002\u0002\u0298\u029a\u0007", - "\u0018\u0002\u0002\u0299\u0298\u0003\u0002\u0002\u0002\u0299\u029a\u0003", + "\u0156\u0002\u0002\u0299\u0298\u0003\u0002\u0002\u0002\u0299\u029a\u0003", "\u0002\u0002\u0002\u029a\u029b\u0003\u0002\u0002\u0002\u029b\u029c\u0007", - "\u0019\u0002\u0002\u029c\u029d\u0007\u001a\u0002\u0002\u029d\u029e\u0005", - "\u011a\u008e\u0002\u029e\u029f\u0007\u001b\u0002\u0002\u029f#\u0003", - "\u0002\u0002\u0002\u02a0\u02a1\u0007\u001c\u0002\u0002\u02a1\u02a2\u0005", - "\u01b8\u00dd\u0002\u02a2\u02a3\u0007\u001d\u0002\u0002\u02a3\u02a7\u0007", - "\u001e\u0002\u0002\u02a4\u02a5\u0007\u001f\u0002\u0002\u02a5\u02a8\u0007", - "\u0016\u0002\u0002\u02a6\u02a8\u0007 \u0002\u0002\u02a7\u02a4\u0003", + "\u015c\u0002\u0002\u029c\u029d\u0007\u016a\u0002\u0002\u029d\u029e\u0005", + "\u011a\u008e\u0002\u029e\u029f\u0007\u016d\u0002\u0002\u029f#\u0003", + "\u0002\u0002\u0002\u02a0\u02a1\u0007\u0006\u0002\u0002\u02a1\u02a2\u0005", + "\u01b8\u00dd\u0002\u02a2\u02a3\u0007>\u0002\u0002\u02a3\u02a7\u0007", + "p\u0002\u0002\u02a4\u02a5\u0007\u00e5\u0002\u0002\u02a5\u02a8\u0007", + "\u00fd\u0002\u0002\u02a6\u02a8\u0007\u00d9\u0002\u0002\u02a7\u02a4\u0003", "\u0002\u0002\u0002\u02a7\u02a6\u0003\u0002\u0002\u0002\u02a8\u02a9\u0003", "\u0002\u0002\u0002\u02a9\u02aa\u0005\u01b8\u00dd\u0002\u02aa%\u0003", - "\u0002\u0002\u0002\u02ab\u02ae\u0007!\u0002\u0002\u02ac\u02ad\u0007", - "\u001f\u0002\u0002\u02ad\u02af\u0007\u0016\u0002\u0002\u02ae\u02ac\u0003", + "\u0002\u0002\u0002\u02ab\u02ae\u0007\r\u0002\u0002\u02ac\u02ad\u0007", + "\u00e5\u0002\u0002\u02ad\u02af\u0007\u00fd\u0002\u0002\u02ae\u02ac\u0003", "\u0002\u0002\u0002\u02ae\u02af\u0003\u0002\u0002\u0002\u02af\u02b0\u0003", "\u0002\u0002\u0002\u02b0\u02b1\t\u0004\u0002\u0002\u02b1\u02b2\u0007", - "\u001a\u0002\u0002\u02b2\u02b7\u0005\u01b8\u00dd\u0002\u02b3\u02b4\u0007", - "\u0017\u0002\u0002\u02b4\u02b6\u0005\u01b8\u00dd\u0002\u02b5\u02b3\u0003", + "\u016a\u0002\u0002\u02b2\u02b7\u0005\u01b8\u00dd\u0002\u02b3\u02b4\u0007", + "\u0157\u0002\u0002\u02b4\u02b6\u0005\u01b8\u00dd\u0002\u02b5\u02b3\u0003", "\u0002\u0002\u0002\u02b6\u02b9\u0003\u0002\u0002\u0002\u02b7\u02b5\u0003", "\u0002\u0002\u0002\u02b7\u02b8\u0003\u0002\u0002\u0002\u02b8\u02ba\u0003", "\u0002\u0002\u0002\u02b9\u02b7\u0003\u0002\u0002\u0002\u02ba\u02bb\u0007", - "\u001b\u0002\u0002\u02bb\u02bc\u0007$\u0002\u0002\u02bc\u02bd\u0007", - " \u0002\u0002\u02bd\u02be\u0005\u01b8\u00dd\u0002\u02be\'\u0003\u0002", - "\u0002\u0002\u02bf\u02c0\u0007\u000e\u0002\u0002\u02c0\u02c1\u0007%", - "\u0002\u0002\u02c1)\u0003\u0002\u0002\u0002\u02c2\u02c3\u0007&\u0002", - "\u0002\u02c3+\u0003\u0002\u0002\u0002\u02c4\u02c5\u0007\'\u0002\u0002", - "\u02c5\u02cc\u0005\u01b8\u00dd\u0002\u02c6\u02c8\u0007\u001a\u0002\u0002", - "\u02c7\u02c9\u0005\u01a0\u00d1\u0002\u02c8\u02c7\u0003\u0002\u0002\u0002", - "\u02c8\u02c9\u0003\u0002\u0002\u0002\u02c9\u02ca\u0003\u0002\u0002\u0002", - "\u02ca\u02cd\u0007\u001b\u0002\u0002\u02cb\u02cd\u0005\u01a0\u00d1\u0002", - "\u02cc\u02c6\u0003\u0002\u0002\u0002\u02cc\u02cb\u0003\u0002\u0002\u0002", - "\u02cc\u02cd\u0003\u0002\u0002\u0002\u02cd-\u0003\u0002\u0002\u0002", - "\u02ce\u02cf\u0007(\u0002\u0002\u02cf\u02d4\u00054\u001b\u0002\u02d0", - "\u02d1\u0007\u0017\u0002\u0002\u02d1\u02d3\u00054\u001b\u0002\u02d2", - "\u02d0\u0003\u0002\u0002\u0002\u02d3\u02d6\u0003\u0002\u0002\u0002\u02d4", - "\u02d2\u0003\u0002\u0002\u0002\u02d4\u02d5\u0003\u0002\u0002\u0002\u02d5", - "/\u0003\u0002\u0002\u0002\u02d6\u02d4\u0003\u0002\u0002\u0002\u02d7", - "\u02d8\u0007(\u0002\u0002\u02d8\u02d9\u00054\u001b\u0002\u02d9\u02df", - "\u0007\u000f\u0002\u0002\u02da\u02db\u00054\u001b\u0002\u02db\u02dc", - "\u0007\u000f\u0002\u0002\u02dc\u02de\u0003\u0002\u0002\u0002\u02dd\u02da", - "\u0003\u0002\u0002\u0002\u02de\u02e1\u0003\u0002\u0002\u0002\u02df\u02dd", - "\u0003\u0002\u0002\u0002\u02df\u02e0\u0003\u0002\u0002\u0002\u02e01", - "\u0003\u0002\u0002\u0002\u02e1\u02df\u0003\u0002\u0002\u0002\u02e2\u02e3", - "\u00054\u001b\u0002\u02e3\u02e9\u0007\u000f\u0002\u0002\u02e4\u02e5", - "\u00054\u001b\u0002\u02e5\u02e6\u0007\u000f\u0002\u0002\u02e6\u02e8", - "\u0003\u0002\u0002\u0002\u02e7\u02e4\u0003\u0002\u0002\u0002\u02e8\u02eb", - "\u0003\u0002\u0002\u0002\u02e9\u02e7\u0003\u0002\u0002\u0002\u02e9\u02ea", - "\u0003\u0002\u0002\u0002\u02ea3\u0003\u0002\u0002\u0002\u02eb\u02e9", - "\u0003\u0002\u0002\u0002\u02ec\u02f2\u0005:\u001e\u0002\u02ed\u02f2", - "\u00058\u001d\u0002\u02ee\u02f2\u0005@!\u0002\u02ef\u02f2\u00056\u001c", - "\u0002\u02f0\u02f2\u0005B\"\u0002\u02f1\u02ec\u0003\u0002\u0002\u0002", - "\u02f1\u02ed\u0003\u0002\u0002\u0002\u02f1\u02ee\u0003\u0002\u0002\u0002", - "\u02f1\u02ef\u0003\u0002\u0002\u0002\u02f1\u02f0\u0003\u0002\u0002\u0002", - "\u02f25\u0003\u0002\u0002\u0002\u02f3\u02f8\u0005\u01b8\u00dd\u0002", - "\u02f4\u02f5\u0007\u0017\u0002\u0002\u02f5\u02f7\u0005\u01b8\u00dd\u0002", - "\u02f6\u02f4\u0003\u0002\u0002\u0002\u02f7\u02fa\u0003\u0002\u0002\u0002", - "\u02f8\u02f6\u0003\u0002\u0002\u0002\u02f8\u02f9\u0003\u0002\u0002\u0002", - "\u02f9\u02fc\u0003\u0002\u0002\u0002\u02fa\u02f8\u0003\u0002\u0002\u0002", - "\u02fb\u02fd\u0007)\u0002\u0002\u02fc\u02fb\u0003\u0002\u0002\u0002", - "\u02fc\u02fd\u0003\u0002\u0002\u0002\u02fd\u02fe\u0003\u0002\u0002\u0002", - "\u02fe\u0300\u0005x=\u0002\u02ff\u0301\u0005z>\u0002\u0300\u02ff\u0003", - "\u0002\u0002\u0002\u0300\u0301\u0003\u0002\u0002\u0002\u0301\u0305\u0003", - "\u0002\u0002\u0002\u0302\u0304\u0005|?\u0002\u0303\u0302\u0003\u0002", - "\u0002\u0002\u0304\u0307\u0003\u0002\u0002\u0002\u0305\u0303\u0003\u0002", - "\u0002\u0002\u0305\u0306\u0003\u0002\u0002\u0002\u0306\u0309\u0003\u0002", - "\u0002\u0002\u0307\u0305\u0003\u0002\u0002\u0002\u0308\u030a\u0005~", - "@\u0002\u0309\u0308\u0003\u0002\u0002\u0002\u0309\u030a\u0003\u0002", - "\u0002\u0002\u030a\u0317\u0003\u0002\u0002\u0002\u030b\u030c\u0005\u01b8", - "\u00dd\u0002\u030c\u030e\u0007*\u0002\u0002\u030d\u030f\u0007)\u0002", - "\u0002\u030e\u030d\u0003\u0002\u0002\u0002\u030e\u030f\u0003\u0002\u0002", - "\u0002\u030f\u0310\u0003\u0002\u0002\u0002\u0310\u0312\u0005x=\u0002", - "\u0311\u0313\u0005z>\u0002\u0312\u0311\u0003\u0002\u0002\u0002\u0312", - "\u0313\u0003\u0002\u0002\u0002\u0313\u0314\u0003\u0002\u0002\u0002\u0314", - "\u0315\u0005~@\u0002\u0315\u0317\u0003\u0002\u0002\u0002\u0316\u02f3", - "\u0003\u0002\u0002\u0002\u0316\u030b\u0003\u0002\u0002\u0002\u03177", - "\u0003\u0002\u0002\u0002\u0318\u0319\u0005\u01b8\u00dd\u0002\u0319\u031a", - "\u0007+\u0002\u0002\u031a9\u0003\u0002\u0002\u0002\u031b\u031c\u0007", - "\u001d\u0002\u0002\u031c\u0321\u0005\u01b8\u00dd\u0002\u031d\u031e\u0005", - "\u01b8\u00dd\u0002\u031e\u031f\u0007\u001d\u0002\u0002\u031f\u0321\u0003", - "\u0002\u0002\u0002\u0320\u031b\u0003\u0002\u0002\u0002\u0320\u031d\u0003", - "\u0002\u0002\u0002\u0321\u0324\u0003\u0002\u0002\u0002\u0322\u0325\u0005", - "<\u001f\u0002\u0323\u0325\u0005> \u0002\u0324\u0322\u0003\u0002\u0002", - "\u0002\u0324\u0323\u0003\u0002\u0002\u0002\u0324\u0325\u0003\u0002\u0002", - "\u0002\u0325\u0326\u0003\u0002\u0002\u0002\u0326\u0329\t\u0005\u0002", - "\u0002\u0327\u032a\u0005\u011a\u008e\u0002\u0328\u032a\u0005\u0180\u00c1", - "\u0002\u0329\u0327\u0003\u0002\u0002\u0002\u0329\u0328\u0003\u0002\u0002", - "\u0002\u032a;\u0003\u0002\u0002\u0002\u032b\u032c\u0007$\u0002\u0002", - "\u032c\u032e\u0007-\u0002\u0002\u032d\u032f\u0007.\u0002\u0002\u032e", - "\u032d\u0003\u0002\u0002\u0002\u032e\u032f\u0003\u0002\u0002\u0002\u032f", - "\u0332\u0003\u0002\u0002\u0002\u0330\u0331\u0007/\u0002\u0002\u0331", - "\u0333\t\u0006\u0002\u0002\u0332\u0330\u0003\u0002\u0002\u0002\u0332", - "\u0333\u0003\u0002\u0002\u0002\u0333=\u0003\u0002\u0002\u0002\u0334", - "\u0335\u00072\u0002\u0002\u0335\u0336\u0007-\u0002\u0002\u0336?\u0003", - "\u0002\u0002\u0002\u0337\u0338\t\u0007\u0002\u0002\u0338\u0339\u0007", - "5\u0002\u0002\u0339\u033f\u0007\u001e\u0002\u0002\u033a\u0340\u0007", - "6\u0002\u0002\u033b\u0340\u00077\u0002\u0002\u033c\u033d\u00078\u0002", - "\u0002\u033d\u0340\u00079\u0002\u0002\u033e\u0340\u0005\u01b8\u00dd", - "\u0002\u033f\u033a\u0003\u0002\u0002\u0002\u033f\u033b\u0003\u0002\u0002", - "\u0002\u033f\u033c\u0003\u0002\u0002\u0002\u033f\u033e\u0003\u0002\u0002", - "\u0002\u0340\u0341\u0003\u0002\u0002\u0002\u0341\u0342\u0005\b\u0005", - "\u0002\u0342A\u0003\u0002\u0002\u0002\u0343\u0345\u0007:\u0002\u0002", - "\u0344\u0343\u0003\u0002\u0002\u0002\u0344\u0345\u0003\u0002\u0002\u0002", - "\u0345\u0346\u0003\u0002\u0002\u0002\u0346\u0347\u0007;\u0002\u0002", - "\u0347\u0348\u0007<\u0002\u0002\u0348\u034a\u0005\u01b8\u00dd\u0002", - "\u0349\u034b\u0005V,\u0002\u034a\u0349\u0003\u0002\u0002\u0002\u034a", - "\u034b\u0003\u0002\u0002\u0002\u034b\u034c\u0003\u0002\u0002\u0002\u034c", - "\u034d\u0005H%\u0002\u034dC\u0003\u0002\u0002\u0002\u034e\u034f\u0007", - "=\u0002\u0002\u034f\u0353\u0007<\u0002\u0002\u0350\u0351\u0007>\u0002", - "\u0002\u0351\u0352\u00078\u0002\u0002\u0352\u0354\u0007?\u0002\u0002", + "\u016d\u0002\u0002\u02bb\u02bc\u0007\u0137\u0002\u0002\u02bc\u02bd\u0007", + "\u00d9\u0002\u0002\u02bd\u02be\u0005\u01b8\u00dd\u0002\u02be\'\u0003", + "\u0002\u0002\u0002\u02bf\u02c0\u0007\u0012\u0002\u0002\u02c0\u02c1\u0007", + "\u0123\u0002\u0002\u02c1)\u0003\u0002\u0002\u0002\u02c2\u02c3\u0007", + "\u001a\u0002\u0002\u02c3+\u0003\u0002\u0002\u0002\u02c4\u02c5\u0007", + "\u001d\u0002\u0002\u02c5\u02cc\u0005\u01b8\u00dd\u0002\u02c6\u02c8\u0007", + "\u016a\u0002\u0002\u02c7\u02c9\u0005\u01a0\u00d1\u0002\u02c8\u02c7\u0003", + "\u0002\u0002\u0002\u02c8\u02c9\u0003\u0002\u0002\u0002\u02c9\u02ca\u0003", + "\u0002\u0002\u0002\u02ca\u02cd\u0007\u016d\u0002\u0002\u02cb\u02cd\u0005", + "\u01a0\u00d1\u0002\u02cc\u02c6\u0003\u0002\u0002\u0002\u02cc\u02cb\u0003", + "\u0002\u0002\u0002\u02cc\u02cd\u0003\u0002\u0002\u0002\u02cd-\u0003", + "\u0002\u0002\u0002\u02ce\u02cf\u0007G\u0002\u0002\u02cf\u02d4\u0005", + "4\u001b\u0002\u02d0\u02d1\u0007\u0157\u0002\u0002\u02d1\u02d3\u0005", + "4\u001b\u0002\u02d2\u02d0\u0003\u0002\u0002\u0002\u02d3\u02d6\u0003", + "\u0002\u0002\u0002\u02d4\u02d2\u0003\u0002\u0002\u0002\u02d4\u02d5\u0003", + "\u0002\u0002\u0002\u02d5/\u0003\u0002\u0002\u0002\u02d6\u02d4\u0003", + "\u0002\u0002\u0002\u02d7\u02d8\u0007G\u0002\u0002\u02d8\u02d9\u0005", + "4\u001b\u0002\u02d9\u02df\u0007\u016f\u0002\u0002\u02da\u02db\u0005", + "4\u001b\u0002\u02db\u02dc\u0007\u016f\u0002\u0002\u02dc\u02de\u0003", + "\u0002\u0002\u0002\u02dd\u02da\u0003\u0002\u0002\u0002\u02de\u02e1\u0003", + "\u0002\u0002\u0002\u02df\u02dd\u0003\u0002\u0002\u0002\u02df\u02e0\u0003", + "\u0002\u0002\u0002\u02e01\u0003\u0002\u0002\u0002\u02e1\u02df\u0003", + "\u0002\u0002\u0002\u02e2\u02e3\u00054\u001b\u0002\u02e3\u02e9\u0007", + "\u016f\u0002\u0002\u02e4\u02e5\u00054\u001b\u0002\u02e5\u02e6\u0007", + "\u016f\u0002\u0002\u02e6\u02e8\u0003\u0002\u0002\u0002\u02e7\u02e4\u0003", + "\u0002\u0002\u0002\u02e8\u02eb\u0003\u0002\u0002\u0002\u02e9\u02e7\u0003", + "\u0002\u0002\u0002\u02e9\u02ea\u0003\u0002\u0002\u0002\u02ea3\u0003", + "\u0002\u0002\u0002\u02eb\u02e9\u0003\u0002\u0002\u0002\u02ec\u02f2\u0005", + ":\u001e\u0002\u02ed\u02f2\u00058\u001d\u0002\u02ee\u02f2\u0005@!\u0002", + "\u02ef\u02f2\u00056\u001c\u0002\u02f0\u02f2\u0005B\"\u0002\u02f1\u02ec", + "\u0003\u0002\u0002\u0002\u02f1\u02ed\u0003\u0002\u0002\u0002\u02f1\u02ee", + "\u0003\u0002\u0002\u0002\u02f1\u02ef\u0003\u0002\u0002\u0002\u02f1\u02f0", + "\u0003\u0002\u0002\u0002\u02f25\u0003\u0002\u0002\u0002\u02f3\u02f8", + "\u0005\u01b8\u00dd\u0002\u02f4\u02f5\u0007\u0157\u0002\u0002\u02f5\u02f7", + "\u0005\u01b8\u00dd\u0002\u02f6\u02f4\u0003\u0002\u0002\u0002\u02f7\u02fa", + "\u0003\u0002\u0002\u0002\u02f8\u02f6\u0003\u0002\u0002\u0002\u02f8\u02f9", + "\u0003\u0002\u0002\u0002\u02f9\u02fc\u0003\u0002\u0002\u0002\u02fa\u02f8", + "\u0003\u0002\u0002\u0002\u02fb\u02fd\u0007\u000b\u0002\u0002\u02fc\u02fb", + "\u0003\u0002\u0002\u0002\u02fc\u02fd\u0003\u0002\u0002\u0002\u02fd\u02fe", + "\u0003\u0002\u0002\u0002\u02fe\u0300\u0005x=\u0002\u02ff\u0301\u0005", + "z>\u0002\u0300\u02ff\u0003\u0002\u0002\u0002\u0300\u0301\u0003\u0002", + "\u0002\u0002\u0301\u0305\u0003\u0002\u0002\u0002\u0302\u0304\u0005|", + "?\u0002\u0303\u0302\u0003\u0002\u0002\u0002\u0304\u0307\u0003\u0002", + "\u0002\u0002\u0305\u0303\u0003\u0002\u0002\u0002\u0305\u0306\u0003\u0002", + "\u0002\u0002\u0306\u0309\u0003\u0002\u0002\u0002\u0307\u0305\u0003\u0002", + "\u0002\u0002\u0308\u030a\u0005~@\u0002\u0309\u0308\u0003\u0002\u0002", + "\u0002\u0309\u030a\u0003\u0002\u0002\u0002\u030a\u0317\u0003\u0002\u0002", + "\u0002\u030b\u030c\u0005\u01b8\u00dd\u0002\u030c\u030e\u0007.\u0002", + "\u0002\u030d\u030f\u0007\u000b\u0002\u0002\u030e\u030d\u0003\u0002\u0002", + "\u0002\u030e\u030f\u0003\u0002\u0002\u0002\u030f\u0310\u0003\u0002\u0002", + "\u0002\u0310\u0312\u0005x=\u0002\u0311\u0313\u0005z>\u0002\u0312\u0311", + "\u0003\u0002\u0002\u0002\u0312\u0313\u0003\u0002\u0002\u0002\u0313\u0314", + "\u0003\u0002\u0002\u0002\u0314\u0315\u0005~@\u0002\u0315\u0317\u0003", + "\u0002\u0002\u0002\u0316\u02f3\u0003\u0002\u0002\u0002\u0316\u030b\u0003", + "\u0002\u0002\u0002\u03177\u0003\u0002\u0002\u0002\u0318\u0319\u0005", + "\u01b8\u00dd\u0002\u0319\u031a\u00072\u0002\u0002\u031a9\u0003\u0002", + "\u0002\u0002\u031b\u031c\u0007>\u0002\u0002\u031c\u0321\u0005\u01b8", + "\u00dd\u0002\u031d\u031e\u0005\u01b8\u00dd\u0002\u031e\u031f\u0007>", + "\u0002\u0002\u031f\u0321\u0003\u0002\u0002\u0002\u0320\u031b\u0003\u0002", + "\u0002\u0002\u0320\u031d\u0003\u0002\u0002\u0002\u0321\u0324\u0003\u0002", + "\u0002\u0002\u0322\u0325\u0005<\u001f\u0002\u0323\u0325\u0005> \u0002", + "\u0324\u0322\u0003\u0002\u0002\u0002\u0324\u0323\u0003\u0002\u0002\u0002", + "\u0324\u0325\u0003\u0002\u0002\u0002\u0325\u0326\u0003\u0002\u0002\u0002", + "\u0326\u0329\t\u0005\u0002\u0002\u0327\u032a\u0005\u011a\u008e\u0002", + "\u0328\u032a\u0005\u0180\u00c1\u0002\u0329\u0327\u0003\u0002\u0002\u0002", + "\u0329\u0328\u0003\u0002\u0002\u0002\u032a;\u0003\u0002\u0002\u0002", + "\u032b\u032c\u0007\u0137\u0002\u0002\u032c\u032e\u0007\u00e7\u0002\u0002", + "\u032d\u032f\u0007\u00c6\u0002\u0002\u032e\u032d\u0003\u0002\u0002\u0002", + "\u032e\u032f\u0003\u0002\u0002\u0002\u032f\u0332\u0003\u0002\u0002\u0002", + "\u0330\u0331\u0007\u0121\u0002\u0002\u0331\u0333\t\u0006\u0002\u0002", + "\u0332\u0330\u0003\u0002\u0002\u0002\u0332\u0333\u0003\u0002\u0002\u0002", + "\u0333=\u0003\u0002\u0002\u0002\u0334\u0335\u0007\u0138\u0002\u0002", + "\u0335\u0336\u0007\u00e7\u0002\u0002\u0336?\u0003\u0002\u0002\u0002", + "\u0337\u0338\t\u0007\u0002\u0002\u0338\u0339\u0007|\u0002\u0002\u0339", + "\u033f\u0007p\u0002\u0002\u033a\u0340\u0007\u0109\u0002\u0002\u033b", + "\u0340\u0007\u010c\u0002\u0002\u033c\u033d\u0007\u00be\u0002\u0002\u033d", + "\u0340\u0007s\u0002\u0002\u033e\u0340\u0005\u01b8\u00dd\u0002\u033f", + "\u033a\u0003\u0002\u0002\u0002\u033f\u033b\u0003\u0002\u0002\u0002\u033f", + "\u033c\u0003\u0002\u0002\u0002\u033f\u033e\u0003\u0002\u0002\u0002\u0340", + "\u0341\u0003\u0002\u0002\u0002\u0341\u0342\u0005\b\u0005\u0002\u0342", + "A\u0003\u0002\u0002\u0002\u0343\u0345\u0007x\u0002\u0002\u0344\u0343", + "\u0003\u0002\u0002\u0002\u0344\u0345\u0003\u0002\u0002\u0002\u0345\u0346", + "\u0003\u0002\u0002\u0002\u0346\u0347\u0007\u011a\u0002\u0002\u0347\u0348", + "\u0007\u0118\u0002\u0002\u0348\u034a\u0005\u01b8\u00dd\u0002\u0349\u034b", + "\u0005V,\u0002\u034a\u0349\u0003\u0002\u0002\u0002\u034a\u034b\u0003", + "\u0002\u0002\u0002\u034b\u034c\u0003\u0002\u0002\u0002\u034c\u034d\u0005", + "H%\u0002\u034dC\u0003\u0002\u0002\u0002\u034e\u034f\u00078\u0002\u0002", + "\u034f\u0353\u0007\u0118\u0002\u0002\u0350\u0351\u0007\u0083\u0002\u0002", + "\u0351\u0352\u0007\u00be\u0002\u0002\u0352\u0354\u0007g\u0002\u0002", "\u0353\u0350\u0003\u0002\u0002\u0002\u0353\u0354\u0003\u0002\u0002\u0002", "\u0354\u0355\u0003\u0002\u0002\u0002\u0355\u0357\u0005\u014a\u00a6\u0002", "\u0356\u0358\u0005V,\u0002\u0357\u0356\u0003\u0002\u0002\u0002\u0357", "\u0358\u0003\u0002\u0002\u0002\u0358\u0359\u0003\u0002\u0002\u0002\u0359", "\u035a\u0005H%\u0002\u035aE\u0003\u0002\u0002\u0002\u035b\u0362\u0007", - "=\u0002\u0002\u035c\u035d\u0007@\u0002\u0002\u035d\u0363\u0007;\u0002", - "\u0002\u035e\u0360\t\b\u0002\u0002\u035f\u035e\u0003\u0002\u0002\u0002", - "\u035f\u0360\u0003\u0002\u0002\u0002\u0360\u0361\u0003\u0002\u0002\u0002", - "\u0361\u0363\u0007B\u0002\u0002\u0362\u035c\u0003\u0002\u0002\u0002", - "\u0362\u035f\u0003\u0002\u0002\u0002\u0363\u0364\u0003\u0002\u0002\u0002", - "\u0364\u0365\u0007<\u0002\u0002\u0365\u0367\u0005\u01b8\u00dd\u0002", - "\u0366\u0368\u0005V,\u0002\u0367\u0366\u0003\u0002\u0002\u0002\u0367", - "\u0368\u0003\u0002\u0002\u0002\u0368\u0369\u0003\u0002\u0002\u0002\u0369", - "\u036a\u0005H%\u0002\u036aG\u0003\u0002\u0002\u0002\u036b\u036d\u0007", - ")\u0002\u0002\u036c\u036b\u0003\u0002\u0002\u0002\u036c\u036d\u0003", - "\u0002\u0002\u0002\u036d\u036e\u0003\u0002\u0002\u0002\u036e\u036f\u0007", - "\u001a\u0002\u0002\u036f\u0370\u0005\u011a\u008e\u0002\u0370\u0371\u0007", - "\u001b\u0002\u0002\u0371\u037d\u0003\u0002\u0002\u0002\u0372\u0374\u0007", - ")\u0002\u0002\u0373\u0372\u0003\u0002\u0002\u0002\u0373\u0374\u0003", - "\u0002\u0002\u0002\u0374\u0375\u0003\u0002\u0002\u0002\u0375\u037d\u0005", - "\u011a\u008e\u0002\u0376\u0377\u0007\u001a\u0002\u0002\u0377\u0378\u0005", - "J&\u0002\u0378\u0379\u0007\u001b\u0002\u0002\u0379\u037d\u0003\u0002", - "\u0002\u0002\u037a\u037b\u0007C\u0002\u0002\u037b\u037d\u0005\u014a", - "\u00a6\u0002\u037c\u036c\u0003\u0002\u0002\u0002\u037c\u0373\u0003\u0002", - "\u0002\u0002\u037c\u0376\u0003\u0002\u0002\u0002\u037c\u037a\u0003\u0002", - "\u0002\u0002\u037d\u037f\u0003\u0002\u0002\u0002\u037e\u0380\u0005\\", - "/\u0002\u037f\u037e\u0003\u0002\u0002\u0002\u037f\u0380\u0003\u0002", - "\u0002\u0002\u0380I\u0003\u0002\u0002\u0002\u0381\u0386\u0005L\'\u0002", - "\u0382\u0383\u0007\u0017\u0002\u0002\u0383\u0385\u0005L\'\u0002\u0384", - "\u0382\u0003\u0002\u0002\u0002\u0385\u0388\u0003\u0002\u0002\u0002\u0386", - "\u0384\u0003\u0002\u0002\u0002\u0386\u0387\u0003\u0002\u0002\u0002\u0387", - "K\u0003\u0002\u0002\u0002\u0388\u0386\u0003\u0002\u0002\u0002\u0389", - "\u038a\u0005N(\u0002\u038a\u038c\u0005x=\u0002\u038b\u038d\u0005z>\u0002", - "\u038c\u038b\u0003\u0002\u0002\u0002\u038c\u038d\u0003\u0002\u0002\u0002", - "\u038d\u0391\u0003\u0002\u0002\u0002\u038e\u0390\u0005|?\u0002\u038f", - "\u038e\u0003\u0002\u0002\u0002\u0390\u0393\u0003\u0002\u0002\u0002\u0391", - "\u038f\u0003\u0002\u0002\u0002\u0391\u0392\u0003\u0002\u0002\u0002\u0392", - "\u0397\u0003\u0002\u0002\u0002\u0393\u0391\u0003\u0002\u0002\u0002\u0394", - "\u0396\u0005P)\u0002\u0395\u0394\u0003\u0002\u0002\u0002\u0396\u0399", - "\u0003\u0002\u0002\u0002\u0397\u0395\u0003\u0002\u0002\u0002\u0397\u0398", - "\u0003\u0002\u0002\u0002\u0398\u03a0\u0003\u0002\u0002\u0002\u0399\u0397", - "\u0003\u0002\u0002\u0002\u039a\u039b\u0007D\u0002\u0002\u039b\u039d", - "\u0005\u01b8\u00dd\u0002\u039c\u039a\u0003\u0002\u0002\u0002\u039c\u039d", - "\u0003\u0002\u0002\u0002\u039d\u039e\u0003\u0002\u0002\u0002\u039e\u03a0", - "\u0005R*\u0002\u039f\u0389\u0003\u0002\u0002\u0002\u039f\u039c\u0003", - "\u0002\u0002\u0002\u03a0M\u0003\u0002\u0002\u0002\u03a1\u03a2\u0005", - "\u01b8\u00dd\u0002\u03a2O\u0003\u0002\u0002\u0002\u03a3\u03c4\u0005", - "~@\u0002\u03a4\u03a6\u00078\u0002\u0002\u03a5\u03a4\u0003\u0002\u0002", - "\u0002\u03a5\u03a6\u0003\u0002\u0002\u0002\u03a6\u03a7\u0003\u0002\u0002", - "\u0002\u03a7\u03c4\u0007\u0015\u0002\u0002\u03a8\u03a9\u0007E\u0002", - "\u0002\u03a9\u03c4\u0007F\u0002\u0002\u03aa\u03c4\u0007G\u0002\u0002", - "\u03ab\u03ac\u0007H\u0002\u0002\u03ac\u03ad\u0005\u014a\u00a6\u0002", - "\u03ad\u03ae\u0007\u001a\u0002\u0002\u03ae\u03af\u0005\u01b8\u00dd\u0002", - "\u03af\u03b3\u0007\u001b\u0002\u0002\u03b0\u03b2\u0005T+\u0002\u03b1", - "\u03b0\u0003\u0002\u0002\u0002\u03b2\u03b5\u0003\u0002\u0002\u0002\u03b3", - "\u03b1\u0003\u0002\u0002\u0002\u03b3\u03b4\u0003\u0002\u0002\u0002\u03b4", - "\u03c4\u0003\u0002\u0002\u0002\u03b5\u03b3\u0003\u0002\u0002\u0002\u03b6", - "\u03b7\u0007I\u0002\u0002\u03b7\u03b8\u0007\u001a\u0002\u0002\u03b8", - "\u03bd\u0007J\u0002\u0002\u03b9\u03ba\u0007\u0017\u0002\u0002\u03ba", - "\u03bc\u0007J\u0002\u0002\u03bb\u03b9\u0003\u0002\u0002\u0002\u03bc", - "\u03bf\u0003\u0002\u0002\u0002\u03bd\u03bb\u0003\u0002\u0002\u0002\u03bd", - "\u03be\u0003\u0002\u0002\u0002\u03be\u03c0\u0003\u0002\u0002\u0002\u03bf", - "\u03bd\u0003\u0002\u0002\u0002\u03c0\u03c4\u0007\u001b\u0002\u0002\u03c1", - "\u03c4\u0007K\u0002\u0002\u03c2\u03c4\u0007L\u0002\u0002\u03c3\u03a3", - "\u0003\u0002\u0002\u0002\u03c3\u03a5\u0003\u0002\u0002\u0002\u03c3\u03a8", - "\u0003\u0002\u0002\u0002\u03c3\u03aa\u0003\u0002\u0002\u0002\u03c3\u03ab", - "\u0003\u0002\u0002\u0002\u03c3\u03b6\u0003\u0002\u0002\u0002\u03c3\u03c1", - "\u0003\u0002\u0002\u0002\u03c3\u03c2\u0003\u0002\u0002\u0002\u03c4Q", - "\u0003\u0002\u0002\u0002\u03c5\u03c6\u0007E\u0002\u0002\u03c6\u03c8", - "\u0007F\u0002\u0002\u03c7\u03c9\u0007M\u0002\u0002\u03c8\u03c7\u0003", - "\u0002\u0002\u0002\u03c8\u03c9\u0003\u0002\u0002\u0002\u03c9\u03ca\u0003", - "\u0002\u0002\u0002\u03ca\u03cb\u0007\u001a\u0002\u0002\u03cb\u03cd\u0005", - "\u01b8\u00dd\u0002\u03cc\u03ce\t\t\u0002\u0002\u03cd\u03cc\u0003\u0002", - "\u0002\u0002\u03cd\u03ce\u0003\u0002\u0002\u0002\u03ce\u03d6\u0003\u0002", - "\u0002\u0002\u03cf\u03d0\u0007\u0017\u0002\u0002\u03d0\u03d2\u0005\u01b8", - "\u00dd\u0002\u03d1\u03d3\t\t\u0002\u0002\u03d2\u03d1\u0003\u0002\u0002", - "\u0002\u03d2\u03d3\u0003\u0002\u0002\u0002\u03d3\u03d5\u0003\u0002\u0002", - "\u0002\u03d4\u03cf\u0003\u0002\u0002\u0002\u03d5\u03d8\u0003\u0002\u0002", - "\u0002\u03d6\u03d4\u0003\u0002\u0002\u0002\u03d6\u03d7\u0003\u0002\u0002", - "\u0002\u03d7\u03d9\u0003\u0002\u0002\u0002\u03d8\u03d6\u0003\u0002\u0002", - "\u0002\u03d9\u03db\u0007\u001b\u0002\u0002\u03da\u03dc\u0007L\u0002", - "\u0002\u03db\u03da\u0003\u0002\u0002\u0002\u03db\u03dc\u0003\u0002\u0002", - "\u0002\u03dc\u03de\u0003\u0002\u0002\u0002\u03dd\u03df\u0005\u00eex", - "\u0002\u03de\u03dd\u0003\u0002\u0002\u0002\u03de\u03df\u0003\u0002\u0002", - "\u0002\u03df\u03ff\u0003\u0002\u0002\u0002\u03e0\u03e1\u0007P\u0002", - "\u0002\u03e1\u03e2\u0007F\u0002\u0002\u03e2\u03e3\u0007\u001a\u0002", - "\u0002\u03e3\u03e8\u0005\u01b8\u00dd\u0002\u03e4\u03e5\u0007\u0017\u0002", - "\u0002\u03e5\u03e7\u0005\u01b8\u00dd\u0002\u03e6\u03e4\u0003\u0002\u0002", - "\u0002\u03e7\u03ea\u0003\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002", - "\u0002\u03e8\u03e9\u0003\u0002\u0002\u0002\u03e9\u03eb\u0003\u0002\u0002", - "\u0002\u03ea\u03e8\u0003\u0002\u0002\u0002\u03eb\u03ec\u0007\u001b\u0002", - "\u0002\u03ec\u03ed\u0007H\u0002\u0002\u03ed\u03ee\u0005\u014a\u00a6", - "\u0002\u03ee\u03ef\u0007\u001a\u0002\u0002\u03ef\u03f4\u0005\u01b8\u00dd", - "\u0002\u03f0\u03f1\u0007\u0017\u0002\u0002\u03f1\u03f3\u0005\u01b8\u00dd", - "\u0002\u03f2\u03f0\u0003\u0002\u0002\u0002\u03f3\u03f6\u0003\u0002\u0002", - "\u0002\u03f4\u03f2\u0003\u0002\u0002\u0002\u03f4\u03f5\u0003\u0002\u0002", - "\u0002\u03f5\u03f7\u0003\u0002\u0002\u0002\u03f6\u03f4\u0003\u0002\u0002", - "\u0002\u03f7\u03fb\u0007\u001b\u0002\u0002\u03f8\u03fa\u0005T+\u0002", - "\u03f9\u03f8\u0003\u0002\u0002\u0002\u03fa\u03fd\u0003\u0002\u0002\u0002", - "\u03fb\u03f9\u0003\u0002\u0002\u0002\u03fb\u03fc\u0003\u0002\u0002\u0002", - "\u03fc\u03ff\u0003\u0002\u0002\u0002\u03fd\u03fb\u0003\u0002\u0002\u0002", - "\u03fe\u03c5\u0003\u0002\u0002\u0002\u03fe\u03e0\u0003\u0002\u0002\u0002", - "\u03ffS\u0003\u0002\u0002\u0002\u0400\u0401\u0007Q\u0002\u0002\u0401", - "\u040a\t\n\u0002\u0002\u0402\u0403\u0007T\u0002\u0002\u0403\u040b\u0007", - "U\u0002\u0002\u0404\u040b\u0007V\u0002\u0002\u0405\u0406\u0007\u0016", - "\u0002\u0002\u0406\u040b\u0007\u0015\u0002\u0002\u0407\u0408\u0007\u0016", - "\u0002\u0002\u0408\u040b\u0007W\u0002\u0002\u0409\u040b\u0007X\u0002", - "\u0002\u040a\u0402\u0003\u0002\u0002\u0002\u040a\u0404\u0003\u0002\u0002", - "\u0002\u040a\u0405\u0003\u0002\u0002\u0002\u040a\u0407\u0003\u0002\u0002", - "\u0002\u040a\u0409\u0003\u0002\u0002\u0002\u040bU\u0003\u0002\u0002", - "\u0002\u040c\u040e\u0005X-\u0002\u040d\u040c\u0003\u0002\u0002\u0002", - "\u040e\u040f\u0003\u0002\u0002\u0002\u040f\u040d\u0003\u0002\u0002\u0002", - "\u040f\u0410\u0003\u0002\u0002\u0002\u0410W\u0003\u0002\u0002\u0002", - "\u0411\u0412\u0007\u0017\u0002\u0002\u0412\u0415\u0005Z.\u0002\u0413", - "\u0415\u0005f4\u0002\u0414\u0411\u0003\u0002\u0002\u0002\u0414\u0413", - "\u0003\u0002\u0002\u0002\u0415Y\u0003\u0002\u0002\u0002\u0416\u0418", - "\u0007T\u0002\u0002\u0417\u0416\u0003\u0002\u0002\u0002\u0417\u0418", - "\u0003\u0002\u0002\u0002\u0418\u0419\u0003\u0002\u0002\u0002\u0419\u041a", - "\t\u000b\u0002\u0002\u041a[\u0003\u0002\u0002\u0002\u041b\u041d\u0005", - "^0\u0002\u041c\u041b\u0003\u0002\u0002\u0002\u041d\u041e\u0003\u0002", - "\u0002\u0002\u041e\u041c\u0003\u0002\u0002\u0002\u041e\u041f\u0003\u0002", - "\u0002\u0002\u041f]\u0003\u0002\u0002\u0002\u0420\u0421\u0007Q\u0002", - "\u0002\u0421\u0422\u0007[\u0002\u0002\u0422\u0423\t\f\u0002\u0002\u0423", - "\u042b\u0007]\u0002\u0002\u0424\u042b\u0005`1\u0002\u0425\u042b\u0005", - "b2\u0002\u0426\u042b\u0005d3\u0002\u0427\u042b\u0005f4\u0002\u0428\u042b", - "\u0005l7\u0002\u0429\u042b\u0005n8\u0002\u042a\u0420\u0003\u0002\u0002", - "\u0002\u042a\u0424\u0003\u0002\u0002\u0002\u042a\u0425\u0003\u0002\u0002", - "\u0002\u042a\u0426\u0003\u0002\u0002\u0002\u042a\u0427\u0003\u0002\u0002", - "\u0002\u042a\u0428\u0003\u0002\u0002\u0002\u042a\u0429\u0003\u0002\u0002", - "\u0002\u042b_\u0003\u0002\u0002\u0002\u042c\u042d\u0007^\u0002\u0002", - "\u042d\u042e\u0007_\u0002\u0002\u042e\u043f\t\r\u0002\u0002\u042f\u0430", - "\t\u000e\u0002\u0002\u0430\u043f\u0007J\u0002\u0002\u0431\u043f\u0007", - "f\u0002\u0002\u0432\u043f\t\u000f\u0002\u0002\u0433\u0434\u0007i\u0002", - "\u0002\u0434\u0437\u0007\u001a\u0002\u0002\u0435\u0438\u0005\u01b8\u00dd", - "\u0002\u0436\u0438\u0007J\u0002\u0002\u0437\u0435\u0003\u0002\u0002", - "\u0002\u0437\u0436\u0003\u0002\u0002\u0002\u0438\u0439\u0003\u0002\u0002", - "\u0002\u0439\u0437\u0003\u0002\u0002\u0002\u0439\u043a\u0003\u0002\u0002", - "\u0002\u043a\u043b\u0003\u0002\u0002\u0002\u043b\u043f\u0007\u001b\u0002", - "\u0002\u043c\u043d\u0007j\u0002\u0002\u043d\u043f\u0005\u01b8\u00dd", - "\u0002\u043e\u042c\u0003\u0002\u0002\u0002\u043e\u042f\u0003\u0002\u0002", - "\u0002\u043e\u0431\u0003\u0002\u0002\u0002\u043e\u0432\u0003\u0002\u0002", - "\u0002\u043e\u0433\u0003\u0002\u0002\u0002\u043e\u043c\u0003\u0002\u0002", - "\u0002\u043fa\u0003\u0002\u0002\u0002\u0440\u0442\u0007k\u0002\u0002", - "\u0441\u0440\u0003\u0002\u0002\u0002\u0441\u0442\u0003\u0002\u0002\u0002", - "\u0442\u0443\u0003\u0002\u0002\u0002\u0443\u0444\u0007l\u0002\u0002", - "\u0444\u0462\u0005\u01b8\u00dd\u0002\u0445\u0446\u0007$\u0002\u0002", - "\u0446\u0462\u0007m\u0002\u0002\u0447\u0448\u0007n\u0002\u0002\u0448", - "\u0449\u0007o\u0002\u0002\u0449\u044a\u0007p\u0002\u0002\u044a\u044b", - "\u0007\u001a\u0002\u0002\u044b\u0450\u0005\u01b8\u00dd\u0002\u044c\u044d", - "\u0007\u0017\u0002\u0002\u044d\u044f\u0005\u01b8\u00dd\u0002\u044e\u044c", - "\u0003\u0002\u0002\u0002\u044f\u0452\u0003\u0002\u0002\u0002\u0450\u044e", - "\u0003\u0002\u0002\u0002\u0450\u0451\u0003\u0002\u0002\u0002\u0451\u0453", - "\u0003\u0002\u0002\u0002\u0452\u0450\u0003\u0002\u0002\u0002\u0453\u0454", - "\u0007\u001b\u0002\u0002\u0454\u0462\u0003\u0002\u0002\u0002\u0455\u0457", - "\u00078\u0002\u0002\u0456\u0455\u0003\u0002\u0002\u0002\u0456\u0457", - "\u0003\u0002\u0002\u0002\u0457\u0458\u0003\u0002\u0002\u0002\u0458\u0462", - "\u0007q\u0002\u0002\u0459\u045a\u0007r\u0002\u0002\u045a\u0462\t\u0010", - "\u0002\u0002\u045b\u045c\u0007t\u0002\u0002\u045c\u0462\u0007.\u0002", - "\u0002\u045d\u045e\u0007$\u0002\u0002\u045e\u045f\u0007V\u0002\u0002", - "\u045f\u0460\u0007Q\u0002\u0002\u0460\u0462\u0007u\u0002\u0002\u0461", - "\u0441\u0003\u0002\u0002\u0002\u0461\u0445\u0003\u0002\u0002\u0002\u0461", - "\u0447\u0003\u0002\u0002\u0002\u0461\u0456\u0003\u0002\u0002\u0002\u0461", - "\u0459\u0003\u0002\u0002\u0002\u0461\u045b\u0003\u0002\u0002\u0002\u0461", - "\u045d\u0003\u0002\u0002\u0002\u0462c\u0003\u0002\u0002\u0002\u0463", - "\u0465\u0007G\u0002\u0002\u0464\u0463\u0003\u0002\u0002\u0002\u0464", - "\u0465\u0003\u0002\u0002\u0002\u0465\u0466\u0003\u0002\u0002\u0002\u0466", - "\u0467\u0007E\u0002\u0002\u0467\u0468\u0007k\u0002\u0002\u0468\u0469", - "\u0007\u001a\u0002\u0002\u0469\u046e\u0005\u01b8\u00dd\u0002\u046a\u046b", - "\u0007\u0017\u0002\u0002\u046b\u046d\u0005\u01b8\u00dd\u0002\u046c\u046a", - "\u0003\u0002\u0002\u0002\u046d\u0470\u0003\u0002\u0002\u0002\u046e\u046c", - "\u0003\u0002\u0002\u0002\u046e\u046f\u0003\u0002\u0002\u0002\u046f\u0471", - "\u0003\u0002\u0002\u0002\u0470\u046e\u0003\u0002\u0002\u0002\u0471\u0472", - "\u0007\u001b\u0002\u0002\u0472\u0476\u0003\u0002\u0002\u0002\u0473\u0474", - "\u0007$\u0002\u0002\u0474\u0476\u0007v\u0002\u0002\u0475\u0464\u0003", - "\u0002\u0002\u0002\u0475\u0473\u0003\u0002\u0002\u0002\u0476e\u0003", - "\u0002\u0002\u0002\u0477\u047c\u0005h5\u0002\u0478\u0479\u0007w\u0002", - "\u0002\u0479\u047a\u0007)\u0002\u0002\u047a\u047c\u0005\u01b8\u00dd", - "\u0002\u047b\u0477\u0003\u0002\u0002\u0002\u047b\u0478\u0003\u0002\u0002", - "\u0002\u047cg\u0003\u0002\u0002\u0002\u047d\u047e\u0007x\u0002\u0002", - "\u047e\u047f\u0007y\u0002\u0002\u047f\u0483\u0007z\u0002\u0002\u0480", - "\u0482\u0005j6\u0002\u0481\u0480\u0003\u0002\u0002\u0002\u0482\u0485", - "\u0003\u0002\u0002\u0002\u0483\u0481\u0003\u0002\u0002\u0002\u0483\u0484", - "\u0003\u0002\u0002\u0002\u0484i\u0003\u0002\u0002\u0002\u0485\u0483", - "\u0003\u0002\u0002\u0002\u0486\u0487\u0007{\u0002\u0002\u0487\u0488", - "\u0007|\u0002\u0002\u0488\u0489\u0007o\u0002\u0002\u0489\u048d\u0005", - "\u0180\u00c1\u0002\u048a\u048b\u0007}\u0002\u0002\u048b\u048c\u0007", - "o\u0002\u0002\u048c\u048e\u0005\u0180\u00c1\u0002\u048d\u048a\u0003", - "\u0002\u0002\u0002\u048d\u048e\u0003\u0002\u0002\u0002\u048e\u04a2\u0003", - "\u0002\u0002\u0002\u048f\u0490\u0007~\u0002\u0002\u0490\u0491\u0007", - "\u007f\u0002\u0002\u0491\u0492\u0007|\u0002\u0002\u0492\u0493\u0007", - "o\u0002\u0002\u0493\u04a2\u0005\u0180\u00c1\u0002\u0494\u0495\u0007", - "\u0080\u0002\u0002\u0495\u0496\u0007\u0081\u0002\u0002\u0496\u0497\u0007", - "|\u0002\u0002\u0497\u0498\u0007o\u0002\u0002\u0498\u04a2\u0005\u0180", - "\u00c1\u0002\u0499\u049a\u0007\u0082\u0002\u0002\u049a\u049b\u0007|", - "\u0002\u0002\u049b\u049c\u0007o\u0002\u0002\u049c\u04a2\u0005\u0180", - "\u00c1\u0002\u049d\u049e\u0007\u0015\u0002\u0002\u049e\u049f\u0007\u0083", - "\u0002\u0002\u049f\u04a0\u0007)\u0002\u0002\u04a0\u04a2\u0005\u0180", - "\u00c1\u0002\u04a1\u0486\u0003\u0002\u0002\u0002\u04a1\u048f\u0003\u0002", - "\u0002\u0002\u04a1\u0494\u0003\u0002\u0002\u0002\u04a1\u0499\u0003\u0002", - "\u0002\u0002\u04a1\u049d\u0003\u0002\u0002\u0002\u04a2k\u0003\u0002", - "\u0002\u0002\u04a3\u04a4\u0007Q\u0002\u0002\u04a4\u04a8\u0005\u01b8", - "\u00dd\u0002\u04a5\u04a6\u0007\u0084\u0002\u0002\u04a6\u04a8\u0005\u01b8", - "\u00dd\u0002\u04a7\u04a3\u0003\u0002\u0002\u0002\u04a7\u04a5\u0003\u0002", - "\u0002\u0002\u04a8m\u0003\u0002\u0002\u0002\u04a9\u04ab\u0007K\u0002", - "\u0002\u04aa\u04ac\u0007\u0019\u0002\u0002\u04ab\u04aa\u0003\u0002\u0002", - "\u0002\u04ab\u04ac\u0003\u0002\u0002\u0002\u04ac\u04ad\u0003\u0002\u0002", - "\u0002\u04ad\u04c5\u0005\u0180\u00c1\u0002\u04ae\u04b0\u0007\u0085\u0002", - "\u0002\u04af\u04b1\u0007\u0019\u0002\u0002\u04b0\u04af\u0003\u0002\u0002", - "\u0002\u04b0\u04b1\u0003\u0002\u0002\u0002\u04b1\u04b2\u0003\u0002\u0002", - "\u0002\u04b2\u04c5\u0005\u0180\u00c1\u0002\u04b3\u04b5\u0007W\u0002", - "\u0002\u04b4\u04b3\u0003\u0002\u0002\u0002\u04b4\u04b5\u0003\u0002\u0002", - "\u0002\u04b5\u04b9\u0003\u0002\u0002\u0002\u04b6\u04b7\u0007\u0086\u0002", - "\u0002\u04b7\u04ba\u0007\u0016\u0002\u0002\u04b8\u04ba\u0007\u0087\u0002", - "\u0002\u04b9\u04b6\u0003\u0002\u0002\u0002\u04b9\u04b8\u0003\u0002\u0002", - "\u0002\u04ba\u04bc\u0003\u0002\u0002\u0002\u04bb\u04bd\u0007\u0019\u0002", - "\u0002\u04bc\u04bb\u0003\u0002\u0002\u0002\u04bc\u04bd\u0003\u0002\u0002", - "\u0002\u04bd\u04be\u0003\u0002\u0002\u0002\u04be\u04c5\u0005\u0180\u00c1", - "\u0002\u04bf\u04c1\u0007\u0088\u0002\u0002\u04c0\u04c2\u0007\u0019\u0002", - "\u0002\u04c1\u04c0\u0003\u0002\u0002\u0002\u04c1\u04c2\u0003\u0002\u0002", - "\u0002\u04c2\u04c3\u0003\u0002\u0002\u0002\u04c3\u04c5\u0005\u0180\u00c1", - "\u0002\u04c4\u04a9\u0003\u0002\u0002\u0002\u04c4\u04ae\u0003\u0002\u0002", - "\u0002\u04c4\u04b4\u0003\u0002\u0002\u0002\u04c4\u04bf\u0003\u0002\u0002", - "\u0002\u04c5o\u0003\u0002\u0002\u0002\u04c6\u04c7\u0007\u0089\u0002", - "\u0002\u04c7\u04c8\u0007<\u0002\u0002\u04c8\u04c9\u0005\u014a\u00a6", - "\u0002\u04c9\u04ca\u0005r:\u0002\u04caq\u0003\u0002\u0002\u0002\u04cb", - "\u04cc\u0005t;\u0002\u04ccs\u0003\u0002\u0002\u0002\u04cd\u04d0\u0007", - "\u008a\u0002\u0002\u04ce\u04cf\u0007D\u0002\u0002\u04cf\u04d1\u0005", - "\u01b8\u00dd\u0002\u04d0\u04ce\u0003\u0002\u0002\u0002\u04d0\u04d1\u0003", - "\u0002\u0002\u0002\u04d1\u04d2\u0003\u0002\u0002\u0002\u04d2\u04d3\u0005", - "v<\u0002\u04d3u\u0003\u0002\u0002\u0002\u04d4\u04d5\u0007E\u0002\u0002", - "\u04d5\u04d7\u0007F\u0002\u0002\u04d6\u04d8\u0007M\u0002\u0002\u04d7", - "\u04d6\u0003\u0002\u0002\u0002\u04d7\u04d8\u0003\u0002\u0002\u0002\u04d8", - "\u04d9\u0003\u0002\u0002\u0002\u04d9\u04da\u0007\u001a\u0002\u0002\u04da", - "\u04dc\u0005\u01b8\u00dd\u0002\u04db\u04dd\t\t\u0002\u0002\u04dc\u04db", - "\u0003\u0002\u0002\u0002\u04dc\u04dd\u0003\u0002\u0002\u0002\u04dd\u04e5", - "\u0003\u0002\u0002\u0002\u04de\u04df\u0007\u0017\u0002\u0002\u04df\u04e1", - "\u0005\u01b8\u00dd\u0002\u04e0\u04e2\t\t\u0002\u0002\u04e1\u04e0\u0003", - "\u0002\u0002\u0002\u04e1\u04e2\u0003\u0002\u0002\u0002\u04e2\u04e4\u0003", - "\u0002\u0002\u0002\u04e3\u04de\u0003\u0002\u0002\u0002\u04e4\u04e7\u0003", - "\u0002\u0002\u0002\u04e5\u04e3\u0003\u0002\u0002\u0002\u04e5\u04e6\u0003", - "\u0002\u0002\u0002\u04e6\u04e8\u0003\u0002\u0002\u0002\u04e7\u04e5\u0003", - "\u0002\u0002\u0002\u04e8\u04ea\u0007\u001b\u0002\u0002\u04e9\u04eb\u0007", - "L\u0002\u0002\u04ea\u04e9\u0003\u0002\u0002\u0002\u04ea\u04eb\u0003", - "\u0002\u0002\u0002\u04eb\u04ed\u0003\u0002\u0002\u0002\u04ec\u04ee\u0005", - "\u00eex\u0002\u04ed\u04ec\u0003\u0002\u0002\u0002\u04ed\u04ee\u0003", - "\u0002\u0002\u0002\u04ee\u0513\u0003\u0002\u0002\u0002\u04ef\u04f0\u0007", - "P\u0002\u0002\u04f0\u04f1\u0007F\u0002\u0002\u04f1\u04f2\u0007\u001a", - "\u0002\u0002\u04f2\u04f7\u0005\u01b8\u00dd\u0002\u04f3\u04f4\u0007\u0017", - "\u0002\u0002\u04f4\u04f6\u0005\u01b8\u00dd\u0002\u04f5\u04f3\u0003\u0002", - "\u0002\u0002\u04f6\u04f9\u0003\u0002\u0002\u0002\u04f7\u04f5\u0003\u0002", - "\u0002\u0002\u04f7\u04f8\u0003\u0002\u0002\u0002\u04f8\u04fa\u0003\u0002", - "\u0002\u0002\u04f9\u04f7\u0003\u0002\u0002\u0002\u04fa\u04fb\u0007\u001b", - "\u0002\u0002\u04fb\u04fc\u0007H\u0002\u0002\u04fc\u04fd\u0005\u014a", - "\u00a6\u0002\u04fd\u04fe\u0007\u001a\u0002\u0002\u04fe\u0503\u0005\u01b8", - "\u00dd\u0002\u04ff\u0500\u0007\u0017\u0002\u0002\u0500\u0502\u0005\u01b8", - "\u00dd\u0002\u0501\u04ff\u0003\u0002\u0002\u0002\u0502\u0505\u0003\u0002", - "\u0002\u0002\u0503\u0501\u0003\u0002\u0002\u0002\u0503\u0504\u0003\u0002", - "\u0002\u0002\u0504\u0506\u0003\u0002\u0002\u0002\u0505\u0503\u0003\u0002", - "\u0002\u0002\u0506\u050a\u0007\u001b\u0002\u0002\u0507\u0509\u0005T", - "+\u0002\u0508\u0507\u0003\u0002\u0002\u0002\u0509\u050c\u0003\u0002", - "\u0002\u0002\u050a\u0508\u0003\u0002\u0002\u0002\u050a\u050b\u0003\u0002", - "\u0002\u0002\u050b\u0513\u0003\u0002\u0002\u0002\u050c\u050a\u0003\u0002", - "\u0002\u0002\u050d\u050e\u0007W\u0002\u0002\u050e\u050f\u0005\u0180", - "\u00c1\u0002\u050f\u0510\u0007\u001e\u0002\u0002\u0510\u0511\u0005\u01b8", - "\u00dd\u0002\u0511\u0513\u0003\u0002\u0002\u0002\u0512\u04d4\u0003\u0002", - "\u0002\u0002\u0512\u04ef\u0003\u0002\u0002\u0002\u0512\u050d\u0003\u0002", - "\u0002\u0002\u0513w\u0003\u0002\u0002\u0002\u0514\u0543\u0007\u008b", - "\u0002\u0002\u0515\u0543\u0007\u0086\u0002\u0002\u0516\u0543\u0007\u008c", - "\u0002\u0002\u0517\u0543\u0007\u008d\u0002\u0002\u0518\u0543\u0007\u008e", - "\u0002\u0002\u0519\u0543\u0007\u008f\u0002\u0002\u051a\u0543\u0007\u0090", - "\u0002\u0002\u051b\u0543\u0007\u0091\u0002\u0002\u051c\u0543\u0007\u0092", - "\u0002\u0002\u051d\u0543\u0007\u0093\u0002\u0002\u051e\u0543\u0007\u0094", - "\u0002\u0002\u051f\u0521\u0007\u0095\u0002\u0002\u0520\u0522\u0007\u0096", - "\u0002\u0002\u0521\u0520\u0003\u0002\u0002\u0002\u0521\u0522\u0003\u0002", - "\u0002\u0002\u0522\u0543\u0003\u0002\u0002\u0002\u0523\u0543\u0007\u0097", - "\u0002\u0002\u0524\u0543\u0007\u0098\u0002\u0002\u0525\u0543\u0007\u0099", - "\u0002\u0002\u0526\u0543\u0007\u009a\u0002\u0002\u0527\u0543\u0007\u009b", - "\u0002\u0002\u0528\u0543\u0007\u009c\u0002\u0002\u0529\u0543\u0007\u009d", - "\u0002\u0002\u052a\u0543\u0007\u009e\u0002\u0002\u052b\u0543\u0007\u009f", - "\u0002\u0002\u052c\u0543\u0007\u00a0\u0002\u0002\u052d\u0543\u0007\u00a1", - "\u0002\u0002\u052e\u0543\u0007\u00a2\u0002\u0002\u052f\u0530\u0007\u00a3", - "\u0002\u0002\u0530\u0543\u0007\u00a4\u0002\u0002\u0531\u0543\u0007\u00a5", - "\u0002\u0002\u0532\u0543\u0007\u00a6\u0002\u0002\u0533\u0543\u0007\u00a7", - "\u0002\u0002\u0534\u0543\u0007\u00a8\u0002\u0002\u0535\u0543\u0007\u00a9", - "\u0002\u0002\u0536\u0543\u0007\u00aa\u0002\u0002\u0537\u0543\u0007\u00ab", - "\u0002\u0002\u0538\u0543\u0007\u00ac\u0002\u0002\u0539\u0543\u0007\u00ad", - "\u0002\u0002\u053a\u0543\u0007\u00ae\u0002\u0002\u053b\u0543\u0007\u00af", - "\u0002\u0002\u053c\u0543\u0007\u00b0\u0002\u0002\u053d\u0540\u0005\u01b8", - "\u00dd\u0002\u053e\u053f\u0007\u0006\u0002\u0002\u053f\u0541\t\u0011", - "\u0002\u0002\u0540\u053e\u0003\u0002\u0002\u0002\u0540\u0541\u0003\u0002", - "\u0002\u0002\u0541\u0543\u0003\u0002\u0002\u0002\u0542\u0514\u0003\u0002", - "\u0002\u0002\u0542\u0515\u0003\u0002\u0002\u0002\u0542\u0516\u0003\u0002", - "\u0002\u0002\u0542\u0517\u0003\u0002\u0002\u0002\u0542\u0518\u0003\u0002", - "\u0002\u0002\u0542\u0519\u0003\u0002\u0002\u0002\u0542\u051a\u0003\u0002", - "\u0002\u0002\u0542\u051b\u0003\u0002\u0002\u0002\u0542\u051c\u0003\u0002", - "\u0002\u0002\u0542\u051d\u0003\u0002\u0002\u0002\u0542\u051e\u0003\u0002", - "\u0002\u0002\u0542\u051f\u0003\u0002\u0002\u0002\u0542\u0523\u0003\u0002", - "\u0002\u0002\u0542\u0524\u0003\u0002\u0002\u0002\u0542\u0525\u0003\u0002", - "\u0002\u0002\u0542\u0526\u0003\u0002\u0002\u0002\u0542\u0527\u0003\u0002", - "\u0002\u0002\u0542\u0528\u0003\u0002\u0002\u0002\u0542\u0529\u0003\u0002", - "\u0002\u0002\u0542\u052a\u0003\u0002\u0002\u0002\u0542\u052b\u0003\u0002", - "\u0002\u0002\u0542\u052c\u0003\u0002\u0002\u0002\u0542\u052d\u0003\u0002", - "\u0002\u0002\u0542\u052e\u0003\u0002\u0002\u0002\u0542\u052f\u0003\u0002", - "\u0002\u0002\u0542\u0531\u0003\u0002\u0002\u0002\u0542\u0532\u0003\u0002", - "\u0002\u0002\u0542\u0533\u0003\u0002\u0002\u0002\u0542\u0534\u0003\u0002", - "\u0002\u0002\u0542\u0535\u0003\u0002\u0002\u0002\u0542\u0536\u0003\u0002", - "\u0002\u0002\u0542\u0537\u0003\u0002\u0002\u0002\u0542\u0538\u0003\u0002", - "\u0002\u0002\u0542\u0539\u0003\u0002\u0002\u0002\u0542\u053a\u0003\u0002", - "\u0002\u0002\u0542\u053b\u0003\u0002\u0002\u0002\u0542\u053c\u0003\u0002", - "\u0002\u0002\u0542\u053d\u0003\u0002\u0002\u0002\u0543y\u0003\u0002", - "\u0002\u0002\u0544\u0545\u0007\u001a\u0002\u0002\u0545\u0547\t\u0012", - "\u0002\u0002\u0546\u0548\t\u0013\u0002\u0002\u0547\u0546\u0003\u0002", - "\u0002\u0002\u0547\u0548\u0003\u0002\u0002\u0002\u0548\u054b\u0003\u0002", - "\u0002\u0002\u0549\u054a\u0007\u0017\u0002\u0002\u054a\u054c\u0007J", - "\u0002\u0002\u054b\u0549\u0003\u0002\u0002\u0002\u054b\u054c\u0003\u0002", - "\u0002\u0002\u054c\u054d\u0003\u0002\u0002\u0002\u054d\u054e\u0007\u001b", - "\u0002\u0002\u054e{\u0003\u0002\u0002\u0002\u054f\u0551\u00078\u0002", - "\u0002\u0550\u054f\u0003\u0002\u0002\u0002\u0550\u0551\u0003\u0002\u0002", - "\u0002\u0551\u0552\u0003\u0002\u0002\u0002\u0552\u055b\u0007\u0015\u0002", - "\u0002\u0553\u0554\u0007\u0086\u0002\u0002\u0554\u0555\u0007\u0016\u0002", - "\u0002\u0555\u055b\u0005\u01b8\u00dd\u0002\u0556\u0558\u00078\u0002", - "\u0002\u0557\u0556\u0003\u0002\u0002\u0002\u0557\u0558\u0003\u0002\u0002", - "\u0002\u0558\u0559\u0003\u0002\u0002\u0002\u0559\u055b\t\u0014\u0002", - "\u0002\u055a\u0550\u0003\u0002\u0002\u0002\u055a\u0553\u0003\u0002\u0002", - "\u0002\u055a\u0557\u0003\u0002\u0002\u0002\u055b}\u0003\u0002\u0002", - "\u0002\u055c\u055e\u0007\u0018\u0002\u0002\u055d\u055c\u0003\u0002\u0002", - "\u0002\u055d\u055e\u0003\u0002\u0002\u0002\u055e\u055f\u0003\u0002\u0002", - "\u0002\u055f\u0560\u0007\u0019\u0002\u0002\u0560\u0569\u0005\u0180\u00c1", - "\u0002\u0561\u0563\u0007$\u0002\u0002\u0562\u0561\u0003\u0002\u0002", - "\u0002\u0562\u0563\u0003\u0002\u0002\u0002\u0563\u0564\u0003\u0002\u0002", - "\u0002\u0564\u0566\u0007W\u0002\u0002\u0565\u0567\u0005\u0180\u00c1", - "\u0002\u0566\u0565\u0003\u0002\u0002\u0002\u0566\u0567\u0003\u0002\u0002", - "\u0002\u0567\u0569\u0003\u0002\u0002\u0002\u0568\u055d\u0003\u0002\u0002", - "\u0002\u0568\u0562\u0003\u0002\u0002\u0002\u0569\u007f\u0003\u0002\u0002", - "\u0002\u056a\u056b\u0007=\u0002\u0002\u056b\u056f\t\u0015\u0002\u0002", - "\u056c\u056d\u0007>\u0002\u0002\u056d\u056e\u00078\u0002\u0002\u056e", - "\u0570\u0007?\u0002\u0002\u056f\u056c\u0003\u0002\u0002\u0002\u056f", - "\u0570\u0003\u0002\u0002\u0002\u0570\u0571\u0003\u0002\u0002\u0002\u0571", - "\u0575\u0005\u0180\u00c1\u0002\u0572\u0574\u0005\u0082B\u0002\u0573", - "\u0572\u0003\u0002\u0002\u0002\u0574\u0577\u0003\u0002\u0002\u0002\u0575", - "\u0573\u0003\u0002\u0002\u0002\u0575\u0576\u0003\u0002\u0002\u0002\u0576", - "\u0081\u0003\u0002\u0002\u0002\u0577\u0575\u0003\u0002\u0002\u0002\u0578", - "\u0579\u0007\u0085\u0002\u0002\u0579\u057d\u0005\u0180\u00c1\u0002\u057a", - "\u057b\u0007\u00b9\u0002\u0002\u057b\u057d\u0005\u0180\u00c1\u0002\u057c", - "\u0578\u0003\u0002\u0002\u0002\u057c\u057a\u0003\u0002\u0002\u0002\u057d", - "\u0083\u0003\u0002\u0002\u0002\u057e\u0586\u0007\u0089\u0002\u0002\u057f", - "\u0582\u0007=\u0002\u0002\u0580\u0581\u0007\u00ba\u0002\u0002\u0581", - "\u0583\u0007m\u0002\u0002\u0582\u0580\u0003\u0002\u0002\u0002\u0582", - "\u0583\u0003\u0002\u0002\u0002\u0583\u0586\u0003\u0002\u0002\u0002\u0584", - "\u0586\u0007m\u0002\u0002\u0585\u057e\u0003\u0002\u0002\u0002\u0585", - "\u057f\u0003\u0002\u0002\u0002\u0585\u0584\u0003\u0002\u0002\u0002\u0585", - "\u0586\u0003\u0002\u0002\u0002\u0586\u0587\u0003\u0002\u0002\u0002\u0587", - "\u0588\u0007\u00bb\u0002\u0002\u0588\u058a\u0005\u01b8\u00dd\u0002\u0589", - "\u058b\u0005\u0096L\u0002\u058a\u0589\u0003\u0002\u0002\u0002\u058a", - "\u058b\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002\u0002\u058c", - "\u058e\u0005\u0086D\u0002\u058d\u058f\t\u0016\u0002\u0002\u058e\u058d", - "\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002\u0002\u058f\u0591", - "\u0003\u0002\u0002\u0002\u0590\u0592\u00052\u001a\u0002\u0591\u0590", - "\u0003\u0002\u0002\u0002\u0591\u0592\u0003\u0002\u0002\u0002\u0592\u0593", - "\u0003\u0002\u0002\u0002\u0593\u0594\u0005\b\u0005\u0002\u0594\u0085", - "\u0003\u0002\u0002\u0002\u0595\u0596\t\u0017\u0002\u0002\u0596\u0598", - "\u0005x=\u0002\u0597\u0599\u0005z>\u0002\u0598\u0597\u0003\u0002\u0002", - "\u0002\u0598\u0599\u0003\u0002\u0002\u0002\u0599\u0087\u0003\u0002\u0002", - "\u0002\u059a\u05a2\u0007\u0089\u0002\u0002\u059b\u059e\u0007=\u0002", - "\u0002\u059c\u059d\u0007\u00ba\u0002\u0002\u059d\u059f\u0007m\u0002", - "\u0002\u059e\u059c\u0003\u0002\u0002\u0002\u059e\u059f\u0003\u0002\u0002", - "\u0002\u059f\u05a2\u0003\u0002\u0002\u0002\u05a0\u05a2\u0007m\u0002", - "\u0002\u05a1\u059a\u0003\u0002\u0002\u0002\u05a1\u059b\u0003\u0002\u0002", - "\u0002\u05a1\u05a0\u0003\u0002\u0002\u0002\u05a1\u05a2\u0003\u0002\u0002", - "\u0002\u05a2\u05a3\u0003\u0002\u0002\u0002\u05a3\u05a4\u0007\u00bd\u0002", - "\u0002\u05a4\u05a5\u0005\u01b8\u00dd\u0002\u05a5\u05a6\t\u0016\u0002", - "\u0002\u05a6\u05a7\u0005\u008aF\u0002\u05a7\u05ab\u0007\u0010\u0002", - "\u0002\u05a8\u05a9\u0005\u01b8\u00dd\u0002\u05a9\u05aa\u0007\u000f\u0002", - "\u0002\u05aa\u05ac\u0003\u0002\u0002\u0002\u05ab\u05a8\u0003\u0002\u0002", - "\u0002\u05ab\u05ac\u0003\u0002\u0002\u0002\u05ac\u0089\u0003\u0002\u0002", - "\u0002\u05ad\u05ae\u0005\u008cG\u0002\u05ae\u05b4\u0007\u000f\u0002", - "\u0002\u05af\u05b0\u0005\u008cG\u0002\u05b0\u05b1\u0007\u000f\u0002", - "\u0002\u05b1\u05b3\u0003\u0002\u0002\u0002\u05b2\u05af\u0003\u0002\u0002", - "\u0002\u05b3\u05b6\u0003\u0002\u0002\u0002\u05b4\u05b2\u0003\u0002\u0002", - "\u0002\u05b4\u05b5\u0003\u0002\u0002\u0002\u05b5\u008b\u0003\u0002\u0002", - "\u0002\u05b6\u05b4\u0003\u0002\u0002\u0002\u05b7\u05c5\u00054\u001b", - "\u0002\u05b8\u05b9\u0007\u00bb\u0002\u0002\u05b9\u05bb\u0005\u01b8\u00dd", - "\u0002\u05ba\u05bc\u0005\u0096L\u0002\u05bb\u05ba\u0003\u0002\u0002", - "\u0002\u05bb\u05bc\u0003\u0002\u0002\u0002\u05bc\u05bd\u0003\u0002\u0002", - "\u0002\u05bd\u05be\u0005\u0086D\u0002\u05be\u05c5\u0003\u0002\u0002", - "\u0002\u05bf\u05c0\t\u0018\u0002\u0002\u05c0\u05c2\u0005\u01b8\u00dd", - "\u0002\u05c1\u05c3\u0005\u0096L\u0002\u05c2\u05c1\u0003\u0002\u0002", - "\u0002\u05c2\u05c3\u0003\u0002\u0002\u0002\u05c3\u05c5\u0003\u0002\u0002", - "\u0002\u05c4\u05b7\u0003\u0002\u0002\u0002\u05c4\u05b8\u0003\u0002\u0002", - "\u0002\u05c4\u05bf\u0003\u0002\u0002\u0002\u05c5\u008d\u0003\u0002\u0002", - "\u0002\u05c6\u05ce\u0007\u0089\u0002\u0002\u05c7\u05ca\u0007=\u0002", - "\u0002\u05c8\u05c9\u0007\u00ba\u0002\u0002\u05c9\u05cb\u0007m\u0002", - "\u0002\u05ca\u05c8\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003\u0002\u0002", - "\u0002\u05cb\u05ce\u0003\u0002\u0002\u0002\u05cc\u05ce\u0007m\u0002", - "\u0002\u05cd\u05c6\u0003\u0002\u0002\u0002\u05cd\u05c7\u0003\u0002\u0002", - "\u0002\u05cd\u05cc\u0003\u0002\u0002\u0002\u05cd\u05ce\u0003\u0002\u0002", - "\u0002\u05ce\u05cf\u0003\u0002\u0002\u0002\u05cf\u05d0\u0007\u00bd\u0002", - "\u0002\u05d0\u05d1\u0007\u00bf\u0002\u0002\u05d1\u05d2\u0005\u01b8\u00dd", - "\u0002\u05d2\u05d3\t\u0016\u0002\u0002\u05d3\u05d4\u0005\u0090I\u0002", - "\u05d4\u05d8\u0007\u0010\u0002\u0002\u05d5\u05d6\u0005\u01b8\u00dd\u0002", - "\u05d6\u05d7\u0007\u000f\u0002\u0002\u05d7\u05d9\u0003\u0002\u0002\u0002", - "\u05d8\u05d5\u0003\u0002\u0002\u0002\u05d8\u05d9\u0003\u0002\u0002\u0002", - "\u05d9\u008f\u0003\u0002\u0002\u0002\u05da\u05db\u0005\u0092J\u0002", - "\u05db\u05e1\u0007\u000f\u0002\u0002\u05dc\u05dd\u0005\u0092J\u0002", - "\u05dd\u05de\u0007\u000f\u0002\u0002\u05de\u05e0\u0003\u0002\u0002\u0002", - "\u05df\u05dc\u0003\u0002\u0002\u0002\u05e0\u05e3\u0003\u0002\u0002\u0002", - "\u05e1\u05df\u0003\u0002\u0002\u0002\u05e1\u05e2\u0003\u0002\u0002\u0002", - "\u05e2\u0091\u0003\u0002\u0002\u0002\u05e3\u05e1\u0003\u0002\u0002\u0002", - "\u05e4\u05e8\u00054\u001b\u0002\u05e5\u05e8\u0005\u0084C\u0002\u05e6", - "\u05e8\u0005\u0094K\u0002\u05e7\u05e4\u0003\u0002\u0002\u0002\u05e7", - "\u05e5\u0003\u0002\u0002\u0002\u05e7\u05e6\u0003\u0002\u0002\u0002\u05e8", - "\u0093\u0003\u0002\u0002\u0002\u05e9\u05f1\u0007\u0089\u0002\u0002\u05ea", - "\u05ed\u0007=\u0002\u0002\u05eb\u05ec\u0007\u00ba\u0002\u0002\u05ec", - "\u05ee\u0007m\u0002\u0002\u05ed\u05eb\u0003\u0002\u0002\u0002\u05ed", - "\u05ee\u0003\u0002\u0002\u0002\u05ee\u05f1\u0003\u0002\u0002\u0002\u05ef", - "\u05f1\u0007m\u0002\u0002\u05f0\u05e9\u0003\u0002\u0002\u0002\u05f0", - "\u05ea\u0003\u0002\u0002\u0002\u05f0\u05ef\u0003\u0002\u0002\u0002\u05f0", - "\u05f1\u0003\u0002\u0002\u0002\u05f1\u05f2\u0003\u0002\u0002\u0002\u05f2", - "\u05f3\t\u0018\u0002\u0002\u05f3\u05f5\u0005\u01b8\u00dd\u0002\u05f4", - "\u05f6\u0005\u0096L\u0002\u05f5\u05f4\u0003\u0002\u0002\u0002\u05f5", - "\u05f6\u0003\u0002\u0002\u0002\u05f6\u05f8\u0003\u0002\u0002\u0002\u05f7", - "\u05f9\u0005\u009aN\u0002\u05f8\u05f7\u0003\u0002\u0002\u0002\u05f8", - "\u05f9\u0003\u0002\u0002\u0002\u05f9\u05fb\u0003\u0002\u0002\u0002\u05fa", - "\u05fc\t\u0016\u0002\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002\u05fb", - "\u05fc\u0003\u0002\u0002\u0002\u05fc\u05fe\u0003\u0002\u0002\u0002\u05fd", - "\u05ff\u00052\u001a\u0002\u05fe\u05fd\u0003\u0002\u0002\u0002\u05fe", - "\u05ff\u0003\u0002\u0002\u0002\u05ff\u0601\u0003\u0002\u0002\u0002\u0600", - "\u0602\u0005\u0116\u008c\u0002\u0601\u0600\u0003\u0002\u0002\u0002\u0601", - "\u0602\u0003\u0002\u0002\u0002\u0602\u0603\u0003\u0002\u0002\u0002\u0603", - "\u0607\u0005\f\u0007\u0002\u0604\u0605\u0005\u01b8\u00dd\u0002\u0605", - "\u0606\u0007\u000f\u0002\u0002\u0606\u0608\u0003\u0002\u0002\u0002\u0607", - "\u0604\u0003\u0002\u0002\u0002\u0607\u0608\u0003\u0002\u0002\u0002\u0608", - "\u0095\u0003\u0002\u0002\u0002\u0609\u060a\u0007\u001a\u0002\u0002\u060a", - "\u0620\u0007\u001b\u0002\u0002\u060b\u060c\u0007\u001a\u0002\u0002\u060c", - "\u0611\u0005\u0098M\u0002\u060d\u060e\u0007\u0017\u0002\u0002\u060e", - "\u0610\u0005\u0098M\u0002\u060f\u060d\u0003\u0002\u0002\u0002\u0610", - "\u0613\u0003\u0002\u0002\u0002\u0611\u060f\u0003\u0002\u0002\u0002\u0611", - "\u0612\u0003\u0002\u0002\u0002\u0612\u0614\u0003\u0002\u0002\u0002\u0613", - "\u0611\u0003\u0002\u0002\u0002\u0614\u0615\u0007\u001b\u0002\u0002\u0615", - "\u0620\u0003\u0002\u0002\u0002\u0616\u0617\u0006L\u0004\u0002\u0617", - "\u061c\u0005\u0098M\u0002\u0618\u0619\u0007\u0017\u0002\u0002\u0619", - "\u061b\u0005\u0098M\u0002\u061a\u0618\u0003\u0002\u0002\u0002\u061b", - "\u061e\u0003\u0002\u0002\u0002\u061c\u061a\u0003\u0002\u0002\u0002\u061c", - "\u061d\u0003\u0002\u0002\u0002\u061d\u0620\u0003\u0002\u0002\u0002\u061e", - "\u061c\u0003\u0002\u0002\u0002\u061f\u0609\u0003\u0002\u0002\u0002\u061f", - "\u060b\u0003\u0002\u0002\u0002\u061f\u0616\u0003\u0002\u0002\u0002\u0620", - "\u0097\u0003\u0002\u0002\u0002\u0621\u0627\u0007l\u0002\u0002\u0622", - "\u0627\u0007\u00c0\u0002\u0002\u0623\u0627\u0007\u00c1\u0002\u0002\u0624", - "\u0625\u0007l\u0002\u0002\u0625\u0627\u0007\u00c0\u0002\u0002\u0626", - "\u0621\u0003\u0002\u0002\u0002\u0626\u0622\u0003\u0002\u0002\u0002\u0626", - "\u0623\u0003\u0002\u0002\u0002\u0626\u0624\u0003\u0002\u0002\u0002\u0626", - "\u0627\u0003\u0002\u0002\u0002\u0627\u0628\u0003\u0002\u0002\u0002\u0628", - "\u0629\u0005\u01b8\u00dd\u0002\u0629\u062b\u0005x=\u0002\u062a\u062c", - "\u0005z>\u0002\u062b\u062a\u0003\u0002\u0002\u0002\u062b\u062c\u0003", - "\u0002\u0002\u0002\u062c\u0630\u0003\u0002\u0002\u0002\u062d\u062f\u0005", - "|?\u0002\u062e\u062d\u0003\u0002\u0002\u0002\u062f\u0632\u0003\u0002", - "\u0002\u0002\u0630\u062e\u0003\u0002\u0002\u0002\u0630\u0631\u0003\u0002", - "\u0002\u0002\u0631\u0634\u0003\u0002\u0002\u0002\u0632\u0630\u0003\u0002", - "\u0002\u0002\u0633\u0635\u0005~@\u0002\u0634\u0633\u0003\u0002\u0002", - "\u0002\u0634\u0635\u0003\u0002\u0002\u0002\u0635\u064c\u0003\u0002\u0002", - "\u0002\u0636\u063c\u0005\u01b8\u00dd\u0002\u0637\u063d\u0007l\u0002", - "\u0002\u0638\u063d\u0007\u00c0\u0002\u0002\u0639\u063d\u0007\u00c1\u0002", - "\u0002\u063a\u063b\u0007l\u0002\u0002\u063b\u063d\u0007\u00c0\u0002", - "\u0002\u063c\u0637\u0003\u0002\u0002\u0002\u063c\u0638\u0003\u0002\u0002", - "\u0002\u063c\u0639\u0003\u0002\u0002\u0002\u063c\u063a\u0003\u0002\u0002", - "\u0002\u063c\u063d\u0003\u0002\u0002\u0002\u063d\u063e\u0003\u0002\u0002", - "\u0002\u063e\u0640\u0005x=\u0002\u063f\u0641\u0005z>\u0002\u0640\u063f", - "\u0003\u0002\u0002\u0002\u0640\u0641\u0003\u0002\u0002\u0002\u0641\u0645", - "\u0003\u0002\u0002\u0002\u0642\u0644\u0005|?\u0002\u0643\u0642\u0003", - "\u0002\u0002\u0002\u0644\u0647\u0003\u0002\u0002\u0002\u0645\u0643\u0003", - "\u0002\u0002\u0002\u0645\u0646\u0003\u0002\u0002\u0002\u0646\u0649\u0003", - "\u0002\u0002\u0002\u0647\u0645\u0003\u0002\u0002\u0002\u0648\u064a\u0005", - "~@\u0002\u0649\u0648\u0003\u0002\u0002\u0002\u0649\u064a\u0003\u0002", - "\u0002\u0002\u064a\u064c\u0003\u0002\u0002\u0002\u064b\u0626\u0003\u0002", - "\u0002\u0002\u064b\u0636\u0003\u0002\u0002\u0002\u064c\u0099\u0003\u0002", - "\u0002\u0002\u064d\u064f\u0005\u009cO\u0002\u064e\u064d\u0003\u0002", - "\u0002\u0002\u064f\u0650\u0003\u0002\u0002\u0002\u0650\u064e\u0003\u0002", - "\u0002\u0002\u0650\u0651\u0003\u0002\u0002\u0002\u0651\u009b\u0003\u0002", - "\u0002\u0002\u0652\u0653\u0007\u00c2\u0002\u0002\u0653\u065e\u0007\u00c3", - "\u0002\u0002\u0654\u0655\u0007\u00c3\u0002\u0002\u0655\u0656\u0007\u00c4", - "\u0002\u0002\u0656\u065e\t\u0019\u0002\u0002\u0657\u0659\u0007\u00c9", - "\u0002\u0002\u0658\u0657\u0003\u0002\u0002\u0002\u0658\u0659\u0003\u0002", - "\u0002\u0002\u0659\u065a\u0003\u0002\u0002\u0002\u065a\u065b\u0007\u001f", - "\u0002\u0002\u065b\u065c\u0007\u00ca\u0002\u0002\u065c\u065e\u0007J", - "\u0002\u0002\u065d\u0652\u0003\u0002\u0002\u0002\u065d\u0654\u0003\u0002", - "\u0002\u0002\u065d\u0658\u0003\u0002\u0002\u0002\u065e\u009d\u0003\u0002", - "\u0002\u0002\u065f\u0660\u0007u\u0002\u0002\u0660\u0663\u0007<\u0002", - "\u0002\u0661\u0662\u0007>\u0002\u0002\u0662\u0664\u0007?\u0002\u0002", - "\u0663\u0661\u0003\u0002\u0002\u0002\u0663\u0664\u0003\u0002\u0002\u0002", - "\u0664\u0665\u0003\u0002\u0002\u0002\u0665\u066e\u0005\u014a\u00a6\u0002", - "\u0666\u0667\u0007u\u0002\u0002\u0667\u066a\t\u0015\u0002\u0002\u0668", - "\u0669\u0007>\u0002\u0002\u0669\u066b\u0007?\u0002\u0002\u066a\u0668", - "\u0003\u0002\u0002\u0002\u066a\u066b\u0003\u0002\u0002\u0002\u066b\u066c", - "\u0003\u0002\u0002\u0002\u066c\u066e\u0005\u0180\u00c1\u0002\u066d\u065f", - "\u0003\u0002\u0002\u0002\u066d\u0666\u0003\u0002\u0002\u0002\u066e\u009f", - "\u0003\u0002\u0002\u0002\u066f\u0670\u0007\u0010\u0002\u0002\u0670\u0671", - "\u0007%\u0002\u0002\u0671\u00a1\u0003\u0002\u0002\u0002\u0672\u0674", - "\t\u001a\u0002\u0002\u0673\u0675\u0007`\u0002\u0002\u0674\u0673\u0003", - "\u0002\u0002\u0002\u0674\u0675\u0003\u0002\u0002\u0002\u0675\u0676\u0003", - "\u0002\u0002\u0002\u0676\u067c\u0005\u0180\u00c1\u0002\u0677\u0678\u0007", - "\u001a\u0002\u0002\u0678\u0679\u0005\u01a0\u00d1\u0002\u0679\u067a\u0007", - "\u001b\u0002\u0002\u067a\u067d\u0003\u0002\u0002\u0002\u067b\u067d\u0005", - "\u01a0\u00d1\u0002\u067c\u0677\u0003\u0002\u0002\u0002\u067c\u067b\u0003", - "\u0002\u0002\u0002\u067c\u067d\u0003\u0002\u0002\u0002\u067d\u0687\u0003", - "\u0002\u0002\u0002\u067e\u067f\u0007\u00cd\u0002\u0002\u067f\u0684\u0007", - "\u0013\u0002\u0002\u0680\u0681\u0007\u0017\u0002\u0002\u0681\u0683\u0007", - "\u0013\u0002\u0002\u0682\u0680\u0003\u0002\u0002\u0002\u0683\u0686\u0003", - "\u0002\u0002\u0002\u0684\u0682\u0003\u0002\u0002\u0002\u0684\u0685\u0003", - "\u0002\u0002\u0002\u0685\u0688\u0003\u0002\u0002\u0002\u0686\u0684\u0003", - "\u0002\u0002\u0002\u0687\u067e\u0003\u0002\u0002\u0002\u0687\u0688\u0003", - "\u0002\u0002\u0002\u0688\u068a\u0003\u0002\u0002\u0002\u0689\u068b\u0005", - "\u0118\u008d\u0002\u068a\u0689\u0003\u0002\u0002\u0002\u068a\u068b\u0003", - "\u0002\u0002\u0002\u068b\u00a3\u0003\u0002\u0002\u0002\u068c\u0690\u0005", - "\u00a6T\u0002\u068d\u0690\u0005\u00a8U\u0002\u068e\u0690\u0005\u00aa", - "V\u0002\u068f\u068c\u0003\u0002\u0002\u0002\u068f\u068d\u0003\u0002", - "\u0002\u0002\u068f\u068e\u0003\u0002\u0002\u0002\u0690\u00a5\u0003\u0002", - "\u0002\u0002\u0691\u0692\u0007>\u0002\u0002\u0692\u0693\u0005\u0170", - "\u00b9\u0002\u0693\u0694\u0007\u0014\u0002\u0002\u0694\u0698\u0005\u0004", - "\u0003\u0002\u0695\u0697\u0005\u00acW\u0002\u0696\u0695\u0003\u0002", - "\u0002\u0002\u0697\u069a\u0003\u0002\u0002\u0002\u0698\u0696\u0003\u0002", - "\u0002\u0002\u0698\u0699\u0003\u0002\u0002\u0002\u0699\u069c\u0003\u0002", - "\u0002\u0002\u069a\u0698\u0003\u0002\u0002\u0002\u069b\u069d\u0005\u00ae", - "X\u0002\u069c\u069b\u0003\u0002\u0002\u0002\u069c\u069d\u0003\u0002", - "\u0002\u0002\u069d\u069e\u0003\u0002\u0002\u0002\u069e\u069f\u0007\u0010", - "\u0002\u0002\u069f\u06a0\u0007>\u0002\u0002\u06a0\u00a7\u0003\u0002", - "\u0002\u0002\u06a1\u06a2\u0007>\u0002\u0002\u06a2\u06a3\u0005\u0170", - "\u00b9\u0002\u06a3\u06a6\u0005\b\u0005\u0002\u06a4\u06a5\u0007\u00ce", - "\u0002\u0002\u06a5\u06a7\u0005\b\u0005\u0002\u06a6\u06a4\u0003\u0002", - "\u0002\u0002\u06a6\u06a7\u0003\u0002\u0002\u0002\u06a7\u00a9\u0003\u0002", - "\u0002\u0002\u06a8\u06a9\u0007\u0007\u0002\u0002\u06a9\u06aa\u0007>", - "\u0002\u0002\u06aa\u06ab\u0005\u0170\u00b9\u0002\u06ab\u06ac\u0007\u0014", - "\u0002\u0002\u06ac\u06ad\u0005\b\u0005\u0002\u06ad\u00ab\u0003\u0002", - "\u0002\u0002\u06ae\u06af\t\u001b\u0002\u0002\u06af\u06b0\u0005\u0170", - "\u00b9\u0002\u06b0\u06b1\u0007\u0014\u0002\u0002\u06b1\u06b2\u0005\u0004", - "\u0003\u0002\u06b2\u00ad\u0003\u0002\u0002\u0002\u06b3\u06b4\u0007\u00ce", - "\u0002\u0002\u06b4\u06b5\u0005\u0004\u0003\u0002\u06b5\u00af\u0003\u0002", - "\u0002\u0002\u06b6\u06b9\u0007\u00d1\u0002\u0002\u06b7\u06ba\u0005\u01b2", - "\u00da\u0002\u06b8\u06ba\u0005\u0180\u00c1\u0002\u06b9\u06b7\u0003\u0002", - "\u0002\u0002\u06b9\u06b8\u0003\u0002\u0002\u0002\u06ba\u00b1\u0003\u0002", - "\u0002\u0002\u06bb\u06c2\u0007\u00d2\u0002\u0002\u06bc\u06bd\u0007\u00d3", - "\u0002\u0002\u06bd\u06c3\u0007<\u0002\u0002\u06be\u06c0\u0007\u00cd", - "\u0002\u0002\u06bf\u06c1\u0007<\u0002\u0002\u06c0\u06bf\u0003\u0002", - "\u0002\u0002\u06c0\u06c1\u0003\u0002\u0002\u0002\u06c1\u06c3\u0003\u0002", - "\u0002\u0002\u06c2\u06bc\u0003\u0002\u0002\u0002\u06c2\u06be\u0003\u0002", - "\u0002\u0002\u06c3\u06c4\u0003\u0002\u0002\u0002\u06c4\u06c6\u0005\u014a", - "\u00a6\u0002\u06c5\u06c7\u0005\u00b4[\u0002\u06c6\u06c5\u0003\u0002", - "\u0002\u0002\u06c6\u06c7\u0003\u0002\u0002\u0002\u06c7\u06ca\u0003\u0002", - "\u0002\u0002\u06c8\u06cb\u0005\u011a\u008e\u0002\u06c9\u06cb\u0005\u00b6", - "\\\u0002\u06ca\u06c8\u0003\u0002\u0002\u0002\u06ca\u06c9\u0003\u0002", - "\u0002\u0002\u06cb\u00b3\u0003\u0002\u0002\u0002\u06cc\u06cd\u0007\u001a", - "\u0002\u0002\u06cd\u06d2\u0005\u01b8\u00dd\u0002\u06ce\u06cf\u0007\u0017", - "\u0002\u0002\u06cf\u06d1\u0005\u01b8\u00dd\u0002\u06d0\u06ce\u0003\u0002", - "\u0002\u0002\u06d1\u06d4\u0003\u0002\u0002\u0002\u06d2\u06d0\u0003\u0002", - "\u0002\u0002\u06d2\u06d3\u0003\u0002\u0002\u0002\u06d3\u06d5\u0003\u0002", - "\u0002\u0002\u06d4\u06d2\u0003\u0002\u0002\u0002\u06d5\u06d6\u0007\u001b", - "\u0002\u0002\u06d6\u00b5\u0003\u0002\u0002\u0002\u06d7\u06d8\u0007\u00d4", - "\u0002\u0002\u06d8\u06dd\u0005\u00b8]\u0002\u06d9\u06da\u0007\u0017", - "\u0002\u0002\u06da\u06dc\u0005\u00b8]\u0002\u06db\u06d9\u0003\u0002", - "\u0002\u0002\u06dc\u06df\u0003\u0002\u0002\u0002\u06dd\u06db\u0003\u0002", - "\u0002\u0002\u06dd\u06de\u0003\u0002\u0002\u0002\u06de\u00b7\u0003\u0002", - "\u0002\u0002\u06df\u06dd\u0003\u0002\u0002\u0002\u06e0\u06e1\u0007\u001a", - "\u0002\u0002\u06e1\u06e6\u0005\u0180\u00c1\u0002\u06e2\u06e3\u0007\u0017", - "\u0002\u0002\u06e3\u06e5\u0005\u0180\u00c1\u0002\u06e4\u06e2\u0003\u0002", - "\u0002\u0002\u06e5\u06e8\u0003\u0002\u0002\u0002\u06e6\u06e4\u0003\u0002", - "\u0002\u0002\u06e6\u06e7\u0003\u0002\u0002\u0002\u06e7\u06e9\u0003\u0002", - "\u0002\u0002\u06e8\u06e6\u0003\u0002\u0002\u0002\u06e9\u06ea\u0007\u001b", - "\u0002\u0002\u06ea\u00b9\u0003\u0002\u0002\u0002\u06eb\u06ec\u0007\u00d2", - "\u0002\u0002\u06ec\u06ee\u0007\u00d3\u0002\u0002\u06ed\u06ef\u0007@", - "\u0002\u0002\u06ee\u06ed\u0003\u0002\u0002\u0002\u06ee\u06ef\u0003\u0002", - "\u0002\u0002\u06ef\u06f0\u0003\u0002\u0002\u0002\u06f0\u06f1\u0007\u00d5", - "\u0002\u0002\u06f1\u06f2\u0005\u01a6\u00d4\u0002\u06f2\u06f3\u0005\u01a4", - "\u00d3\u0002\u06f3\u00bb\u0003\u0002\u0002\u0002\u06f4\u06f6\u00074", - "\u0002\u0002\u06f5\u06f7\u0007\u0013\u0002\u0002\u06f6\u06f5\u0003\u0002", - "\u0002\u0002\u06f6\u06f7\u0003\u0002\u0002\u0002\u06f7\u06fa\u0003\u0002", - "\u0002\u0002\u06f8\u06f9\u0007\u0012\u0002\u0002\u06f9\u06fb\u0005\u0170", - "\u00b9\u0002\u06fa\u06f8\u0003\u0002\u0002\u0002\u06fa\u06fb\u0003\u0002", - "\u0002\u0002\u06fb\u00bd\u0003\u0002\u0002\u0002\u06fc\u06fd\u0007\u00d6", - "\u0002\u0002\u06fd\u06fe\u0007\u00d7\u0002\u0002\u06fe\u06ff\u0005\u00c0", - "a\u0002\u06ff\u00bf\u0003\u0002\u0002\u0002\u0700\u0703\u0005\u00c2", - "b\u0002\u0701\u0703\u0005\u00c4c\u0002\u0702\u0700\u0003\u0002\u0002", - "\u0002\u0702\u0701\u0003\u0002\u0002\u0002\u0703\u00c1\u0003\u0002\u0002", - "\u0002\u0704\u0705\u0007\u0011\u0002\u0002\u0705\u0706\u0007J\u0002", - "\u0002\u0706\u0707\u0005\u01b8\u00dd\u0002\u0707\u0708\u0007\u0019\u0002", - "\u0002\u0708\u0709\u0007\u00d8\u0002\u0002\u0709\u00c3\u0003\u0002\u0002", - "\u0002\u070a\u070b\u0005\u01b8\u00dd\u0002\u070b\u070c\u0007\u0019\u0002", - "\u0002\u070c\u070d\u0007\u00d9\u0002\u0002\u070d\u00c5\u0003\u0002\u0002", - "\u0002\u070e\u070f\u0007\u00da\u0002\u0002\u070f\u0714\u0005\u00c8e", - "\u0002\u0710\u0711\u0007\u0017\u0002\u0002\u0711\u0713\u0005\u00c8e", - "\u0002\u0712\u0710\u0003\u0002\u0002\u0002\u0713\u0716\u0003\u0002\u0002", - "\u0002\u0714\u0712\u0003\u0002\u0002\u0002\u0714\u0715\u0003\u0002\u0002", - "\u0002\u0715\u0717\u0003\u0002\u0002\u0002\u0716\u0714\u0003\u0002\u0002", - "\u0002\u0717\u0718\u0007/\u0002\u0002\u0718\u0719\u0007\u00db\u0002", - "\u0002\u0719\u071a\u0005\u01b8\u00dd\u0002\u071a\u00c7\u0003\u0002\u0002", - "\u0002\u071b\u071c\u0007\u00cc\u0002\u0002\u071c\u071d\u0007Q\u0002", - "\u0002\u071d\u071e\u0007 \u0002\u0002\u071e\u071f\u0005\u01b8\u00dd", - "\u0002\u071f\u00c9\u0003\u0002\u0002\u0002\u0720\u0722\u0007\u00dc\u0002", - "\u0002\u0721\u0723\u0007\u0013\u0002\u0002\u0722\u0721\u0003\u0002\u0002", - "\u0002\u0722\u0723\u0003\u0002\u0002\u0002\u0723\u00cb\u0003\u0002\u0002", - "\u0002\u0724\u0725\u0007\u0080\u0002\u0002\u0725\u0726\u0007\u00dd\u0002", - "\u0002\u0726\u0729\u0005\u0180\u00c1\u0002\u0727\u0728\u0007/\u0002", - "\u0002\u0728\u072a\u0005\u0180\u00c1\u0002\u0729\u0727\u0003\u0002\u0002", - "\u0002\u0729\u072a\u0003\u0002\u0002\u0002\u072a\u072d\u0003\u0002\u0002", - "\u0002\u072b\u072c\u0007\u00de\u0002\u0002\u072c\u072e\u0005\u0180\u00c1", - "\u0002\u072d\u072b\u0003\u0002\u0002\u0002\u072d\u072e\u0003\u0002\u0002", - "\u0002\u072e\u00cd\u0003\u0002\u0002\u0002\u072f\u0730\u0007\u00df\u0002", - "\u0002\u0730\u0736\u0007\u0013\u0002\u0002\u0731\u0734\u0007\u001e\u0002", - "\u0002\u0732\u0735\u0005\u011a\u008e\u0002\u0733\u0735\u0005\u0180\u00c1", - "\u0002\u0734\u0732\u0003\u0002\u0002\u0002\u0734\u0733\u0003\u0002\u0002", - "\u0002\u0735\u0737\u0003\u0002\u0002\u0002\u0736\u0731\u0003\u0002\u0002", - "\u0002\u0736\u0737\u0003\u0002\u0002\u0002\u0737\u00cf\u0003\u0002\u0002", - "\u0002\u0738\u073a\u0007\u00e0\u0002\u0002\u0739\u073b\u0007\u00e1\u0002", - "\u0002\u073a\u0739\u0003\u0002\u0002\u0002\u073a\u073b\u0003\u0002\u0002", - "\u0002\u073b\u073c\u0003\u0002\u0002\u0002\u073c\u073d\u0007\u0013\u0002", - "\u0002\u073d\u073e\u0007\u00cd\u0002\u0002\u073e\u0743\u0007\u0013\u0002", - "\u0002\u073f\u0740\u0007\u0017\u0002\u0002\u0740\u0742\u0007\u0013\u0002", - "\u0002\u0741\u073f\u0003\u0002\u0002\u0002\u0742\u0745\u0003\u0002\u0002", - "\u0002\u0743\u0741\u0003\u0002\u0002\u0002\u0743\u0744\u0003\u0002\u0002", - "\u0002\u0744\u00d1\u0003\u0002\u0002\u0002\u0745\u0743\u0003\u0002\u0002", - "\u0002\u0746\u0747\u0007\u00e2\u0002\u0002\u0747\u0748\t\u001c\u0002", - "\u0002\u0748\u0749\u0007Q\u0002\u0002\u0749\u074b\u0005\u014a\u00a6", - "\u0002\u074a\u074c\u0005\u00d4k\u0002\u074b\u074a\u0003\u0002\u0002", - "\u0002\u074b\u074c\u0003\u0002\u0002\u0002\u074c\u00d3\u0003\u0002\u0002", - "\u0002\u074d\u074e\u0007\u00e5\u0002\u0002\u074e\u074f\u0007\u001a\u0002", - "\u0002\u074f\u0754\u0005\u01b8\u00dd\u0002\u0750\u0751\u0007\u0017\u0002", - "\u0002\u0751\u0753\u0005\u01b8\u00dd\u0002\u0752\u0750\u0003\u0002\u0002", - "\u0002\u0753\u0756\u0003\u0002\u0002\u0002\u0754\u0752\u0003\u0002\u0002", - "\u0002\u0754\u0755\u0003\u0002\u0002\u0002\u0755\u0757\u0003\u0002\u0002", - "\u0002\u0756\u0754\u0003\u0002\u0002\u0002\u0757\u0758\u0007\u001b\u0002", - "\u0002\u0758\u00d5\u0003\u0002\u0002\u0002\u0759\u075a\u0007\u00e6\u0002", - "\u0002\u075a\u075b\u0007\u0013\u0002\u0002\u075b\u00d7\u0003\u0002\u0002", - "\u0002\u075c\u075d\u0007\u00e7\u0002\u0002\u075d\u075e\t\u001d\u0002", - "\u0002\u075e\u075f\u0005\u00dan\u0002\u075f\u0760\u0007\u0017\u0002", - "\u0002\u0760\u0761\u0005\u00dan\u0002\u0761\u00d9\u0003\u0002\u0002", - "\u0002\u0762\u0764\u0005\u014a\u00a6\u0002\u0763\u0765\u0005\u014c\u00a7", - "\u0002\u0764\u0763\u0003\u0002\u0002\u0002\u0764\u0765\u0003\u0002\u0002", - "\u0002\u0765\u076b\u0003\u0002\u0002\u0002\u0766\u0767\u0007\u001a\u0002", - "\u0002\u0767\u0768\u0005\u011a\u008e\u0002\u0768\u0769\u0007\u001b\u0002", - "\u0002\u0769\u076b\u0003\u0002\u0002\u0002\u076a\u0762\u0003\u0002\u0002", - "\u0002\u076a\u0766\u0003\u0002\u0002\u0002\u076b\u076e\u0003\u0002\u0002", - "\u0002\u076c\u076d\u0007\u00de\u0002\u0002\u076d\u076f\u0005\u01b8\u00dd", - "\u0002\u076e\u076c\u0003\u0002\u0002\u0002\u076e\u076f\u0003\u0002\u0002", - "\u0002\u076f\u00db\u0003\u0002\u0002\u0002\u0770\u0771\u0007\u00e9\u0002", - "\u0002\u0771\u0772\u0007\u00e1\u0002\u0002\u0772\u0773\u0007@\u0002", - "\u0002\u0773\u0778\u0005\u00e0q\u0002\u0774\u0775\u0007\u0017\u0002", - "\u0002\u0775\u0777\u0005\u00e0q\u0002\u0776\u0774\u0003\u0002\u0002", - "\u0002\u0777\u077a\u0003\u0002\u0002\u0002\u0778\u0776\u0003\u0002\u0002", - "\u0002\u0778\u0779\u0003\u0002\u0002\u0002\u0779\u077b\u0003\u0002\u0002", - "\u0002\u077a\u0778\u0003\u0002\u0002\u0002\u077b\u077c\u0007/\u0002", - "\u0002\u077c\u0780\u0005\u00e2r\u0002\u077d\u077f\u0005\u00e6t\u0002", - "\u077e\u077d\u0003\u0002\u0002\u0002\u077f\u0782\u0003\u0002\u0002\u0002", - "\u0780\u077e\u0003\u0002\u0002\u0002\u0780\u0781\u0003\u0002\u0002\u0002", - "\u0781\u00dd\u0003\u0002\u0002\u0002\u0782\u0780\u0003\u0002\u0002\u0002", - "\u0783\u0789\u0007\u00e9\u0002\u0002\u0784\u078a\u0005\u014a\u00a6\u0002", - "\u0785\u0786\u0007\u001a\u0002\u0002\u0786\u0787\u0005\u011a\u008e\u0002", - "\u0787\u0788\u0007\u001b\u0002\u0002\u0788\u078a\u0003\u0002\u0002\u0002", - "\u0789\u0784\u0003\u0002\u0002\u0002\u0789\u0785\u0003\u0002\u0002\u0002", - "\u078a\u078b\u0003\u0002\u0002\u0002\u078b\u078d\u0007/\u0002\u0002", - "\u078c\u078e\u0007\u00ea\u0002\u0002\u078d\u078c\u0003\u0002\u0002\u0002", - "\u078d\u078e\u0003\u0002\u0002\u0002\u078e\u078f\u0003\u0002\u0002\u0002", - "\u078f\u0793\u0005\u00e2r\u0002\u0790\u0792\u0005\u00e4s\u0002\u0791", - "\u0790\u0003\u0002\u0002\u0002\u0792\u0795\u0003\u0002\u0002\u0002\u0793", - "\u0791\u0003\u0002\u0002\u0002\u0793\u0794\u0003\u0002\u0002\u0002\u0794", - "\u00df\u0003\u0002\u0002\u0002\u0795\u0793\u0003\u0002\u0002\u0002\u0796", - "\u0799\u0005\u01b2\u00da\u0002\u0797\u0799\u0005\u0180\u00c1\u0002\u0798", - "\u0796\u0003\u0002\u0002\u0002\u0798\u0797\u0003\u0002\u0002\u0002\u0799", - "\u00e1\u0003\u0002\u0002\u0002\u079a\u079d\u0005\u01b2\u00da\u0002\u079b", - "\u079d\u0005\u0180\u00c1\u0002\u079c\u079a\u0003\u0002\u0002\u0002\u079c", - "\u079b\u0003\u0002\u0002\u0002\u079d\u00e3\u0003\u0002\u0002\u0002\u079e", - "\u079f\u0007\u00de\u0002\u0002\u079f\u07a7\u0005\u01b8\u00dd\u0002\u07a0", - "\u07a1\u0007\u00eb\u0002\u0002\u07a1\u07a7\u0005\u0180\u00c1\u0002\u07a2", - "\u07a3\u0007\u00ec\u0002\u0002\u07a3\u07a7\u0005\u0180\u00c1\u0002\u07a4", - "\u07a5\u0007\u00ed\u0002\u0002\u07a5\u07a7\u0005\u01b8\u00dd\u0002\u07a6", - "\u079e\u0003\u0002\u0002\u0002\u07a6\u07a0\u0003\u0002\u0002\u0002\u07a6", - "\u07a2\u0003\u0002\u0002\u0002\u07a6\u07a4\u0003\u0002\u0002\u0002\u07a7", - "\u00e5\u0003\u0002\u0002\u0002\u07a8\u07a9\t\u001e\u0002\u0002\u07a9", - "\u00e7\u0003\u0002\u0002\u0002\u07aa\u07ac\u0007[\u0002\u0002\u07ab", - "\u07ad\u0007\u00ef\u0002\u0002\u07ac\u07ab\u0003\u0002\u0002\u0002\u07ac", - "\u07ad\u0003\u0002\u0002\u0002\u07ad\u00e9\u0003\u0002\u0002\u0002\u07ae", - "\u07b0\u0007=\u0002\u0002\u07af\u07b1\u0007G\u0002\u0002\u07b0\u07af", - "\u0003\u0002\u0002\u0002\u07b0\u07b1\u0003\u0002\u0002\u0002\u07b1\u07b2", - "\u0003\u0002\u0002\u0002\u07b2\u07b3\u0007k\u0002\u0002\u07b3\u07b4", - "\u0005\u01b8\u00dd\u0002\u07b4\u07b5\u0007Q\u0002\u0002\u07b5\u07b6", - "\u0005\u014a\u00a6\u0002\u07b6\u07b7\u0007\u001a\u0002\u0002\u07b7\u07bc", - "\u0005\u00ecw\u0002\u07b8\u07b9\u0007\u0017\u0002\u0002\u07b9\u07bb", - "\u0005\u00ecw\u0002\u07ba\u07b8\u0003\u0002\u0002\u0002\u07bb\u07be", - "\u0003\u0002\u0002\u0002\u07bc\u07ba\u0003\u0002\u0002\u0002\u07bc\u07bd", - "\u0003\u0002\u0002\u0002\u07bd\u07bf\u0003\u0002\u0002\u0002\u07be\u07bc", - "\u0003\u0002\u0002\u0002\u07bf\u07c0\u0007\u001b\u0002\u0002\u07c0\u00eb", - "\u0003\u0002\u0002\u0002\u07c1\u07c3\u0005\u01b8\u00dd\u0002\u07c2\u07c4", - "\t\t\u0002\u0002\u07c3\u07c2\u0003\u0002\u0002\u0002\u07c3\u07c4\u0003", - "\u0002\u0002\u0002\u07c4\u00ed\u0003\u0002\u0002\u0002\u07c5\u07c6\u0005", - "\u00f0y\u0002\u07c6\u00ef\u0003\u0002\u0002\u0002\u07c7\u07c8\u0007", - "$\u0002\u0002\u07c8\u07c9\u0007\u001a\u0002\u0002\u07c9\u07ca\u0005", - "\u01b8\u00dd\u0002\u07ca\u07cb\u0007\u0019\u0002\u0002\u07cb\u07d3\u0005", - "\u01b8\u00dd\u0002\u07cc\u07cd\u0007\u0017\u0002\u0002\u07cd\u07ce\u0005", - "\u01b8\u00dd\u0002\u07ce\u07cf\u0007\u0019\u0002\u0002\u07cf\u07d0\u0005", - "\u01b8\u00dd\u0002\u07d0\u07d2\u0003\u0002\u0002\u0002\u07d1\u07cc\u0003", - "\u0002\u0002\u0002\u07d2\u07d5\u0003\u0002\u0002\u0002\u07d3\u07d1\u0003", - "\u0002\u0002\u0002\u07d3\u07d4\u0003\u0002\u0002\u0002\u07d4\u07d6\u0003", - "\u0002\u0002\u0002\u07d5\u07d3\u0003\u0002\u0002\u0002\u07d6\u07da\u0007", - "\u001b\u0002\u0002\u07d7\u07d9\u0005l7\u0002\u07d8\u07d7\u0003\u0002", - "\u0002\u0002\u07d9\u07dc\u0003\u0002\u0002\u0002\u07da\u07d8\u0003\u0002", - "\u0002\u0002\u07da\u07db\u0003\u0002\u0002\u0002\u07db\u00f1\u0003\u0002", - "\u0002\u0002\u07dc\u07da\u0003\u0002\u0002\u0002\u07dd\u07de\u0007\u00f0", - "\u0002\u0002\u07de\u07e5\u0005\u0180\u00c1\u0002\u07df\u07e0\u0007\u00f0", - "\u0002\u0002\u07e0\u07e1\u0007\u001a\u0002\u0002\u07e1\u07e2\u0005\u0180", - "\u00c1\u0002\u07e2\u07e3\u0007\u001b\u0002\u0002\u07e3\u07e5\u0003\u0002", - "\u0002\u0002\u07e4\u07dd\u0003\u0002\u0002\u0002\u07e4\u07df\u0003\u0002", - "\u0002\u0002\u07e5\u00f3\u0003\u0002\u0002\u0002\u07e6\u07e8\u0007\u0007", - "\u0002\u0002\u07e7\u07e6\u0003\u0002\u0002\u0002\u07e7\u07e8\u0003\u0002", - "\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002\u07e9\u07eb\u0007\u00f1", - "\u0002\u0002\u07ea\u07ec\u0005\u0180\u00c1\u0002\u07eb\u07ea\u0003\u0002", - "\u0002\u0002\u07eb\u07ec\u0003\u0002\u0002\u0002\u07ec\u00f5\u0003\u0002", - "\u0002\u0002\u07ed\u07ee\u0007\u00f2\u0002\u0002\u07ee\u00f7\u0003\u0002", - "\u0002\u0002\u07ef\u07fb\u0007\u00f3\u0002\u0002\u07f0\u07f2\u0007\u00f4", - "\u0002\u0002\u07f1\u07f3\u0007\u00f5\u0002\u0002\u07f2\u07f1\u0003\u0002", - "\u0002\u0002\u07f2\u07f3\u0003\u0002\u0002\u0002\u07f3\u07f4\u0003\u0002", - "\u0002\u0002\u07f4\u07f9\u0005\u0180\u00c1\u0002\u07f5\u07f6\u0007\u0016", - "\u0002\u0002\u07f6\u07f7\u0007\u00d8\u0002\u0002\u07f7\u07f8\u0007\u0019", - "\u0002\u0002\u07f8\u07fa\u0005\u0180\u00c1\u0002\u07f9\u07f5\u0003\u0002", - "\u0002\u0002\u07f9\u07fa\u0003\u0002\u0002\u0002\u07fa\u07fc\u0003\u0002", - "\u0002\u0002\u07fb\u07f0\u0003\u0002\u0002\u0002\u07fb\u07fc\u0003\u0002", - "\u0002\u0002\u07fc\u00f9\u0003\u0002\u0002\u0002\u07fd\u07ff\u0007-", - "\u0002\u0002\u07fe\u0800\u0005\u0180\u00c1\u0002\u07ff\u07fe\u0003\u0002", - "\u0002\u0002\u07ff\u0800\u0003\u0002\u0002\u0002\u0800\u00fb\u0003\u0002", - "\u0002\u0002\u0801\u0803\u0007\u00f6\u0002\u0002\u0802\u0804\u0007\u00ef", - "\u0002\u0002\u0803\u0802\u0003\u0002\u0002\u0002\u0803\u0804\u0003\u0002", - "\u0002\u0002\u0804\u00fd\u0003\u0002\u0002\u0002\u0805\u0809\u0005\u0100", - "\u0081\u0002\u0806\u0809\u0005\u0102\u0082\u0002\u0807\u0809\u0005\u0104", - "\u0083\u0002\u0808\u0805\u0003\u0002\u0002\u0002\u0808\u0806\u0003\u0002", - "\u0002\u0002\u0808\u0807\u0003\u0002\u0002\u0002\u0809\u00ff\u0003\u0002", - "\u0002\u0002\u080a\u080c\u0007\u00f7\u0002\u0002\u080b\u080a\u0003\u0002", - "\u0002\u0002\u080b\u080c\u0003\u0002\u0002\u0002\u080c\u080d\u0003\u0002", - "\u0002\u0002\u080d\u0810\u0007\u00b8\u0002\u0002\u080e\u0810\u0007\u00f8", - "\u0002\u0002\u080f\u080b\u0003\u0002\u0002\u0002\u080f\u080e\u0003\u0002", - "\u0002\u0002\u0810\u0812\u0003\u0002\u0002\u0002\u0811\u0813\u0007\u0019", - "\u0002\u0002\u0812\u0811\u0003\u0002\u0002\u0002\u0812\u0813\u0003\u0002", - "\u0002\u0002\u0813\u0814\u0003\u0002\u0002\u0002\u0814\u0815\u0005\u0180", - "\u00c1\u0002\u0815\u0101\u0003\u0002\u0002\u0002\u0816\u0817\t\u001f", - "\u0002\u0002\u0817\u0818\t \u0002\u0002\u0818\u0103\u0003\u0002\u0002", - "\u0002\u0819\u081a\u0007\u00ff\u0002\u0002\u081a\u081d\u0007\u0019\u0002", - "\u0002\u081b\u081e\u0005\u0180\u00c1\u0002\u081c\u081e\u0007\u0100\u0002", - "\u0002\u081d\u081b\u0003\u0002\u0002\u0002\u081d\u081c\u0003\u0002\u0002", - "\u0002\u081e\u0820\u0003\u0002\u0002\u0002\u081f\u0821\u0007R\u0002", - "\u0002\u0820\u081f\u0003\u0002\u0002\u0002\u0820\u0821\u0003\u0002\u0002", - "\u0002\u0821\u0822\u0003\u0002\u0002\u0002\u0822\u0823\u0007\u001e\u0002", - "\u0002\u0823\u0824\t!\u0002\u0002\u0824\u0105\u0003\u0002\u0002\u0002", - "\u0825\u0826\u0007\u0102\u0002\u0002\u0826\u0827\u0005\u01b8\u00dd\u0002", - "\u0827\u0107\u0003\u0002\u0002\u0002\u0828\u082b\u0007\u0103\u0002\u0002", - "\u0829\u082a\u0007\u0104\u0002\u0002\u082a\u082c\u0005\u0180\u00c1\u0002", - "\u082b\u0829\u0003\u0002\u0002\u0002\u082b\u082c\u0003\u0002\u0002\u0002", - "\u082c\u082d\u0003\u0002\u0002\u0002\u082d\u0837\u0007\u001e\u0002\u0002", - "\u082e\u0838\u0005\u011a\u008e\u0002\u082f\u0831\u0005\u014a\u00a6\u0002", - "\u0830\u0832\u0005\u014c\u00a7\u0002\u0831\u0830\u0003\u0002\u0002\u0002", - "\u0831\u0832\u0003\u0002\u0002\u0002\u0832\u0835\u0003\u0002\u0002\u0002", - "\u0833\u0834\u0007\u0105\u0002\u0002\u0834\u0836\u0005\u0180\u00c1\u0002", - "\u0835\u0833\u0003\u0002\u0002\u0002\u0835\u0836\u0003\u0002\u0002\u0002", - "\u0836\u0838\u0003\u0002\u0002\u0002\u0837\u082e\u0003\u0002\u0002\u0002", - "\u0837\u082f\u0003\u0002\u0002\u0002\u0838\u0109\u0003\u0002\u0002\u0002", - "\u0839\u083b\u0007\u0106\u0002\u0002\u083a\u083c\u0007<\u0002\u0002", - "\u083b\u083a\u0003\u0002\u0002\u0002\u083b\u083c\u0003\u0002\u0002\u0002", - "\u083c\u083d\u0003\u0002\u0002\u0002\u083d\u083e\u0005\u014a\u00a6\u0002", - "\u083e\u010b\u0003\u0002\u0002\u0002\u083f\u0840\u0007\u0107\u0002\u0002", - "\u0840\u0841\u0005\u0180\u00c1\u0002\u0841\u010d\u0003\u0002\u0002\u0002", - "\u0842\u0844\u0007\u00d4\u0002\u0002\u0843\u0845\u0007\u001a\u0002\u0002", - "\u0844\u0843\u0003\u0002\u0002\u0002\u0844\u0845\u0003\u0002\u0002\u0002", - "\u0845\u0846\u0003\u0002\u0002\u0002\u0846\u084b\u0005\u0180\u00c1\u0002", - "\u0847\u0848\u0007\u0017\u0002\u0002\u0848\u084a\u0005\u0180\u00c1\u0002", - "\u0849\u0847\u0003\u0002\u0002\u0002\u084a\u084d\u0003\u0002\u0002\u0002", - "\u084b\u0849\u0003\u0002\u0002\u0002\u084b\u084c\u0003\u0002\u0002\u0002", - "\u084c\u084f\u0003\u0002\u0002\u0002\u084d\u084b\u0003\u0002\u0002\u0002", - "\u084e\u0850\u0007\u001b\u0002\u0002\u084f\u084e\u0003\u0002\u0002\u0002", - "\u084f\u0850\u0003\u0002\u0002\u0002\u0850\u0851\u0003\u0002\u0002\u0002", - "\u0851\u0853\u0007\u00cd\u0002\u0002\u0852\u0854\u0007\u001a\u0002\u0002", - "\u0853\u0852\u0003\u0002\u0002\u0002\u0853\u0854\u0003\u0002\u0002\u0002", - "\u0854\u0855\u0003\u0002\u0002\u0002\u0855\u085a\u0005\u01b8\u00dd\u0002", - "\u0856\u0857\u0007\u0017\u0002\u0002\u0857\u0859\u0005\u01b8\u00dd\u0002", - "\u0858\u0856\u0003\u0002\u0002\u0002\u0859\u085c\u0003\u0002\u0002\u0002", - "\u085a\u0858\u0003\u0002\u0002\u0002\u085a\u085b\u0003\u0002\u0002\u0002", - "\u085b\u085e\u0003\u0002\u0002\u0002\u085c\u085a\u0003\u0002\u0002\u0002", - "\u085d\u085f\u0007\u001b\u0002\u0002\u085e\u085d\u0003\u0002\u0002\u0002", - "\u085e\u085f\u0003\u0002\u0002\u0002\u085f\u010f\u0003\u0002\u0002\u0002", - "\u0860\u0861\u0007\u0108\u0002\u0002\u0861\u0862\u0005\u0170\u00b9\u0002", - "\u0862\u0863\t\"\u0002\u0002\u0863\u0864\u0005\u0004\u0003\u0002\u0864", - "\u0866\u0007\u0010\u0002\u0002\u0865\u0867\t#\u0002\u0002\u0866\u0865", - "\u0003\u0002\u0002\u0002\u0866\u0867\u0003\u0002\u0002\u0002\u0867\u0111", - "\u0003\u0002\u0002\u0002\u0868\u0869\u0007\u001e\u0002\u0002\u0869\u086a", - "\u0007\u0013\u0002\u0002\u086a\u086c\u0007l\u0002\u0002\u086b\u086d", - "\u0007\u001a\u0002\u0002\u086c\u086b\u0003\u0002\u0002\u0002\u086c\u086d", - "\u0003\u0002\u0002\u0002\u086d\u086e\u0003\u0002\u0002\u0002\u086e\u0870", - "\u0005\u011a\u008e\u0002\u086f\u0871\u0007\u001b\u0002\u0002\u0870\u086f", - "\u0003\u0002\u0002\u0002\u0870\u0871\u0003\u0002\u0002\u0002\u0871\u0872", - "\u0003\u0002\u0002\u0002\u0872\u0873\u0007\u010a\u0002\u0002\u0873\u0874", - "\u0005\u0004\u0003\u0002\u0874\u0875\u0007\u0010\u0002\u0002\u0875\u0876", - "\u0007\u010a\u0002\u0002\u0876\u0113\u0003\u0002\u0002\u0002\u0877\u0878", - "\u0007\u001e\u0002\u0002\u0878\u0879\u0007\u0013\u0002\u0002\u0879\u087b", - "\u0007l\u0002\u0002\u087a\u087c\u0007\u010b\u0002\u0002\u087b\u087a", - "\u0003\u0002\u0002\u0002\u087b\u087c\u0003\u0002\u0002\u0002\u087c\u087d", - "\u0003\u0002\u0002\u0002\u087d\u087e\u0005\u0180\u00c1\u0002\u087e\u087f", - "\u0007\u010c\u0002\u0002\u087f\u0882\u0005\u0180\u00c1\u0002\u0880\u0881", - "\t$\u0002\u0002\u0881\u0883\u0005\u0180\u00c1\u0002\u0882\u0880\u0003", - "\u0002\u0002\u0002\u0882\u0883\u0003\u0002\u0002\u0002\u0883\u0884\u0003", - "\u0002\u0002\u0002\u0884\u0885\u0007\u010a\u0002\u0002\u0885\u0886\u0005", - "\u0004\u0003\u0002\u0886\u0887\u0007\u0010\u0002\u0002\u0887\u0888\u0007", - "\u010a\u0002\u0002\u0888\u0115\u0003\u0002\u0002\u0002\u0889\u0890\u0007", - "\u010e\u0002\u0002\u088a\u088b\u0007\u010f\u0002\u0002\u088b\u088c\u0007", - "\u010f\u0002\u0002\u088c\u088d\u0007\u0013\u0002\u0002\u088d\u088e\u0007", - "\u0110\u0002\u0002\u088e\u0890\u0007\u0110\u0002\u0002\u088f\u0889\u0003", - "\u0002\u0002\u0002\u088f\u088a\u0003\u0002\u0002\u0002\u0890\u0117\u0003", - "\u0002\u0002\u0002\u0891\u0892\u0007\u0111\u0002\u0002\u0892\u0897\u0005", - "\u0180\u00c1\u0002\u0893\u0894\u0007\u0017\u0002\u0002\u0894\u0896\u0005", - "\u0180\u00c1\u0002\u0895\u0893\u0003\u0002\u0002\u0002\u0896\u0899\u0003", - "\u0002\u0002\u0002\u0897\u0895\u0003\u0002\u0002\u0002\u0897\u0898\u0003", - "\u0002\u0002\u0002\u0898\u0119\u0003\u0002\u0002\u0002\u0899\u0897\u0003", - "\u0002\u0002\u0002\u089a\u089c\u0005\u011c\u008f\u0002\u089b\u089a\u0003", - "\u0002\u0002\u0002\u089b\u089c\u0003\u0002\u0002\u0002\u089c\u089d\u0003", - "\u0002\u0002\u0002\u089d\u089e\u0005\u0122\u0092\u0002\u089e\u011b\u0003", - "\u0002\u0002\u0002\u089f\u08a0\u0007$\u0002\u0002\u08a0\u08a5\u0005", - "\u011e\u0090\u0002\u08a1\u08a2\u0007\u0017\u0002\u0002\u08a2\u08a4\u0005", - "\u011e\u0090\u0002\u08a3\u08a1\u0003\u0002\u0002\u0002\u08a4\u08a7\u0003", - "\u0002\u0002\u0002\u08a5\u08a3\u0003\u0002\u0002\u0002\u08a5\u08a6\u0003", - "\u0002\u0002\u0002\u08a6\u011d\u0003\u0002\u0002\u0002\u08a7\u08a5\u0003", - "\u0002\u0002\u0002\u08a8\u08aa\u0005\u01b8\u00dd\u0002\u08a9\u08ab\u0005", - "\u0120\u0091\u0002\u08aa\u08a9\u0003\u0002\u0002\u0002\u08aa\u08ab\u0003", - "\u0002\u0002\u0002\u08ab\u08ac\u0003\u0002\u0002\u0002\u08ac\u08ad\u0007", - ")\u0002\u0002\u08ad\u08ae\u0007\u001a\u0002\u0002\u08ae\u08af\u0005", - "\u0122\u0092\u0002\u08af\u08b0\u0007\u001b\u0002\u0002\u08b0\u011f\u0003", - "\u0002\u0002\u0002\u08b1\u08b2\u0007\u001a\u0002\u0002\u08b2\u08b7\u0005", - "\u01b8\u00dd\u0002\u08b3\u08b4\u0007\u0017\u0002\u0002\u08b4\u08b6\u0005", - "\u01b8\u00dd\u0002\u08b5\u08b3\u0003\u0002\u0002\u0002\u08b6\u08b9\u0003", - "\u0002\u0002\u0002\u08b7\u08b5\u0003\u0002\u0002\u0002\u08b7\u08b8\u0003", - "\u0002\u0002\u0002\u08b8\u08ba\u0003\u0002\u0002\u0002\u08b9\u08b7\u0003", - "\u0002\u0002\u0002\u08ba\u08bb\u0007\u001b\u0002\u0002\u08bb\u0121\u0003", - "\u0002\u0002\u0002\u08bc\u08c2\u0005\u0124\u0093\u0002\u08bd\u08be\u0005", - "\u0126\u0094\u0002\u08be\u08bf\u0005\u0124\u0093\u0002\u08bf\u08c1\u0003", - "\u0002\u0002\u0002\u08c0\u08bd\u0003\u0002\u0002\u0002\u08c1\u08c4\u0003", - "\u0002\u0002\u0002\u08c2\u08c0\u0003\u0002\u0002\u0002\u08c2\u08c3\u0003", - "\u0002\u0002\u0002\u08c3\u0123\u0003\u0002\u0002\u0002\u08c4\u08c2\u0003", - "\u0002\u0002\u0002\u08c5\u08cb\u0005\u0128\u0095\u0002\u08c6\u08c7\u0007", - "\u001a\u0002\u0002\u08c7\u08c8\u0005\u0122\u0092\u0002\u08c8\u08c9\u0007", - "\u001b\u0002\u0002\u08c9\u08cb\u0003\u0002\u0002\u0002\u08ca\u08c5\u0003", - "\u0002\u0002\u0002\u08ca\u08c6\u0003\u0002\u0002\u0002\u08cb\u0125\u0003", - "\u0002\u0002\u0002\u08cc\u08ce\u0007\u0112\u0002\u0002\u08cd\u08cf\u0007", - "\u0113\u0002\u0002\u08ce\u08cd\u0003\u0002\u0002\u0002\u08ce\u08cf\u0003", - "\u0002\u0002\u0002\u08cf\u08d9\u0003\u0002\u0002\u0002\u08d0\u08d2\u0007", - "\u0114\u0002\u0002\u08d1\u08d3\u0007\u0113\u0002\u0002\u08d2\u08d1\u0003", - "\u0002\u0002\u0002\u08d2\u08d3\u0003\u0002\u0002\u0002\u08d3\u08d9\u0003", - "\u0002\u0002\u0002\u08d4\u08d6\u0007\u0115\u0002\u0002\u08d5\u08d7\u0007", - "\u0113\u0002\u0002\u08d6\u08d5\u0003\u0002\u0002\u0002\u08d6\u08d7\u0003", - "\u0002\u0002\u0002\u08d7\u08d9\u0003\u0002\u0002\u0002\u08d8\u08cc\u0003", - "\u0002\u0002\u0002\u08d8\u08d0\u0003\u0002\u0002\u0002\u08d8\u08d4\u0003", - "\u0002\u0002\u0002\u08d9\u0127\u0003\u0002\u0002\u0002\u08da\u08db\t", - "%\u0002\u0002\u08db\u08dd\u0005\u012a\u0096\u0002\u08dc\u08de\u0005", - "\u0136\u009c\u0002\u08dd\u08dc\u0003\u0002\u0002\u0002\u08dd\u08de\u0003", + "8\u0002\u0002\u035c\u035d\u0007\u00a3\u0002\u0002\u035d\u0363\u0007", + "\u011a\u0002\u0002\u035e\u0360\t\b\u0002\u0002\u035f\u035e\u0003\u0002", + "\u0002\u0002\u035f\u0360\u0003\u0002\u0002\u0002\u0360\u0361\u0003\u0002", + "\u0002\u0002\u0361\u0363\u0007\u0133\u0002\u0002\u0362\u035c\u0003\u0002", + "\u0002\u0002\u0362\u035f\u0003\u0002\u0002\u0002\u0363\u0364\u0003\u0002", + "\u0002\u0002\u0364\u0365\u0007\u0118\u0002\u0002\u0365\u0367\u0005\u01b8", + "\u00dd\u0002\u0366\u0368\u0005V,\u0002\u0367\u0366\u0003\u0002\u0002", + "\u0002\u0367\u0368\u0003\u0002\u0002\u0002\u0368\u0369\u0003\u0002\u0002", + "\u0002\u0369\u036a\u0005H%\u0002\u036aG\u0003\u0002\u0002\u0002\u036b", + "\u036d\u0007\u000b\u0002\u0002\u036c\u036b\u0003\u0002\u0002\u0002\u036c", + "\u036d\u0003\u0002\u0002\u0002\u036d\u036e\u0003\u0002\u0002\u0002\u036e", + "\u036f\u0007\u016a\u0002\u0002\u036f\u0370\u0005\u011a\u008e\u0002\u0370", + "\u0371\u0007\u016d\u0002\u0002\u0371\u037b\u0003\u0002\u0002\u0002\u0372", + "\u0374\u0007\u000b\u0002\u0002\u0373\u0372\u0003\u0002\u0002\u0002\u0373", + "\u0374\u0003\u0002\u0002\u0002\u0374\u0375\u0003\u0002\u0002\u0002\u0375", + "\u037b\u0005\u011a\u008e\u0002\u0376\u0377\u0007\u016a\u0002\u0002\u0377", + "\u0378\u0005J&\u0002\u0378\u0379\u0007\u016d\u0002\u0002\u0379\u037b", + "\u0003\u0002\u0002\u0002\u037a\u036c\u0003\u0002\u0002\u0002\u037a\u0373", + "\u0003\u0002\u0002\u0002\u037a\u0376\u0003\u0002\u0002\u0002\u037b\u037d", + "\u0003\u0002\u0002\u0002\u037c\u037e\u0005\\/\u0002\u037d\u037c\u0003", + "\u0002\u0002\u0002\u037d\u037e\u0003\u0002\u0002\u0002\u037eI\u0003", + "\u0002\u0002\u0002\u037f\u0384\u0005L\'\u0002\u0380\u0381\u0007\u0157", + "\u0002\u0002\u0381\u0383\u0005L\'\u0002\u0382\u0380\u0003\u0002\u0002", + "\u0002\u0383\u0386\u0003\u0002\u0002\u0002\u0384\u0382\u0003\u0002\u0002", + "\u0002\u0384\u0385\u0003\u0002\u0002\u0002\u0385K\u0003\u0002\u0002", + "\u0002\u0386\u0384\u0003\u0002\u0002\u0002\u0387\u0388\u0005N(\u0002", + "\u0388\u038a\u0005x=\u0002\u0389\u038b\u0005z>\u0002\u038a\u0389\u0003", + "\u0002\u0002\u0002\u038a\u038b\u0003\u0002\u0002\u0002\u038b\u038f\u0003", + "\u0002\u0002\u0002\u038c\u038e\u0005|?\u0002\u038d\u038c\u0003\u0002", + "\u0002\u0002\u038e\u0391\u0003\u0002\u0002\u0002\u038f\u038d\u0003\u0002", + "\u0002\u0002\u038f\u0390\u0003\u0002\u0002\u0002\u0390\u0395\u0003\u0002", + "\u0002\u0002\u0391\u038f\u0003\u0002\u0002\u0002\u0392\u0394\u0005P", + ")\u0002\u0393\u0392\u0003\u0002\u0002\u0002\u0394\u0397\u0003\u0002", + "\u0002\u0002\u0395\u0393\u0003\u0002\u0002\u0002\u0395\u0396\u0003\u0002", + "\u0002\u0002\u0396\u039e\u0003\u0002\u0002\u0002\u0397\u0395\u0003\u0002", + "\u0002\u0002\u0398\u0399\u00073\u0002\u0002\u0399\u039b\u0005\u01b8", + "\u00dd\u0002\u039a\u0398\u0003\u0002\u0002\u0002\u039a\u039b\u0003\u0002", + "\u0002\u0002\u039b\u039c\u0003\u0002\u0002\u0002\u039c\u039e\u0005R", + "*\u0002\u039d\u0387\u0003\u0002\u0002\u0002\u039d\u039a\u0003\u0002", + "\u0002\u0002\u039eM\u0003\u0002\u0002\u0002\u039f\u03a0\u0005\u01b8", + "\u00dd\u0002\u03a0O\u0003\u0002\u0002\u0002\u03a1\u03c2\u0005~@\u0002", + "\u03a2\u03a4\u0007\u00be\u0002\u0002\u03a3\u03a2\u0003\u0002\u0002\u0002", + "\u03a3\u03a4\u0003\u0002\u0002\u0002\u03a4\u03a5\u0003\u0002\u0002\u0002", + "\u03a5\u03c2\u0007\u00c0\u0002\u0002\u03a6\u03a7\u0007\u00d6\u0002\u0002", + "\u03a7\u03c2\u0007\u009b\u0002\u0002\u03a8\u03c2\u0007\u0128\u0002\u0002", + "\u03a9\u03aa\u0007\u00e0\u0002\u0002\u03aa\u03ab\u0005\u014a\u00a6\u0002", + "\u03ab\u03ac\u0007\u016a\u0002\u0002\u03ac\u03ad\u0005\u01b8\u00dd\u0002", + "\u03ad\u03b1\u0007\u016d\u0002\u0002\u03ae\u03b0\u0005T+\u0002\u03af", + "\u03ae\u0003\u0002\u0002\u0002\u03b0\u03b3\u0003\u0002\u0002\u0002\u03b1", + "\u03af\u0003\u0002\u0002\u0002\u03b1\u03b2\u0003\u0002\u0002\u0002\u03b2", + "\u03c2\u0003\u0002\u0002\u0002\u03b3\u03b1\u0003\u0002\u0002\u0002\u03b4", + "\u03b5\u0007\u0082\u0002\u0002\u03b5\u03b6\u0007\u016a\u0002\u0002\u03b6", + "\u03bb\u0007\u0174\u0002\u0002\u03b7\u03b8\u0007\u0157\u0002\u0002\u03b8", + "\u03ba\u0007\u0174\u0002\u0002\u03b9\u03b7\u0003\u0002\u0002\u0002\u03ba", + "\u03bd\u0003\u0002\u0002\u0002\u03bb\u03b9\u0003\u0002\u0002\u0002\u03bb", + "\u03bc\u0003\u0002\u0002\u0002\u03bc\u03be\u0003\u0002\u0002\u0002\u03bd", + "\u03bb\u0003\u0002\u0002\u0002\u03be\u03c2\u0007\u016d\u0002\u0002\u03bf", + "\u03c2\u0007\u000f\u0002\u0002\u03c0\u03c2\u0007^\u0002\u0002\u03c1", + "\u03a1\u0003\u0002\u0002\u0002\u03c1\u03a3\u0003\u0002\u0002\u0002\u03c1", + "\u03a6\u0003\u0002\u0002\u0002\u03c1\u03a8\u0003\u0002\u0002\u0002\u03c1", + "\u03a9\u0003\u0002\u0002\u0002\u03c1\u03b4\u0003\u0002\u0002\u0002\u03c1", + "\u03bf\u0003\u0002\u0002\u0002\u03c1\u03c0\u0003\u0002\u0002\u0002\u03c2", + "Q\u0003\u0002\u0002\u0002\u03c3\u03c4\u0007\u00d6\u0002\u0002\u03c4", + "\u03c6\u0007\u009b\u0002\u0002\u03c5\u03c7\u0007(\u0002\u0002\u03c6", + "\u03c5\u0003\u0002\u0002\u0002\u03c6\u03c7\u0003\u0002\u0002\u0002\u03c7", + "\u03c8\u0003\u0002\u0002\u0002\u03c8\u03c9\u0007\u016a\u0002\u0002\u03c9", + "\u03cb\u0005\u01b8\u00dd\u0002\u03ca\u03cc\t\t\u0002\u0002\u03cb\u03ca", + "\u0003\u0002\u0002\u0002\u03cb\u03cc\u0003\u0002\u0002\u0002\u03cc\u03d4", + "\u0003\u0002\u0002\u0002\u03cd\u03ce\u0007\u0157\u0002\u0002\u03ce\u03d0", + "\u0005\u01b8\u00dd\u0002\u03cf\u03d1\t\t\u0002\u0002\u03d0\u03cf\u0003", + "\u0002\u0002\u0002\u03d0\u03d1\u0003\u0002\u0002\u0002\u03d1\u03d3\u0003", + "\u0002\u0002\u0002\u03d2\u03cd\u0003\u0002\u0002\u0002\u03d3\u03d6\u0003", + "\u0002\u0002\u0002\u03d4\u03d2\u0003\u0002\u0002\u0002\u03d4\u03d5\u0003", + "\u0002\u0002\u0002\u03d5\u03d7\u0003\u0002\u0002\u0002\u03d6\u03d4\u0003", + "\u0002\u0002\u0002\u03d7\u03d9\u0007\u016d\u0002\u0002\u03d8\u03da\u0007", + "^\u0002\u0002\u03d9\u03d8\u0003\u0002\u0002\u0002\u03d9\u03da\u0003", + "\u0002\u0002\u0002\u03da\u03dc\u0003\u0002\u0002\u0002\u03db\u03dd\u0005", + "\u00eex\u0002\u03dc\u03db\u0003\u0002\u0002\u0002\u03dc\u03dd\u0003", + "\u0002\u0002\u0002\u03dd\u03fd\u0003\u0002\u0002\u0002\u03de\u03df\u0007", + "q\u0002\u0002\u03df\u03e0\u0007\u009b\u0002\u0002\u03e0\u03e1\u0007", + "\u016a\u0002\u0002\u03e1\u03e6\u0005\u01b8\u00dd\u0002\u03e2\u03e3\u0007", + "\u0157\u0002\u0002\u03e3\u03e5\u0005\u01b8\u00dd\u0002\u03e4\u03e2\u0003", + "\u0002\u0002\u0002\u03e5\u03e8\u0003\u0002\u0002\u0002\u03e6\u03e4\u0003", + "\u0002\u0002\u0002\u03e6\u03e7\u0003\u0002\u0002\u0002\u03e7\u03e9\u0003", + "\u0002\u0002\u0002\u03e8\u03e6\u0003\u0002\u0002\u0002\u03e9\u03ea\u0007", + "\u016d\u0002\u0002\u03ea\u03eb\u0007\u00e0\u0002\u0002\u03eb\u03ec\u0005", + "\u014a\u00a6\u0002\u03ec\u03ed\u0007\u016a\u0002\u0002\u03ed\u03f2\u0005", + "\u01b8\u00dd\u0002\u03ee\u03ef\u0007\u0157\u0002\u0002\u03ef\u03f1\u0005", + "\u01b8\u00dd\u0002\u03f0\u03ee\u0003\u0002\u0002\u0002\u03f1\u03f4\u0003", + "\u0002\u0002\u0002\u03f2\u03f0\u0003\u0002\u0002\u0002\u03f2\u03f3\u0003", + "\u0002\u0002\u0002\u03f3\u03f5\u0003\u0002\u0002\u0002\u03f4\u03f2\u0003", + "\u0002\u0002\u0002\u03f5\u03f9\u0007\u016d\u0002\u0002\u03f6\u03f8\u0005", + "T+\u0002\u03f7\u03f6\u0003\u0002\u0002\u0002\u03f8\u03fb\u0003\u0002", + "\u0002\u0002\u03f9\u03f7\u0003\u0002\u0002\u0002\u03f9\u03fa\u0003\u0002", + "\u0002\u0002\u03fa\u03fd\u0003\u0002\u0002\u0002\u03fb\u03f9\u0003\u0002", + "\u0002\u0002\u03fc\u03c3\u0003\u0002\u0002\u0002\u03fc\u03de\u0003\u0002", + "\u0002\u0002\u03fdS\u0003\u0002\u0002\u0002\u03fe\u03ff\u0007\u00c5", + "\u0002\u0002\u03ff\u0408\t\n\u0002\u0002\u0400\u0401\u0007\u00b9\u0002", + "\u0002\u0401\u0409\u0007\u0003\u0002\u0002\u0402\u0409\u0007\u00e4\u0002", + "\u0002\u0403\u0404\u0007\u00fd\u0002\u0002\u0404\u0409\u0007\u00c0\u0002", + "\u0002\u0405\u0406\u0007\u00fd\u0002\u0002\u0406\u0409\u0007H\u0002", + "\u0002\u0407\u0409\u0007\u001f\u0002\u0002\u0408\u0400\u0003\u0002\u0002", + "\u0002\u0408\u0402\u0003\u0002\u0002\u0002\u0408\u0403\u0003\u0002\u0002", + "\u0002\u0408\u0405\u0003\u0002\u0002\u0002\u0408\u0407\u0003\u0002\u0002", + "\u0002\u0409U\u0003\u0002\u0002\u0002\u040a\u040c\u0005X-\u0002\u040b", + "\u040a\u0003\u0002\u0002\u0002\u040c\u040d\u0003\u0002\u0002\u0002\u040d", + "\u040b\u0003\u0002\u0002\u0002\u040d\u040e\u0003\u0002\u0002\u0002\u040e", + "W\u0003\u0002\u0002\u0002\u040f\u0410\u0007\u0157\u0002\u0002\u0410", + "\u0413\u0005Z.\u0002\u0411\u0413\u0005f4\u0002\u0412\u040f\u0003\u0002", + "\u0002\u0002\u0412\u0411\u0003\u0002\u0002\u0002\u0413Y\u0003\u0002", + "\u0002\u0002\u0414\u0416\u0007\u00b9\u0002\u0002\u0415\u0414\u0003\u0002", + "\u0002\u0002\u0415\u0416\u0003\u0002\u0002\u0002\u0416\u0417\u0003\u0002", + "\u0002\u0002\u0417\u0418\t\u000b\u0002\u0002\u0418[\u0003\u0002\u0002", + "\u0002\u0419\u041b\u0005^0\u0002\u041a\u0419\u0003\u0002\u0002\u0002", + "\u041b\u041c\u0003\u0002\u0002\u0002\u041c\u041a\u0003\u0002\u0002\u0002", + "\u041c\u041d\u0003\u0002\u0002\u0002\u041d]\u0003\u0002\u0002\u0002", + "\u041e\u041f\u0007\u00c5\u0002\u0002\u041f\u0420\u0007/\u0002\u0002", + "\u0420\u0421\t\f\u0002\u0002\u0421\u0429\u0007\u00ef\u0002\u0002\u0422", + "\u0429\u0005`1\u0002\u0423\u0429\u0005b2\u0002\u0424\u0429\u0005d3\u0002", + "\u0425\u0429\u0005f4\u0002\u0426\u0429\u0005l7\u0002\u0427\u0429\u0005", + "n8\u0002\u0428\u041e\u0003\u0002\u0002\u0002\u0428\u0422\u0003\u0002", + "\u0002\u0002\u0428\u0423\u0003\u0002\u0002\u0002\u0428\u0424\u0003\u0002", + "\u0002\u0002\u0428\u0425\u0003\u0002\u0002\u0002\u0428\u0426\u0003\u0002", + "\u0002\u0002\u0428\u0427\u0003\u0002\u0002\u0002\u0429_\u0003\u0002", + "\u0002\u0002\u042a\u042b\u0007\u00fa\u0002\u0002\u042b\u042c\u00079", + "\u0002\u0002\u042c\u043d\t\r\u0002\u0002\u042d\u042e\t\u000e\u0002\u0002", + "\u042e\u043d\u0007\u0174\u0002\u0002\u042f\u043d\u0007\u00bb\u0002\u0002", + "\u0430\u043d\t\u000f\u0002\u0002\u0431\u0432\u0007\u0110\u0002\u0002", + "\u0432\u0435\u0007\u016a\u0002\u0002\u0433\u0436\u0005\u01b8\u00dd\u0002", + "\u0434\u0436\u0007\u0174\u0002\u0002\u0435\u0433\u0003\u0002\u0002\u0002", + "\u0435\u0434\u0003\u0002\u0002\u0002\u0436\u0437\u0003\u0002\u0002\u0002", + "\u0437\u0435\u0003\u0002\u0002\u0002\u0437\u0438\u0003\u0002\u0002\u0002", + "\u0438\u0439\u0003\u0002\u0002\u0002\u0439\u043d\u0007\u016d\u0002\u0002", + "\u043a\u043b\u0007\u0119\u0002\u0002\u043b\u043d\u0005\u01b8\u00dd\u0002", + "\u043c\u042a\u0003\u0002\u0002\u0002\u043c\u042d\u0003\u0002\u0002\u0002", + "\u043c\u042f\u0003\u0002\u0002\u0002\u043c\u0430\u0003\u0002\u0002\u0002", + "\u043c\u0431\u0003\u0002\u0002\u0002\u043c\u043a\u0003\u0002\u0002\u0002", + "\u043da\u0003\u0002\u0002\u0002\u043e\u0440\u0007\u0088\u0002\u0002", + "\u043f\u043e\u0003\u0002\u0002\u0002\u043f\u0440\u0003\u0002\u0002\u0002", + "\u0440\u0441\u0003\u0002\u0002\u0002\u0441\u0442\u0007\u0086\u0002\u0002", + "\u0442\u0460\u0005\u01b8\u00dd\u0002\u0443\u0444\u0007\u0137\u0002\u0002", + "\u0444\u0460\u0007\u00e2\u0002\u0002\u0445\u0446\u0007V\u0002\u0002", + "\u0446\u0447\u0007\u001b\u0002\u0002\u0447\u0448\u0007}\u0002\u0002", + "\u0448\u0449\u0007\u016a\u0002\u0002\u0449\u044e\u0005\u01b8\u00dd\u0002", + "\u044a\u044b\u0007\u0157\u0002\u0002\u044b\u044d\u0005\u01b8\u00dd\u0002", + "\u044c\u044a\u0003\u0002\u0002\u0002\u044d\u0450\u0003\u0002\u0002\u0002", + "\u044e\u044c\u0003\u0002\u0002\u0002\u044e\u044f\u0003\u0002\u0002\u0002", + "\u044f\u0451\u0003\u0002\u0002\u0002\u0450\u044e\u0003\u0002\u0002\u0002", + "\u0451\u0452\u0007\u016d\u0002\u0002\u0452\u0460\u0003\u0002\u0002\u0002", + "\u0453\u0455\u0007\u00be\u0002\u0002\u0454\u0453\u0003\u0002\u0002\u0002", + "\u0454\u0455\u0003\u0002\u0002\u0002\u0455\u0456\u0003\u0002\u0002\u0002", + "\u0456\u0460\u0007\u00a9\u0002\u0002\u0457\u0458\u00070\u0002\u0002", + "\u0458\u0460\t\u0010\u0002\u0002\u0459\u045a\u0007L\u0002\u0002\u045a", + "\u0460\u0007\u00c6\u0002\u0002\u045b\u045c\u0007\u0137\u0002\u0002\u045c", + "\u045d\u0007\u00e4\u0002\u0002\u045d\u045e\u0007\u00c5\u0002\u0002\u045e", + "\u0460\u0007Y\u0002\u0002\u045f\u043f\u0003\u0002\u0002\u0002\u045f", + "\u0443\u0003\u0002\u0002\u0002\u045f\u0445\u0003\u0002\u0002\u0002\u045f", + "\u0454\u0003\u0002\u0002\u0002\u045f\u0457\u0003\u0002\u0002\u0002\u045f", + "\u0459\u0003\u0002\u0002\u0002\u045f\u045b\u0003\u0002\u0002\u0002\u0460", + "c\u0003\u0002\u0002\u0002\u0461\u0463\u0007\u0128\u0002\u0002\u0462", + "\u0461\u0003\u0002\u0002\u0002\u0462\u0463\u0003\u0002\u0002\u0002\u0463", + "\u0464\u0003\u0002\u0002\u0002\u0464\u0465\u0007\u00d6\u0002\u0002\u0465", + "\u0466\u0007\u0088\u0002\u0002\u0466\u0467\u0007\u016a\u0002\u0002\u0467", + "\u046c\u0005\u01b8\u00dd\u0002\u0468\u0469\u0007\u0157\u0002\u0002\u0469", + "\u046b\u0005\u01b8\u00dd\u0002\u046a\u0468\u0003\u0002\u0002\u0002\u046b", + "\u046e\u0003\u0002\u0002\u0002\u046c\u046a\u0003\u0002\u0002\u0002\u046c", + "\u046d\u0003\u0002\u0002\u0002\u046d\u046f\u0003\u0002\u0002\u0002\u046e", + "\u046c\u0003\u0002\u0002\u0002\u046f\u0470\u0007\u016d\u0002\u0002\u0470", + "\u0474\u0003\u0002\u0002\u0002\u0471\u0472\u0007\u0137\u0002\u0002\u0472", + "\u0474\u0007@\u0002\u0002\u0473\u0462\u0003\u0002\u0002\u0002\u0473", + "\u0471\u0003\u0002\u0002\u0002\u0474e\u0003\u0002\u0002\u0002\u0475", + "\u047a\u0005h5\u0002\u0476\u0477\u0007\u0111\u0002\u0002\u0477\u0478", + "\u0007\u000b\u0002\u0002\u0478\u047a\u0005\u01b8\u00dd\u0002\u0479\u0475", + "\u0003\u0002\u0002\u0002\u0479\u0476\u0003\u0002\u0002\u0002\u047ag", + "\u0003\u0002\u0002\u0002\u047b\u047c\u0007\u00ee\u0002\u0002\u047c\u047d", + "\u0007r\u0002\u0002\u047d\u0481\u0007N\u0002\u0002\u047e\u0480\u0005", + "j6\u0002\u047f\u047e\u0003\u0002\u0002\u0002\u0480\u0483\u0003\u0002", + "\u0002\u0002\u0481\u047f\u0003\u0002\u0002\u0002\u0481\u0482\u0003\u0002", + "\u0002\u0002\u0482i\u0003\u0002\u0002\u0002\u0483\u0481\u0003\u0002", + "\u0002\u0002\u0484\u0485\u0007l\u0002\u0002\u0485\u0486\u0007\u011b", + "\u0002\u0002\u0486\u0487\u0007\u001b\u0002\u0002\u0487\u048b\u0005\u0180", + "\u00c1\u0002\u0488\u0489\u0007a\u0002\u0002\u0489\u048a\u0007\u001b", + "\u0002\u0002\u048a\u048c\u0005\u0180\u00c1\u0002\u048b\u0488\u0003\u0002", + "\u0002\u0002\u048b\u048c\u0003\u0002\u0002\u0002\u048c\u04a0\u0003\u0002", + "\u0002\u0002\u048d\u048e\u0007+\u0002\u0002\u048e\u048f\u0007\u0098", + "\u0002\u0002\u048f\u0490\u0007\u011b\u0002\u0002\u0490\u0491\u0007\u001b", + "\u0002\u0002\u0491\u04a0\u0005\u0180\u00c1\u0002\u0492\u0493\u0007\u00ac", + "\u0002\u0002\u0493\u0494\u0007\u009c\u0002\u0002\u0494\u0495\u0007\u011b", + "\u0002\u0002\u0495\u0496\u0007\u001b\u0002\u0002\u0496\u04a0\u0005\u0180", + "\u00c1\u0002\u0497\u0498\u0007\u00a2\u0002\u0002\u0498\u0499\u0007\u011b", + "\u0002\u0002\u0499\u049a\u0007\u001b\u0002\u0002\u049a\u04a0\u0005\u0180", + "\u00c1\u0002\u049b\u049c\u0007\u00c0\u0002\u0002\u049c\u049d\u0007J", + "\u0002\u0002\u049d\u049e\u0007\u000b\u0002\u0002\u049e\u04a0\u0005\u0180", + "\u00c1\u0002\u049f\u0484\u0003\u0002\u0002\u0002\u049f\u048d\u0003\u0002", + "\u0002\u0002\u049f\u0492\u0003\u0002\u0002\u0002\u049f\u0497\u0003\u0002", + "\u0002\u0002\u049f\u049b\u0003\u0002\u0002\u0002\u04a0k\u0003\u0002", + "\u0002\u0002\u04a1\u04a2\u0007\u00c5\u0002\u0002\u04a2\u04a6\u0005\u01b8", + "\u00dd\u0002\u04a3\u04a4\u0007\u011c\u0002\u0002\u04a4\u04a6\u0005\u01b8", + "\u00dd\u0002\u04a5\u04a1\u0003\u0002\u0002\u0002\u04a5\u04a3\u0003\u0002", + "\u0002\u0002\u04a6m\u0003\u0002\u0002\u0002\u04a7\u04a9\u0007\u000f", + "\u0002\u0002\u04a8\u04aa\u0007\u015c\u0002\u0002\u04a9\u04a8\u0003\u0002", + "\u0002\u0002\u04a9\u04aa\u0003\u0002\u0002\u0002\u04aa\u04ab\u0003\u0002", + "\u0002\u0002\u04ab\u04c3\u0005\u0180\u00c1\u0002\u04ac\u04ae\u0007-", + "\u0002\u0002\u04ad\u04af\u0007\u015c\u0002\u0002\u04ae\u04ad\u0003\u0002", + "\u0002\u0002\u04ae\u04af\u0003\u0002\u0002\u0002\u04af\u04b0\u0003\u0002", + "\u0002\u0002\u04b0\u04c3\u0005\u0180\u00c1\u0002\u04b1\u04b3\u0007H", + "\u0002\u0002\u04b2\u04b1\u0003\u0002\u0002\u0002\u04b2\u04b3\u0003\u0002", + "\u0002\u0002\u04b3\u04b7\u0003\u0002\u0002\u0002\u04b4\u04b5\u0007$", + "\u0002\u0002\u04b5\u04b8\u0007\u00fd\u0002\u0002\u04b6\u04b8\u0007%", + "\u0002\u0002\u04b7\u04b4\u0003\u0002\u0002\u0002\u04b7\u04b6\u0003\u0002", + "\u0002\u0002\u04b8\u04ba\u0003\u0002\u0002\u0002\u04b9\u04bb\u0007\u015c", + "\u0002\u0002\u04ba\u04b9\u0003\u0002\u0002\u0002\u04ba\u04bb\u0003\u0002", + "\u0002\u0002\u04bb\u04bc\u0003\u0002\u0002\u0002\u04bc\u04c3\u0005\u0180", + "\u00c1\u0002\u04bd\u04bf\u0007`\u0002\u0002\u04be\u04c0\u0007\u015c", + "\u0002\u0002\u04bf\u04be\u0003\u0002\u0002\u0002\u04bf\u04c0\u0003\u0002", + "\u0002\u0002\u04c0\u04c1\u0003\u0002\u0002\u0002\u04c1\u04c3\u0005\u0180", + "\u00c1\u0002\u04c2\u04a7\u0003\u0002\u0002\u0002\u04c2\u04ac\u0003\u0002", + "\u0002\u0002\u04c2\u04b2\u0003\u0002\u0002\u0002\u04c2\u04bd\u0003\u0002", + "\u0002\u0002\u04c3o\u0003\u0002\u0002\u0002\u04c4\u04c5\u0007\u0007", + "\u0002\u0002\u04c5\u04c6\u0007\u0118\u0002\u0002\u04c6\u04c7\u0005\u014a", + "\u00a6\u0002\u04c7\u04c8\u0005r:\u0002\u04c8q\u0003\u0002\u0002\u0002", + "\u04c9\u04ca\u0005t;\u0002\u04cas\u0003\u0002\u0002\u0002\u04cb\u04ce", + "\u0007\u0004\u0002\u0002\u04cc\u04cd\u00073\u0002\u0002\u04cd\u04cf", + "\u0005\u01b8\u00dd\u0002\u04ce\u04cc\u0003\u0002\u0002\u0002\u04ce\u04cf", + "\u0003\u0002\u0002\u0002\u04cf\u04d0\u0003\u0002\u0002\u0002\u04d0\u04d1", + "\u0005v<\u0002\u04d1u\u0003\u0002\u0002\u0002\u04d2\u04d3\u0007\u00d6", + "\u0002\u0002\u04d3\u04d5\u0007\u009b\u0002\u0002\u04d4\u04d6\u0007(", + "\u0002\u0002\u04d5\u04d4\u0003\u0002\u0002\u0002\u04d5\u04d6\u0003\u0002", + "\u0002\u0002\u04d6\u04d7\u0003\u0002\u0002\u0002\u04d7\u04d8\u0007\u016a", + "\u0002\u0002\u04d8\u04da\u0005\u01b8\u00dd\u0002\u04d9\u04db\t\t\u0002", + "\u0002\u04da\u04d9\u0003\u0002\u0002\u0002\u04da\u04db\u0003\u0002\u0002", + "\u0002\u04db\u04e3\u0003\u0002\u0002\u0002\u04dc\u04dd\u0007\u0157\u0002", + "\u0002\u04dd\u04df\u0005\u01b8\u00dd\u0002\u04de\u04e0\t\t\u0002\u0002", + "\u04df\u04de\u0003\u0002\u0002\u0002\u04df\u04e0\u0003\u0002\u0002\u0002", + "\u04e0\u04e2\u0003\u0002\u0002\u0002\u04e1\u04dc\u0003\u0002\u0002\u0002", + "\u04e2\u04e5\u0003\u0002\u0002\u0002\u04e3\u04e1\u0003\u0002\u0002\u0002", + "\u04e3\u04e4\u0003\u0002\u0002\u0002\u04e4\u04e6\u0003\u0002\u0002\u0002", + "\u04e5\u04e3\u0003\u0002\u0002\u0002\u04e6\u04e8\u0007\u016d\u0002\u0002", + "\u04e7\u04e9\u0007^\u0002\u0002\u04e8\u04e7\u0003\u0002\u0002\u0002", + "\u04e8\u04e9\u0003\u0002\u0002\u0002\u04e9\u04eb\u0003\u0002\u0002\u0002", + "\u04ea\u04ec\u0005\u00eex\u0002\u04eb\u04ea\u0003\u0002\u0002\u0002", + "\u04eb\u04ec\u0003\u0002\u0002\u0002\u04ec\u0511\u0003\u0002\u0002\u0002", + "\u04ed\u04ee\u0007q\u0002\u0002\u04ee\u04ef\u0007\u009b\u0002\u0002", + "\u04ef\u04f0\u0007\u016a\u0002\u0002\u04f0\u04f5\u0005\u01b8\u00dd\u0002", + "\u04f1\u04f2\u0007\u0157\u0002\u0002\u04f2\u04f4\u0005\u01b8\u00dd\u0002", + "\u04f3\u04f1\u0003\u0002\u0002\u0002\u04f4\u04f7\u0003\u0002\u0002\u0002", + "\u04f5\u04f3\u0003\u0002\u0002\u0002\u04f5\u04f6\u0003\u0002\u0002\u0002", + "\u04f6\u04f8\u0003\u0002\u0002\u0002\u04f7\u04f5\u0003\u0002\u0002\u0002", + "\u04f8\u04f9\u0007\u016d\u0002\u0002\u04f9\u04fa\u0007\u00e0\u0002\u0002", + "\u04fa\u04fb\u0005\u014a\u00a6\u0002\u04fb\u04fc\u0007\u016a\u0002\u0002", + "\u04fc\u0501\u0005\u01b8\u00dd\u0002\u04fd\u04fe\u0007\u0157\u0002\u0002", + "\u04fe\u0500\u0005\u01b8\u00dd\u0002\u04ff\u04fd\u0003\u0002\u0002\u0002", + "\u0500\u0503\u0003\u0002\u0002\u0002\u0501\u04ff\u0003\u0002\u0002\u0002", + "\u0501\u0502\u0003\u0002\u0002\u0002\u0502\u0504\u0003\u0002\u0002\u0002", + "\u0503\u0501\u0003\u0002\u0002\u0002\u0504\u0508\u0007\u016d\u0002\u0002", + "\u0505\u0507\u0005T+\u0002\u0506\u0505\u0003\u0002\u0002\u0002\u0507", + "\u050a\u0003\u0002\u0002\u0002\u0508\u0506\u0003\u0002\u0002\u0002\u0508", + "\u0509\u0003\u0002\u0002\u0002\u0509\u0511\u0003\u0002\u0002\u0002\u050a", + "\u0508\u0003\u0002\u0002\u0002\u050b\u050c\u0007H\u0002\u0002\u050c", + "\u050d\u0005\u0180\u00c1\u0002\u050d\u050e\u0007p\u0002\u0002\u050e", + "\u050f\u0005\u01b8\u00dd\u0002\u050f\u0511\u0003\u0002\u0002\u0002\u0510", + "\u04d2\u0003\u0002\u0002\u0002\u0510\u04ed\u0003\u0002\u0002\u0002\u0510", + "\u050b\u0003\u0002\u0002\u0002\u0511w\u0003\u0002\u0002\u0002\u0512", + "\u0540\u0007#\u0002\u0002\u0513\u0540\u0007\u0014\u0002\u0002\u0514", + "\u0540\u0007\u0015\u0002\u0002\u0515\u0540\u0007\u0016\u0002\u0002\u0516", + "\u0540\u0007\u0017\u0002\u0002\u0517\u0540\u0007\u0018\u0002\u0002\u0518", + "\u0540\u0007A\u0002\u0002\u0519\u0540\u0007B\u0002\u0002\u051a\u0540", + "\u0007E\u0002\u0002\u051b\u0540\u0007F\u0002\u0002\u051c\u051e\u0007", + "X\u0002\u0002\u051d\u051f\u0007\u00d4\u0002\u0002\u051e\u051d\u0003", + "\u0002\u0002\u0002\u051e\u051f\u0003\u0002\u0002\u0002\u051f\u0540\u0003", + "\u0002\u0002\u0002\u0520\u0540\u0007o\u0002\u0002\u0521\u0540\u0007", + "\u008d\u0002\u0002\u0522\u0540\u0007\u008e\u0002\u0002\u0523\u0540\u0007", + "\u008f\u0002\u0002\u0524\u0540\u0007\u0090\u0002\u0002\u0525\u0540\u0007", + "\u0091\u0002\u0002\u0526\u0540\u0007\u00b6\u0002\u0002\u0527\u0540\u0007", + "\u00b8\u0002\u0002\u0528\u0540\u0007\u00c2\u0002\u0002\u0529\u0540\u0007", + "\u00c1\u0002\u0002\u052a\u0540\u0007\u00d3\u0002\u0002\u052b\u0540\u0007", + "\u00df\u0002\u0002\u052c\u052d\u0007\u00e6\u0002\u0002\u052d\u0540\u0007", + "\u0132\u0002\u0002\u052e\u0540\u0007\u0104\u0002\u0002\u052f\u0540\u0007", + "\u0103\u0002\u0002\u0530\u0540\u0007\u0105\u0002\u0002\u0531\u0540\u0007", + "\u0107\u0002\u0002\u0532\u0540\u0007\u0106\u0002\u0002\u0533\u0540\u0007", + "\u0112\u0002\u0002\u0534\u0540\u0007\u0117\u0002\u0002\u0535\u0540\u0007", + "\u011e\u0002\u0002\u0536\u0540\u0007\u011f\u0002\u0002\u0537\u0540\u0007", + "\u0130\u0002\u0002\u0538\u0540\u0007\u0131\u0002\u0002\u0539\u0540\u0007", + "\u013b\u0002\u0002\u053a\u053d\u0005\u01b8\u00dd\u0002\u053b\u053c\u0007", + "\u0167\u0002\u0002\u053c\u053e\t\u0011\u0002\u0002\u053d\u053b\u0003", + "\u0002\u0002\u0002\u053d\u053e\u0003\u0002\u0002\u0002\u053e\u0540\u0003", + "\u0002\u0002\u0002\u053f\u0512\u0003\u0002\u0002\u0002\u053f\u0513\u0003", + "\u0002\u0002\u0002\u053f\u0514\u0003\u0002\u0002\u0002\u053f\u0515\u0003", + "\u0002\u0002\u0002\u053f\u0516\u0003\u0002\u0002\u0002\u053f\u0517\u0003", + "\u0002\u0002\u0002\u053f\u0518\u0003\u0002\u0002\u0002\u053f\u0519\u0003", + "\u0002\u0002\u0002\u053f\u051a\u0003\u0002\u0002\u0002\u053f\u051b\u0003", + "\u0002\u0002\u0002\u053f\u051c\u0003\u0002\u0002\u0002\u053f\u0520\u0003", + "\u0002\u0002\u0002\u053f\u0521\u0003\u0002\u0002\u0002\u053f\u0522\u0003", + "\u0002\u0002\u0002\u053f\u0523\u0003\u0002\u0002\u0002\u053f\u0524\u0003", + "\u0002\u0002\u0002\u053f\u0525\u0003\u0002\u0002\u0002\u053f\u0526\u0003", + "\u0002\u0002\u0002\u053f\u0527\u0003\u0002\u0002\u0002\u053f\u0528\u0003", + "\u0002\u0002\u0002\u053f\u0529\u0003\u0002\u0002\u0002\u053f\u052a\u0003", + "\u0002\u0002\u0002\u053f\u052b\u0003\u0002\u0002\u0002\u053f\u052c\u0003", + "\u0002\u0002\u0002\u053f\u052e\u0003\u0002\u0002\u0002\u053f\u052f\u0003", + "\u0002\u0002\u0002\u053f\u0530\u0003\u0002\u0002\u0002\u053f\u0531\u0003", + "\u0002\u0002\u0002\u053f\u0532\u0003\u0002\u0002\u0002\u053f\u0533\u0003", + "\u0002\u0002\u0002\u053f\u0534\u0003\u0002\u0002\u0002\u053f\u0535\u0003", + "\u0002\u0002\u0002\u053f\u0536\u0003\u0002\u0002\u0002\u053f\u0537\u0003", + "\u0002\u0002\u0002\u053f\u0538\u0003\u0002\u0002\u0002\u053f\u0539\u0003", + "\u0002\u0002\u0002\u053f\u053a\u0003\u0002\u0002\u0002\u0540y\u0003", + "\u0002\u0002\u0002\u0541\u0542\u0007\u016a\u0002\u0002\u0542\u0544\t", + "\u0012\u0002\u0002\u0543\u0545\t\u0013\u0002\u0002\u0544\u0543\u0003", + "\u0002\u0002\u0002\u0544\u0545\u0003\u0002\u0002\u0002\u0545\u0548\u0003", + "\u0002\u0002\u0002\u0546\u0547\u0007\u0157\u0002\u0002\u0547\u0549\u0007", + "\u0174\u0002\u0002\u0548\u0546\u0003\u0002\u0002\u0002\u0548\u0549\u0003", + "\u0002\u0002\u0002\u0549\u054a\u0003\u0002\u0002\u0002\u054a\u054b\u0007", + "\u016d\u0002\u0002\u054b{\u0003\u0002\u0002\u0002\u054c\u054e\u0007", + "\u00be\u0002\u0002\u054d\u054c\u0003\u0002\u0002\u0002\u054d\u054e\u0003", + "\u0002\u0002\u0002\u054e\u054f\u0003\u0002\u0002\u0002\u054f\u0558\u0007", + "\u00c0\u0002\u0002\u0550\u0551\u0007$\u0002\u0002\u0551\u0552\u0007", + "\u00fd\u0002\u0002\u0552\u0558\u0005\u01b8\u00dd\u0002\u0553\u0555\u0007", + "\u00be\u0002\u0002\u0554\u0553\u0003\u0002\u0002\u0002\u0554\u0555\u0003", + "\u0002\u0002\u0002\u0555\u0556\u0003\u0002\u0002\u0002\u0556\u0558\t", + "\u0014\u0002\u0002\u0557\u054d\u0003\u0002\u0002\u0002\u0557\u0550\u0003", + "\u0002\u0002\u0002\u0557\u0554\u0003\u0002\u0002\u0002\u0558}\u0003", + "\u0002\u0002\u0002\u0559\u055b\u0007\u0156\u0002\u0002\u055a\u0559\u0003", + "\u0002\u0002\u0002\u055a\u055b\u0003\u0002\u0002\u0002\u055b\u055c\u0003", + "\u0002\u0002\u0002\u055c\u055d\u0007\u015c\u0002\u0002\u055d\u0566\u0005", + "\u0180\u00c1\u0002\u055e\u0560\u0007\u0137\u0002\u0002\u055f\u055e\u0003", + "\u0002\u0002\u0002\u055f\u0560\u0003\u0002\u0002\u0002\u0560\u0561\u0003", + "\u0002\u0002\u0002\u0561\u0563\u0007H\u0002\u0002\u0562\u0564\u0005", + "\u0180\u00c1\u0002\u0563\u0562\u0003\u0002\u0002\u0002\u0563\u0564\u0003", + "\u0002\u0002\u0002\u0564\u0566\u0003\u0002\u0002\u0002\u0565\u055a\u0003", + "\u0002\u0002\u0002\u0565\u055f\u0003\u0002\u0002\u0002\u0566\u007f\u0003", + "\u0002\u0002\u0002\u0567\u0568\u00078\u0002\u0002\u0568\u056c\t\u0015", + "\u0002\u0002\u0569\u056a\u0007\u0083\u0002\u0002\u056a\u056b\u0007\u00be", + "\u0002\u0002\u056b\u056d\u0007g\u0002\u0002\u056c\u0569\u0003\u0002", + "\u0002\u0002\u056c\u056d\u0003\u0002\u0002\u0002\u056d\u056e\u0003\u0002", + "\u0002\u0002\u056e\u0572\u0005\u0180\u00c1\u0002\u056f\u0571\u0005\u0082", + "B\u0002\u0570\u056f\u0003\u0002\u0002\u0002\u0571\u0574\u0003\u0002", + "\u0002\u0002\u0572\u0570\u0003\u0002\u0002\u0002\u0572\u0573\u0003\u0002", + "\u0002\u0002\u0573\u0081\u0003\u0002\u0002\u0002\u0574\u0572\u0003\u0002", + "\u0002\u0002\u0575\u0576\u0007-\u0002\u0002\u0576\u057a\u0005\u0180", + "\u00c1\u0002\u0577\u0578\u0007\u00a4\u0002\u0002\u0578\u057a\u0005\u0180", + "\u00c1\u0002\u0579\u0575\u0003\u0002\u0002\u0002\u0579\u0577\u0003\u0002", + "\u0002\u0002\u057a\u0083\u0003\u0002\u0002\u0002\u057b\u0583\u0007\u0007", + "\u0002\u0002\u057c\u057f\u00078\u0002\u0002\u057d\u057e\u0007\u00c8", + "\u0002\u0002\u057e\u0580\u0007\u00e2\u0002\u0002\u057f\u057d\u0003\u0002", + "\u0002\u0002\u057f\u0580\u0003\u0002\u0002\u0002\u0580\u0583\u0003\u0002", + "\u0002\u0002\u0581\u0583\u0007\u00e2\u0002\u0002\u0582\u057b\u0003\u0002", + "\u0002\u0002\u0582\u057c\u0003\u0002\u0002\u0002\u0582\u0581\u0003\u0002", + "\u0002\u0002\u0582\u0583\u0003\u0002\u0002\u0002\u0583\u0584\u0003\u0002", + "\u0002\u0002\u0584\u0585\u0007v\u0002\u0002\u0585\u0587\u0005\u01b8", + "\u00dd\u0002\u0586\u0588\u0005\u0096L\u0002\u0587\u0586\u0003\u0002", + "\u0002\u0002\u0587\u0588\u0003\u0002\u0002\u0002\u0588\u0589\u0003\u0002", + "\u0002\u0002\u0589\u058b\u0005\u0086D\u0002\u058a\u058c\t\u0016\u0002", + "\u0002\u058b\u058a\u0003\u0002\u0002\u0002\u058b\u058c\u0003\u0002\u0002", + "\u0002\u058c\u058e\u0003\u0002\u0002\u0002\u058d\u058f\u00052\u001a", + "\u0002\u058e\u058d\u0003\u0002\u0002\u0002\u058e\u058f\u0003\u0002\u0002", + "\u0002\u058f\u0590\u0003\u0002\u0002\u0002\u0590\u0591\u0005\b\u0005", + "\u0002\u0591\u0085\u0003\u0002\u0002\u0002\u0592\u0593\t\u0017\u0002", + "\u0002\u0593\u0595\u0005x=\u0002\u0594\u0596\u0005z>\u0002\u0595\u0594", + "\u0003\u0002\u0002\u0002\u0595\u0596\u0003\u0002\u0002\u0002\u0596\u0087", + "\u0003\u0002\u0002\u0002\u0597\u059f\u0007\u0007\u0002\u0002\u0598\u059b", + "\u00078\u0002\u0002\u0599\u059a\u0007\u00c8\u0002\u0002\u059a\u059c", + "\u0007\u00e2\u0002\u0002\u059b\u0599\u0003\u0002\u0002\u0002\u059b\u059c", + "\u0003\u0002\u0002\u0002\u059c\u059f\u0003\u0002\u0002\u0002\u059d\u059f", + "\u0007\u00e2\u0002\u0002\u059e\u0597\u0003\u0002\u0002\u0002\u059e\u0598", + "\u0003\u0002\u0002\u0002\u059e\u059d\u0003\u0002\u0002\u0002\u059e\u059f", + "\u0003\u0002\u0002\u0002\u059f\u05a0\u0003\u0002\u0002\u0002\u05a0\u05a1", + "\u0007\u00cf\u0002\u0002\u05a1\u05a2\u0005\u01b8\u00dd\u0002\u05a2\u05a3", + "\t\u0016\u0002\u0002\u05a3\u05a4\u0005\u008aF\u0002\u05a4\u05a8\u0007", + "_\u0002\u0002\u05a5\u05a6\u0005\u01b8\u00dd\u0002\u05a6\u05a7\u0007", + "\u016f\u0002\u0002\u05a7\u05a9\u0003\u0002\u0002\u0002\u05a8\u05a5\u0003", + "\u0002\u0002\u0002\u05a8\u05a9\u0003\u0002\u0002\u0002\u05a9\u0089\u0003", + "\u0002\u0002\u0002\u05aa\u05ab\u0005\u008cG\u0002\u05ab\u05b1\u0007", + "\u016f\u0002\u0002\u05ac\u05ad\u0005\u008cG\u0002\u05ad\u05ae\u0007", + "\u016f\u0002\u0002\u05ae\u05b0\u0003\u0002\u0002\u0002\u05af\u05ac\u0003", + "\u0002\u0002\u0002\u05b0\u05b3\u0003\u0002\u0002\u0002\u05b1\u05af\u0003", + "\u0002\u0002\u0002\u05b1\u05b2\u0003\u0002\u0002\u0002\u05b2\u008b\u0003", + "\u0002\u0002\u0002\u05b3\u05b1\u0003\u0002\u0002\u0002\u05b4\u05c2\u0005", + "4\u001b\u0002\u05b5\u05b6\u0007v\u0002\u0002\u05b6\u05b8\u0005\u01b8", + "\u00dd\u0002\u05b7\u05b9\u0005\u0096L\u0002\u05b8\u05b7\u0003\u0002", + "\u0002\u0002\u05b8\u05b9\u0003\u0002\u0002\u0002\u05b9\u05ba\u0003\u0002", + "\u0002\u0002\u05ba\u05bb\u0005\u0086D\u0002\u05bb\u05c2\u0003\u0002", + "\u0002\u0002\u05bc\u05bd\t\u0018\u0002\u0002\u05bd\u05bf\u0005\u01b8", + "\u00dd\u0002\u05be\u05c0\u0005\u0096L\u0002\u05bf\u05be\u0003\u0002", + "\u0002\u0002\u05bf\u05c0\u0003\u0002\u0002\u0002\u05c0\u05c2\u0003\u0002", + "\u0002\u0002\u05c1\u05b4\u0003\u0002\u0002\u0002\u05c1\u05b5\u0003\u0002", + "\u0002\u0002\u05c1\u05bc\u0003\u0002\u0002\u0002\u05c2\u008d\u0003\u0002", + "\u0002\u0002\u05c3\u05cb\u0007\u0007\u0002\u0002\u05c4\u05c7\u00078", + "\u0002\u0002\u05c5\u05c6\u0007\u00c8\u0002\u0002\u05c6\u05c8\u0007\u00e2", + "\u0002\u0002\u05c7\u05c5\u0003\u0002\u0002\u0002\u05c7\u05c8\u0003\u0002", + "\u0002\u0002\u05c8\u05cb\u0003\u0002\u0002\u0002\u05c9\u05cb\u0007\u00e2", + "\u0002\u0002\u05ca\u05c3\u0003\u0002\u0002\u0002\u05ca\u05c4\u0003\u0002", + "\u0002\u0002\u05ca\u05c9\u0003\u0002\u0002\u0002\u05ca\u05cb\u0003\u0002", + "\u0002\u0002\u05cb\u05cc\u0003\u0002\u0002\u0002\u05cc\u05cd\u0007\u00cf", + "\u0002\u0002\u05cd\u05ce\u0007\u0019\u0002\u0002\u05ce\u05cf\u0005\u01b8", + "\u00dd\u0002\u05cf\u05d0\t\u0016\u0002\u0002\u05d0\u05d1\u0005\u0090", + "I\u0002\u05d1\u05d5\u0007_\u0002\u0002\u05d2\u05d3\u0005\u01b8\u00dd", + "\u0002\u05d3\u05d4\u0007\u016f\u0002\u0002\u05d4\u05d6\u0003\u0002\u0002", + "\u0002\u05d5\u05d2\u0003\u0002\u0002\u0002\u05d5\u05d6\u0003\u0002\u0002", + "\u0002\u05d6\u008f\u0003\u0002\u0002\u0002\u05d7\u05d8\u0005\u0092J", + "\u0002\u05d8\u05de\u0007\u016f\u0002\u0002\u05d9\u05da\u0005\u0092J", + "\u0002\u05da\u05db\u0007\u016f\u0002\u0002\u05db\u05dd\u0003\u0002\u0002", + "\u0002\u05dc\u05d9\u0003\u0002\u0002\u0002\u05dd\u05e0\u0003\u0002\u0002", + "\u0002\u05de\u05dc\u0003\u0002\u0002\u0002\u05de\u05df\u0003\u0002\u0002", + "\u0002\u05df\u0091\u0003\u0002\u0002\u0002\u05e0\u05de\u0003\u0002\u0002", + "\u0002\u05e1\u05e5\u00054\u001b\u0002\u05e2\u05e5\u0005\u0084C\u0002", + "\u05e3\u05e5\u0005\u0094K\u0002\u05e4\u05e1\u0003\u0002\u0002\u0002", + "\u05e4\u05e2\u0003\u0002\u0002\u0002\u05e4\u05e3\u0003\u0002\u0002\u0002", + "\u05e5\u0093\u0003\u0002\u0002\u0002\u05e6\u05ee\u0007\u0007\u0002\u0002", + "\u05e7\u05ea\u00078\u0002\u0002\u05e8\u05e9\u0007\u00c8\u0002\u0002", + "\u05e9\u05eb\u0007\u00e2\u0002\u0002\u05ea\u05e8\u0003\u0002\u0002\u0002", + "\u05ea\u05eb\u0003\u0002\u0002\u0002\u05eb\u05ee\u0003\u0002\u0002\u0002", + "\u05ec\u05ee\u0007\u00e2\u0002\u0002\u05ed\u05e6\u0003\u0002\u0002\u0002", + "\u05ed\u05e7\u0003\u0002\u0002\u0002\u05ed\u05ec\u0003\u0002\u0002\u0002", + "\u05ed\u05ee\u0003\u0002\u0002\u0002\u05ee\u05ef\u0003\u0002\u0002\u0002", + "\u05ef\u05f0\t\u0018\u0002\u0002\u05f0\u05f2\u0005\u01b8\u00dd\u0002", + "\u05f1\u05f3\u0005\u0096L\u0002\u05f2\u05f1\u0003\u0002\u0002\u0002", + "\u05f2\u05f3\u0003\u0002\u0002\u0002\u05f3\u05f5\u0003\u0002\u0002\u0002", + "\u05f4\u05f6\u0005\u009aN\u0002\u05f5\u05f4\u0003\u0002\u0002\u0002", + "\u05f5\u05f6\u0003\u0002\u0002\u0002\u05f6\u05f8\u0003\u0002\u0002\u0002", + "\u05f7\u05f9\t\u0016\u0002\u0002\u05f8\u05f7\u0003\u0002\u0002\u0002", + "\u05f8\u05f9\u0003\u0002\u0002\u0002\u05f9\u05fb\u0003\u0002\u0002\u0002", + "\u05fa\u05fc\u00052\u001a\u0002\u05fb\u05fa\u0003\u0002\u0002\u0002", + "\u05fb\u05fc\u0003\u0002\u0002\u0002\u05fc\u05fe\u0003\u0002\u0002\u0002", + "\u05fd\u05ff\u0005\u0116\u008c\u0002\u05fe\u05fd\u0003\u0002\u0002\u0002", + "\u05fe\u05ff\u0003\u0002\u0002\u0002\u05ff\u0600\u0003\u0002\u0002\u0002", + "\u0600\u0604\u0005\f\u0007\u0002\u0601\u0602\u0005\u01b8\u00dd\u0002", + "\u0602\u0603\u0007\u016f\u0002\u0002\u0603\u0605\u0003\u0002\u0002\u0002", + "\u0604\u0601\u0003\u0002\u0002\u0002\u0604\u0605\u0003\u0002\u0002\u0002", + "\u0605\u0095\u0003\u0002\u0002\u0002\u0606\u0607\u0007\u016a\u0002\u0002", + "\u0607\u061d\u0007\u016d\u0002\u0002\u0608\u0609\u0007\u016a\u0002\u0002", + "\u0609\u060e\u0005\u0098M\u0002\u060a\u060b\u0007\u0157\u0002\u0002", + "\u060b\u060d\u0005\u0098M\u0002\u060c\u060a\u0003\u0002\u0002\u0002", + "\u060d\u0610\u0003\u0002\u0002\u0002\u060e\u060c\u0003\u0002\u0002\u0002", + "\u060e\u060f\u0003\u0002\u0002\u0002\u060f\u0611\u0003\u0002\u0002\u0002", + "\u0610\u060e\u0003\u0002\u0002\u0002\u0611\u0612\u0007\u016d\u0002\u0002", + "\u0612\u061d\u0003\u0002\u0002\u0002\u0613\u0614\u0006L\u0004\u0002", + "\u0614\u0619\u0005\u0098M\u0002\u0615\u0616\u0007\u0157\u0002\u0002", + "\u0616\u0618\u0005\u0098M\u0002\u0617\u0615\u0003\u0002\u0002\u0002", + "\u0618\u061b\u0003\u0002\u0002\u0002\u0619\u0617\u0003\u0002\u0002\u0002", + "\u0619\u061a\u0003\u0002\u0002\u0002\u061a\u061d\u0003\u0002\u0002\u0002", + "\u061b\u0619\u0003\u0002\u0002\u0002\u061c\u0606\u0003\u0002\u0002\u0002", + "\u061c\u0608\u0003\u0002\u0002\u0002\u061c\u0613\u0003\u0002\u0002\u0002", + "\u061d\u0097\u0003\u0002\u0002\u0002\u061e\u0624\u0007\u0086\u0002\u0002", + "\u061f\u0624\u0007\u00ca\u0002\u0002\u0620\u0624\u0007\u008b\u0002\u0002", + "\u0621\u0622\u0007\u0086\u0002\u0002\u0622\u0624\u0007\u00ca\u0002\u0002", + "\u0623\u061e\u0003\u0002\u0002\u0002\u0623\u061f\u0003\u0002\u0002\u0002", + "\u0623\u0620\u0003\u0002\u0002\u0002\u0623\u0621\u0003\u0002\u0002\u0002", + "\u0623\u0624\u0003\u0002\u0002\u0002\u0624\u0625\u0003\u0002\u0002\u0002", + "\u0625\u0626\u0005\u01b8\u00dd\u0002\u0626\u0628\u0005x=\u0002\u0627", + "\u0629\u0005z>\u0002\u0628\u0627\u0003\u0002\u0002\u0002\u0628\u0629", + "\u0003\u0002\u0002\u0002\u0629\u062d\u0003\u0002\u0002\u0002\u062a\u062c", + "\u0005|?\u0002\u062b\u062a\u0003\u0002\u0002\u0002\u062c\u062f\u0003", + "\u0002\u0002\u0002\u062d\u062b\u0003\u0002\u0002\u0002\u062d\u062e\u0003", + "\u0002\u0002\u0002\u062e\u0631\u0003\u0002\u0002\u0002\u062f\u062d\u0003", + "\u0002\u0002\u0002\u0630\u0632\u0005~@\u0002\u0631\u0630\u0003\u0002", + "\u0002\u0002\u0631\u0632\u0003\u0002\u0002\u0002\u0632\u0649\u0003\u0002", + "\u0002\u0002\u0633\u0639\u0005\u01b8\u00dd\u0002\u0634\u063a\u0007\u0086", + "\u0002\u0002\u0635\u063a\u0007\u00ca\u0002\u0002\u0636\u063a\u0007\u008b", + "\u0002\u0002\u0637\u0638\u0007\u0086\u0002\u0002\u0638\u063a\u0007\u00ca", + "\u0002\u0002\u0639\u0634\u0003\u0002\u0002\u0002\u0639\u0635\u0003\u0002", + "\u0002\u0002\u0639\u0636\u0003\u0002\u0002\u0002\u0639\u0637\u0003\u0002", + "\u0002\u0002\u0639\u063a\u0003\u0002\u0002\u0002\u063a\u063b\u0003\u0002", + "\u0002\u0002\u063b\u063d\u0005x=\u0002\u063c\u063e\u0005z>\u0002\u063d", + "\u063c\u0003\u0002\u0002\u0002\u063d\u063e\u0003\u0002\u0002\u0002\u063e", + "\u0642\u0003\u0002\u0002\u0002\u063f\u0641\u0005|?\u0002\u0640\u063f", + "\u0003\u0002\u0002\u0002\u0641\u0644\u0003\u0002\u0002\u0002\u0642\u0640", + "\u0003\u0002\u0002\u0002\u0642\u0643\u0003\u0002\u0002\u0002\u0643\u0646", + "\u0003\u0002\u0002\u0002\u0644\u0642\u0003\u0002\u0002\u0002\u0645\u0647", + "\u0005~@\u0002\u0646\u0645\u0003\u0002\u0002\u0002\u0646\u0647\u0003", + "\u0002\u0002\u0002\u0647\u0649\u0003\u0002\u0002\u0002\u0648\u0623\u0003", + "\u0002\u0002\u0002\u0648\u0633\u0003\u0002\u0002\u0002\u0649\u0099\u0003", + "\u0002\u0002\u0002\u064a\u064c\u0005\u009cO\u0002\u064b\u064a\u0003", + "\u0002\u0002\u0002\u064c\u064d\u0003\u0002\u0002\u0002\u064d\u064b\u0003", + "\u0002\u0002\u0002\u064d\u064e\u0003\u0002\u0002\u0002\u064e\u009b\u0003", + "\u0002\u0002\u0002\u064f\u0650\u0007\u009d\u0002\u0002\u0650\u065b\u0007", + "\u0108\u0002\u0002\u0651\u0652\u0007\u0108\u0002\u0002\u0652\u0653\u0007", + "\u00f9\u0002\u0002\u0653\u065b\t\u0019\u0002\u0002\u0654\u0656\u0007", + "Z\u0002\u0002\u0655\u0654\u0003\u0002\u0002\u0002\u0655\u0656\u0003", + "\u0002\u0002\u0002\u0656\u0657\u0003\u0002\u0002\u0002\u0657\u0658\u0007", + "\u00e5\u0002\u0002\u0658\u0659\u0007\u0100\u0002\u0002\u0659\u065b\u0007", + "\u0174\u0002\u0002\u065a\u064f\u0003\u0002\u0002\u0002\u065a\u0651\u0003", + "\u0002\u0002\u0002\u065a\u0655\u0003\u0002\u0002\u0002\u065b\u009d\u0003", + "\u0002\u0002\u0002\u065c\u065d\u0007Y\u0002\u0002\u065d\u0660\u0007", + "\u0118\u0002\u0002\u065e\u065f\u0007\u0083\u0002\u0002\u065f\u0661\u0007", + "g\u0002\u0002\u0660\u065e\u0003\u0002\u0002\u0002\u0660\u0661\u0003", + "\u0002\u0002\u0002\u0661\u0662\u0003\u0002\u0002\u0002\u0662\u066b\u0005", + "\u014a\u00a6\u0002\u0663\u0664\u0007Y\u0002\u0002\u0664\u0667\t\u0015", + "\u0002\u0002\u0665\u0666\u0007\u0083\u0002\u0002\u0666\u0668\u0007g", + "\u0002\u0002\u0667\u0665\u0003\u0002\u0002\u0002\u0667\u0668\u0003\u0002", + "\u0002\u0002\u0668\u0669\u0003\u0002\u0002\u0002\u0669\u066b\u0005\u0180", + "\u00c1\u0002\u066a\u065c\u0003\u0002\u0002\u0002\u066a\u0663\u0003\u0002", + "\u0002\u0002\u066b\u009f\u0003\u0002\u0002\u0002\u066c\u066d\u0007_", + "\u0002\u0002\u066d\u066e\u0007\u0123\u0002\u0002\u066e\u00a1\u0003\u0002", + "\u0002\u0002\u066f\u0671\t\u001a\u0002\u0002\u0670\u0672\u0007\u0085", + "\u0002\u0002\u0671\u0670\u0003\u0002\u0002\u0002\u0671\u0672\u0003\u0002", + "\u0002\u0002\u0672\u0673\u0003\u0002\u0002\u0002\u0673\u0679\u0005\u0180", + "\u00c1\u0002\u0674\u0675\u0007\u016a\u0002\u0002\u0675\u0676\u0005\u01a0", + "\u00d1\u0002\u0676\u0677\u0007\u016d\u0002\u0002\u0677\u067a\u0003\u0002", + "\u0002\u0002\u0678\u067a\u0005\u01a0\u00d1\u0002\u0679\u0674\u0003\u0002", + "\u0002\u0002\u0679\u0678\u0003\u0002\u0002\u0002\u0679\u067a\u0003\u0002", + "\u0002\u0002\u067a\u0684\u0003\u0002\u0002\u0002\u067b\u067c\u0007\u0094", + "\u0002\u0002\u067c\u0681\u0007\u0171\u0002\u0002\u067d\u067e\u0007\u0157", + "\u0002\u0002\u067e\u0680\u0007\u0171\u0002\u0002\u067f\u067d\u0003\u0002", + "\u0002\u0002\u0680\u0683\u0003\u0002\u0002\u0002\u0681\u067f\u0003\u0002", + "\u0002\u0002\u0681\u0682\u0003\u0002\u0002\u0002\u0682\u0685\u0003\u0002", + "\u0002\u0002\u0683\u0681\u0003\u0002\u0002\u0002\u0684\u067b\u0003\u0002", + "\u0002\u0002\u0684\u0685\u0003\u0002\u0002\u0002\u0685\u0687\u0003\u0002", + "\u0002\u0002\u0686\u0688\u0005\u0118\u008d\u0002\u0687\u0686\u0003\u0002", + "\u0002\u0002\u0687\u0688\u0003\u0002\u0002\u0002\u0688\u00a3\u0003\u0002", + "\u0002\u0002\u0689\u068d\u0005\u00a6T\u0002\u068a\u068d\u0005\u00a8", + "U\u0002\u068b\u068d\u0005\u00aaV\u0002\u068c\u0689\u0003\u0002\u0002", + "\u0002\u068c\u068a\u0003\u0002\u0002\u0002\u068c\u068b\u0003\u0002\u0002", + "\u0002\u068d\u00a5\u0003\u0002\u0002\u0002\u068e\u068f\u0007\u0083\u0002", + "\u0002\u068f\u0690\u0005\u0170\u00b9\u0002\u0690\u0691\u0007\u011d\u0002", + "\u0002\u0691\u0695\u0005\u0004\u0003\u0002\u0692\u0694\u0005\u00acW", + "\u0002\u0693\u0692\u0003\u0002\u0002\u0002\u0694\u0697\u0003\u0002\u0002", + "\u0002\u0695\u0693\u0003\u0002\u0002\u0002\u0695\u0696\u0003\u0002\u0002", + "\u0002\u0696\u0699\u0003\u0002\u0002\u0002\u0697\u0695\u0003\u0002\u0002", + "\u0002\u0698\u069a\u0005\u00aeX\u0002\u0699\u0698\u0003\u0002\u0002", + "\u0002\u0699\u069a\u0003\u0002\u0002\u0002\u069a\u069b\u0003\u0002\u0002", + "\u0002\u069b\u069c\u0007_\u0002\u0002\u069c\u069d\u0007\u0083\u0002", + "\u0002\u069d\u00a7\u0003\u0002\u0002\u0002\u069e\u069f\u0007\u0083\u0002", + "\u0002\u069f\u06a0\u0005\u0170\u00b9\u0002\u06a0\u06a3\u0005\b\u0005", + "\u0002\u06a1\u06a2\u0007[\u0002\u0002\u06a2\u06a4\u0005\b\u0005\u0002", + "\u06a3\u06a1\u0003\u0002\u0002\u0002\u06a3\u06a4\u0003\u0002\u0002\u0002", + "\u06a4\u00a9\u0003\u0002\u0002\u0002\u06a5\u06a6\u0007\u015a\u0002\u0002", + "\u06a6\u06a7\u0007\u0083\u0002\u0002\u06a7\u06a8\u0005\u0170\u00b9\u0002", + "\u06a8\u06a9\u0007\u011d\u0002\u0002\u06a9\u06aa\u0005\b\u0005\u0002", + "\u06aa\u00ab\u0003\u0002\u0002\u0002\u06ab\u06ac\t\u001b\u0002\u0002", + "\u06ac\u06ad\u0005\u0170\u00b9\u0002\u06ad\u06ae\u0007\u011d\u0002\u0002", + "\u06ae\u06af\u0005\u0004\u0003\u0002\u06af\u00ad\u0003\u0002\u0002\u0002", + "\u06b0\u06b1\u0007[\u0002\u0002\u06b1\u06b2\u0005\u0004\u0003\u0002", + "\u06b2\u00af\u0003\u0002\u0002\u0002\u06b3\u06b6\u0007\u0087\u0002\u0002", + "\u06b4\u06b7\u0005\u01b2\u00da\u0002\u06b5\u06b7\u0005\u0180\u00c1\u0002", + "\u06b6\u06b4\u0003\u0002\u0002\u0002\u06b6\u06b5\u0003\u0002\u0002\u0002", + "\u06b7\u00b1\u0003\u0002\u0002\u0002\u06b8\u06bf\u0007\u008c\u0002\u0002", + "\u06b9\u06ba\u0007\u00cd\u0002\u0002\u06ba\u06c0\u0007\u0118\u0002\u0002", + "\u06bb\u06bd\u0007\u0094\u0002\u0002\u06bc\u06be\u0007\u0118\u0002\u0002", + "\u06bd\u06bc\u0003\u0002\u0002\u0002\u06bd\u06be\u0003\u0002\u0002\u0002", + "\u06be\u06c0\u0003\u0002\u0002\u0002\u06bf\u06b9\u0003\u0002\u0002\u0002", + "\u06bf\u06bb\u0003\u0002\u0002\u0002\u06c0\u06c1\u0003\u0002\u0002\u0002", + "\u06c1\u06c3\u0005\u014a\u00a6\u0002\u06c2\u06c4\u0005\u00b4[\u0002", + "\u06c3\u06c2\u0003\u0002\u0002\u0002\u06c3\u06c4\u0003\u0002\u0002\u0002", + "\u06c4\u06c7\u0003\u0002\u0002\u0002\u06c5\u06c8\u0005\u011a\u008e\u0002", + "\u06c6\u06c8\u0005\u00b6\\\u0002\u06c7\u06c5\u0003\u0002\u0002\u0002", + "\u06c7\u06c6\u0003\u0002\u0002\u0002\u06c8\u00b3\u0003\u0002\u0002\u0002", + "\u06c9\u06ca\u0007\u016a\u0002\u0002\u06ca\u06cf\u0005\u01b8\u00dd\u0002", + "\u06cb\u06cc\u0007\u0157\u0002\u0002\u06cc\u06ce\u0005\u01b8\u00dd\u0002", + "\u06cd\u06cb\u0003\u0002\u0002\u0002\u06ce\u06d1\u0003\u0002\u0002\u0002", + "\u06cf\u06cd\u0003\u0002\u0002\u0002\u06cf\u06d0\u0003\u0002\u0002\u0002", + "\u06d0\u06d2\u0003\u0002\u0002\u0002\u06d1\u06cf\u0003\u0002\u0002\u0002", + "\u06d2\u06d3\u0007\u016d\u0002\u0002\u06d3\u00b5\u0003\u0002\u0002\u0002", + "\u06d4\u06d5\u0007\u012e\u0002\u0002\u06d5\u06da\u0005\u00b8]\u0002", + "\u06d6\u06d7\u0007\u0157\u0002\u0002\u06d7\u06d9\u0005\u00b8]\u0002", + "\u06d8\u06d6\u0003\u0002\u0002\u0002\u06d9\u06dc\u0003\u0002\u0002\u0002", + "\u06da\u06d8\u0003\u0002\u0002\u0002\u06da\u06db\u0003\u0002\u0002\u0002", + "\u06db\u00b7\u0003\u0002\u0002\u0002\u06dc\u06da\u0003\u0002\u0002\u0002", + "\u06dd\u06de\u0007\u016a\u0002\u0002\u06de\u06e3\u0005\u0180\u00c1\u0002", + "\u06df\u06e0\u0007\u0157\u0002\u0002\u06e0\u06e2\u0005\u0180\u00c1\u0002", + "\u06e1\u06df\u0003\u0002\u0002\u0002\u06e2\u06e5\u0003\u0002\u0002\u0002", + "\u06e3\u06e1\u0003\u0002\u0002\u0002\u06e3\u06e4\u0003\u0002\u0002\u0002", + "\u06e4\u06e6\u0003\u0002\u0002\u0002\u06e5\u06e3\u0003\u0002\u0002\u0002", + "\u06e6\u06e7\u0007\u016d\u0002\u0002\u06e7\u00b9\u0003\u0002\u0002\u0002", + "\u06e8\u06e9\u0007\u008c\u0002\u0002\u06e9\u06eb\u0007\u00cd\u0002\u0002", + "\u06ea\u06ec\u0007\u00a3\u0002\u0002\u06eb\u06ea\u0003\u0002\u0002\u0002", + "\u06eb\u06ec\u0003\u0002\u0002\u0002\u06ec\u06ed\u0003\u0002\u0002\u0002", + "\u06ed\u06ee\u0007T\u0002\u0002\u06ee\u06ef\u0005\u01a6\u00d4\u0002", + "\u06ef\u06f0\u0005\u01a4\u00d3\u0002\u06f0\u00bb\u0003\u0002\u0002\u0002", + "\u06f1\u06f3\u0007h\u0002\u0002\u06f2\u06f4\u0007\u0171\u0002\u0002", + "\u06f3\u06f2\u0003\u0002\u0002\u0002\u06f3\u06f4\u0003\u0002\u0002\u0002", + "\u06f4\u06f7\u0003\u0002\u0002\u0002\u06f5\u06f6\u0007\u0134\u0002\u0002", + "\u06f6\u06f8\u0005\u0170\u00b9\u0002\u06f7\u06f5\u0003\u0002\u0002\u0002", + "\u06f7\u06f8\u0003\u0002\u0002\u0002\u06f8\u00bd\u0003\u0002\u0002\u0002", + "\u06f9\u06fa\u0007w\u0002\u0002\u06fa\u06fb\u0007R\u0002\u0002\u06fb", + "\u06fc\u0005\u00c0a\u0002\u06fc\u00bf\u0003\u0002\u0002\u0002\u06fd", + "\u0700\u0005\u00c2b\u0002\u06fe\u0700\u0005\u00c4c\u0002\u06ff\u06fd", + "\u0003\u0002\u0002\u0002\u06ff\u06fe\u0003\u0002\u0002\u0002\u0700\u00c1", + "\u0003\u0002\u0002\u0002\u0701\u0702\u0007e\u0002\u0002\u0702\u0703", + "\u0007\u0174\u0002\u0002\u0703\u0704\u0005\u01b8\u00dd\u0002\u0704\u0705", + "\u0007\u015c\u0002\u0002\u0705\u0706\u0007\u00b1\u0002\u0002\u0706\u00c3", + "\u0003\u0002\u0002\u0002\u0707\u0708\u0005\u01b8\u00dd\u0002\u0708\u0709", + "\u0007\u015c\u0002\u0002\u0709\u070a\u0007\u00f1\u0002\u0002\u070a\u00c5", + "\u0003\u0002\u0002\u0002\u070b\u070c\u0007z\u0002\u0002\u070c\u0711", + "\u0005\u00c8e\u0002\u070d\u070e\u0007\u0157\u0002\u0002\u070e\u0710", + "\u0005\u00c8e\u0002\u070f\u070d\u0003\u0002\u0002\u0002\u0710\u0713", + "\u0003\u0002\u0002\u0002\u0711\u070f\u0003\u0002\u0002\u0002\u0711\u0712", + "\u0003\u0002\u0002\u0002\u0712\u0714\u0003\u0002\u0002\u0002\u0713\u0711", + "\u0003\u0002\u0002\u0002\u0714\u0715\u0007\u0121\u0002\u0002\u0715\u0716", + "\u0007\u00ec\u0002\u0002\u0716\u0717\u0005\u01b8\u00dd\u0002\u0717\u00c7", + "\u0003\u0002\u0002\u0002\u0718\u0719\u0007d\u0002\u0002\u0719\u071a", + "\u0007\u00c5\u0002\u0002\u071a\u071b\u0007\u00d9\u0002\u0002\u071b\u071c", + "\u0005\u01b8\u00dd\u0002\u071c\u00c9\u0003\u0002\u0002\u0002\u071d\u071f", + "\u0007\u009e\u0002\u0002\u071e\u0720\u0007\u0171\u0002\u0002\u071f\u071e", + "\u0003\u0002\u0002\u0002\u071f\u0720\u0003\u0002\u0002\u0002\u0720\u00cb", + "\u0003\u0002\u0002\u0002\u0721\u0722\u0007\u00ac\u0002\u0002\u0722\u0723", + "\u0007\u00c3\u0002\u0002\u0723\u0726\u0005\u0180\u00c1\u0002\u0724\u0725", + "\u0007\u0121\u0002\u0002\u0725\u0727\u0005\u0180\u00c1\u0002\u0726\u0724", + "\u0003\u0002\u0002\u0002\u0726\u0727\u0003\u0002\u0002\u0002\u0727\u072a", + "\u0003\u0002\u0002\u0002\u0728\u0729\u0007\u000e\u0002\u0002\u0729\u072b", + "\u0005\u0180\u00c1\u0002\u072a\u0728\u0003\u0002\u0002\u0002\u072a\u072b", + "\u0003\u0002\u0002\u0002\u072b\u00cd\u0003\u0002\u0002\u0002\u072c\u072d", + "\u0007\u00c7\u0002\u0002\u072d\u0733\u0007\u0171\u0002\u0002\u072e\u0731", + "\u0007p\u0002\u0002\u072f\u0732\u0005\u011a\u008e\u0002\u0730\u0732", + "\u0005\u0180\u00c1\u0002\u0731\u072f\u0003\u0002\u0002\u0002\u0731\u0730", + "\u0003\u0002\u0002\u0002\u0732\u0734\u0003\u0002\u0002\u0002\u0733\u072e", + "\u0003\u0002\u0002\u0002\u0733\u0734\u0003\u0002\u0002\u0002\u0734\u00cf", + "\u0003\u0002\u0002\u0002\u0735\u0737\u0007k\u0002\u0002\u0736\u0738", + "\u0007t\u0002\u0002\u0737\u0736\u0003\u0002\u0002\u0002\u0737\u0738", + "\u0003\u0002\u0002\u0002\u0738\u0739\u0003\u0002\u0002\u0002\u0739\u073a", + "\u0007\u0171\u0002\u0002\u073a\u073b\u0007\u0094\u0002\u0002\u073b\u0740", + "\u0007\u0171\u0002\u0002\u073c\u073d\u0007\u0157\u0002\u0002\u073d\u073f", + "\u0007\u0171\u0002\u0002\u073e\u073c\u0003\u0002\u0002\u0002\u073f\u0742", + "\u0003\u0002\u0002\u0002\u0740\u073e\u0003\u0002\u0002\u0002\u0740\u0741", + "\u0003\u0002\u0002\u0002\u0741\u00d1\u0003\u0002\u0002\u0002\u0742\u0740", + "\u0003\u0002\u0002\u0002\u0743\u0744\u0007*\u0002\u0002\u0744\u0745", + "\t\u001c\u0002\u0002\u0745\u0746\u0007\u00c5\u0002\u0002\u0746\u0748", + "\u0005\u014a\u00a6\u0002\u0747\u0749\u0005\u00d4k\u0002\u0748\u0747", + "\u0003\u0002\u0002\u0002\u0748\u0749\u0003\u0002\u0002\u0002\u0749\u00d3", + "\u0003\u0002\u0002\u0002\u074a\u074b\u0007,\u0002\u0002\u074b\u074c", + "\u0007\u016a\u0002\u0002\u074c\u0751\u0005\u01b8\u00dd\u0002\u074d\u074e", + "\u0007\u0157\u0002\u0002\u074e\u0750\u0005\u01b8\u00dd\u0002\u074f\u074d", + "\u0003\u0002\u0002\u0002\u0750\u0753\u0003\u0002\u0002\u0002\u0751\u074f", + "\u0003\u0002\u0002\u0002\u0751\u0752\u0003\u0002\u0002\u0002\u0752\u0754", + "\u0003\u0002\u0002\u0002\u0753\u0751\u0003\u0002\u0002\u0002\u0754\u0755", + "\u0007\u016d\u0002\u0002\u0755\u00d5\u0003\u0002\u0002\u0002\u0756\u0757", + "\u0007\'\u0002\u0002\u0757\u0758\u0007\u0171\u0002\u0002\u0758\u00d7", + "\u0003\u0002\u0002\u0002\u0759\u075a\u0007)\u0002\u0002\u075a\u075b", + "\t\u001d\u0002\u0002\u075b\u075c\u0005\u00dan\u0002\u075c\u075d\u0007", + "\u0157\u0002\u0002\u075d\u075e\u0005\u00dan\u0002\u075e\u00d9\u0003", + "\u0002\u0002\u0002\u075f\u0761\u0005\u014a\u00a6\u0002\u0760\u0762\u0005", + "\u014c\u00a7\u0002\u0761\u0760\u0003\u0002\u0002\u0002\u0761\u0762\u0003", + "\u0002\u0002\u0002\u0762\u0768\u0003\u0002\u0002\u0002\u0763\u0764\u0007", + "\u016a\u0002\u0002\u0764\u0765\u0005\u011a\u008e\u0002\u0765\u0766\u0007", + "\u016d\u0002\u0002\u0766\u0768\u0003\u0002\u0002\u0002\u0767\u075f\u0003", + "\u0002\u0002\u0002\u0767\u0763\u0003\u0002\u0002\u0002\u0768\u076b\u0003", + "\u0002\u0002\u0002\u0769\u076a\u0007\u000e\u0002\u0002\u076a\u076c\u0005", + "\u01b8\u00dd\u0002\u076b\u0769\u0003\u0002\u0002\u0002\u076b\u076c\u0003", + "\u0002\u0002\u0002\u076c\u00db\u0003\u0002\u0002\u0002\u076d\u076e\u0007", + "5\u0002\u0002\u076e\u076f\u0007t\u0002\u0002\u076f\u0770\u0007\u00a3", + "\u0002\u0002\u0770\u0775\u0005\u00e0q\u0002\u0771\u0772\u0007\u0157", + "\u0002\u0002\u0772\u0774\u0005\u00e0q\u0002\u0773\u0771\u0003\u0002", + "\u0002\u0002\u0774\u0777\u0003\u0002\u0002\u0002\u0775\u0773\u0003\u0002", + "\u0002\u0002\u0775\u0776\u0003\u0002\u0002\u0002\u0776\u0778\u0003\u0002", + "\u0002\u0002\u0777\u0775\u0003\u0002\u0002\u0002\u0778\u0779\u0007\u0121", + "\u0002\u0002\u0779\u077d\u0005\u00e2r\u0002\u077a\u077c\u0005\u00e6", + "t\u0002\u077b\u077a\u0003\u0002\u0002\u0002\u077c\u077f\u0003\u0002", + "\u0002\u0002\u077d\u077b\u0003\u0002\u0002\u0002\u077d\u077e\u0003\u0002", + "\u0002\u0002\u077e\u00dd\u0003\u0002\u0002\u0002\u077f\u077d\u0003\u0002", + "\u0002\u0002\u0780\u0786\u00075\u0002\u0002\u0781\u0787\u0005\u014a", + "\u00a6\u0002\u0782\u0783\u0007\u016a\u0002\u0002\u0783\u0784\u0005\u011a", + "\u008e\u0002\u0784\u0785\u0007\u016d\u0002\u0002\u0785\u0787\u0003\u0002", + "\u0002\u0002\u0786\u0781\u0003\u0002\u0002\u0002\u0786\u0782\u0003\u0002", + "\u0002\u0002\u0787\u0788\u0003\u0002\u0002\u0002\u0788\u078a\u0007\u0121", + "\u0002\u0002\u0789\u078b\u0007\u007f\u0002\u0002\u078a\u0789\u0003\u0002", + "\u0002\u0002\u078a\u078b\u0003\u0002\u0002\u0002\u078b\u078c\u0003\u0002", + "\u0002\u0002\u078c\u0790\u0005\u00e2r\u0002\u078d\u078f\u0005\u00e4", + "s\u0002\u078e\u078d\u0003\u0002\u0002\u0002\u078f\u0792\u0003\u0002", + "\u0002\u0002\u0790\u078e\u0003\u0002\u0002\u0002\u0790\u0791\u0003\u0002", + "\u0002\u0002\u0791\u00df\u0003\u0002\u0002\u0002\u0792\u0790\u0003\u0002", + "\u0002\u0002\u0793\u0796\u0005\u01b2\u00da\u0002\u0794\u0796\u0005\u0180", + "\u00c1\u0002\u0795\u0793\u0003\u0002\u0002\u0002\u0795\u0794\u0003\u0002", + "\u0002\u0002\u0796\u00e1\u0003\u0002\u0002\u0002\u0797\u079a\u0005\u01b2", + "\u00da\u0002\u0798\u079a\u0005\u0180\u00c1\u0002\u0799\u0797\u0003\u0002", + "\u0002\u0002\u0799\u0798\u0003\u0002\u0002\u0002\u079a\u00e3\u0003\u0002", + "\u0002\u0002\u079b\u079c\u0007\u000e\u0002\u0002\u079c\u07a4\u0005\u01b8", + "\u00dd\u0002\u079d\u079e\u0007\u0011\u0002\u0002\u079e\u07a4\u0005\u0180", + "\u00c1\u0002\u079f\u07a0\u0007O\u0002\u0002\u07a0\u07a4\u0005\u0180", + "\u00c1\u0002\u07a1\u07a2\u0007\u010a\u0002\u0002\u07a2\u07a4\u0005\u01b8", + "\u00dd\u0002\u07a3\u079b\u0003\u0002\u0002\u0002\u07a3\u079d\u0003\u0002", + "\u0002\u0002\u07a3\u079f\u0003\u0002\u0002\u0002\u07a3\u07a1\u0003\u0002", + "\u0002\u0002\u07a4\u00e5\u0003\u0002\u0002\u0002\u07a5\u07a6\t\u001e", + "\u0002\u0002\u07a6\u00e7\u0003\u0002\u0002\u0002\u07a7\u07a9\u0007/", + "\u0002\u0002\u07a8\u07aa\u0007\u0139\u0002\u0002\u07a9\u07a8\u0003\u0002", + "\u0002\u0002\u07a9\u07aa\u0003\u0002\u0002\u0002\u07aa\u00e9\u0003\u0002", + "\u0002\u0002\u07ab\u07ad\u00078\u0002\u0002\u07ac\u07ae\u0007\u0128", + "\u0002\u0002\u07ad\u07ac\u0003\u0002\u0002\u0002\u07ad\u07ae\u0003\u0002", + "\u0002\u0002\u07ae\u07af\u0003\u0002\u0002\u0002\u07af\u07b0\u0007\u0088", + "\u0002\u0002\u07b0\u07b1\u0005\u01b8\u00dd\u0002\u07b1\u07b2\u0007\u00c5", + "\u0002\u0002\u07b2\u07b3\u0005\u014a\u00a6\u0002\u07b3\u07b4\u0007\u016a", + "\u0002\u0002\u07b4\u07b9\u0005\u00ecw\u0002\u07b5\u07b6\u0007\u0157", + "\u0002\u0002\u07b6\u07b8\u0005\u00ecw\u0002\u07b7\u07b5\u0003\u0002", + "\u0002\u0002\u07b8\u07bb\u0003\u0002\u0002\u0002\u07b9\u07b7\u0003\u0002", + "\u0002\u0002\u07b9\u07ba\u0003\u0002\u0002\u0002\u07ba\u07bc\u0003\u0002", + "\u0002\u0002\u07bb\u07b9\u0003\u0002\u0002\u0002\u07bc\u07bd\u0007\u016d", + "\u0002\u0002\u07bd\u00eb\u0003\u0002\u0002\u0002\u07be\u07c0\u0005\u01b8", + "\u00dd\u0002\u07bf\u07c1\t\t\u0002\u0002\u07c0\u07bf\u0003\u0002\u0002", + "\u0002\u07c0\u07c1\u0003\u0002\u0002\u0002\u07c1\u00ed\u0003\u0002\u0002", + "\u0002\u07c2\u07c3\u0005\u00f0y\u0002\u07c3\u00ef\u0003\u0002\u0002", + "\u0002\u07c4\u07c5\u0007\u0137\u0002\u0002\u07c5\u07c6\u0007\u016a\u0002", + "\u0002\u07c6\u07c7\u0005\u01b8\u00dd\u0002\u07c7\u07c8\u0007\u015c\u0002", + "\u0002\u07c8\u07d0\u0005\u01b8\u00dd\u0002\u07c9\u07ca\u0007\u0157\u0002", + "\u0002\u07ca\u07cb\u0005\u01b8\u00dd\u0002\u07cb\u07cc\u0007\u015c\u0002", + "\u0002\u07cc\u07cd\u0005\u01b8\u00dd\u0002\u07cd\u07cf\u0003\u0002\u0002", + "\u0002\u07ce\u07c9\u0003\u0002\u0002\u0002\u07cf\u07d2\u0003\u0002\u0002", + "\u0002\u07d0\u07ce\u0003\u0002\u0002\u0002\u07d0\u07d1\u0003\u0002\u0002", + "\u0002\u07d1\u07d3\u0003\u0002\u0002\u0002\u07d2\u07d0\u0003\u0002\u0002", + "\u0002\u07d3\u07d7\u0007\u016d\u0002\u0002\u07d4\u07d6\u0005l7\u0002", + "\u07d5\u07d4\u0003\u0002\u0002\u0002\u07d6\u07d9\u0003\u0002\u0002\u0002", + "\u07d7\u07d5\u0003\u0002\u0002\u0002\u07d7\u07d8\u0003\u0002\u0002\u0002", + "\u07d8\u00f1\u0003\u0002\u0002\u0002\u07d9\u07d7\u0003\u0002\u0002\u0002", + "\u07da\u07db\u0007\u00d7\u0002\u0002\u07db\u07e2\u0005\u0180\u00c1\u0002", + "\u07dc\u07dd\u0007\u00d7\u0002\u0002\u07dd\u07de\u0007\u016a\u0002\u0002", + "\u07de\u07df\u0005\u0180\u00c1\u0002\u07df\u07e0\u0007\u016d\u0002\u0002", + "\u07e0\u07e2\u0003\u0002\u0002\u0002\u07e1\u07da\u0003\u0002\u0002\u0002", + "\u07e1\u07dc\u0003\u0002\u0002\u0002\u07e2\u00f3\u0003\u0002\u0002\u0002", + "\u07e3\u07e5\u0007\u015a\u0002\u0002\u07e4\u07e3\u0003\u0002\u0002\u0002", + "\u07e4\u07e5\u0003\u0002\u0002\u0002\u07e5\u07e6\u0003\u0002\u0002\u0002", + "\u07e6\u07e8\u0007\u00dc\u0002\u0002\u07e7\u07e9\u0005\u0180\u00c1\u0002", + "\u07e8\u07e7\u0003\u0002\u0002\u0002\u07e8\u07e9\u0003\u0002\u0002\u0002", + "\u07e9\u00f5\u0003\u0002\u0002\u0002\u07ea\u07eb\u0007\u00de\u0002\u0002", + "\u07eb\u00f7\u0003\u0002\u0002\u0002\u07ec\u07f8\u0007\u00e3\u0002\u0002", + "\u07ed\u07ef\u0007\u010b\u0002\u0002\u07ee\u07f0\u0007\u012d\u0002\u0002", + "\u07ef\u07ee\u0003\u0002\u0002\u0002\u07ef\u07f0\u0003\u0002\u0002\u0002", + "\u07f0\u07f1\u0003\u0002\u0002\u0002\u07f1\u07f6\u0005\u0180\u00c1\u0002", + "\u07f2\u07f3\u0007\u00fd\u0002\u0002\u07f3\u07f4\u0007\u00b1\u0002\u0002", + "\u07f4\u07f5\u0007\u015c\u0002\u0002\u07f5\u07f7\u0005\u0180\u00c1\u0002", + "\u07f6\u07f2\u0003\u0002\u0002\u0002\u07f6\u07f7\u0003\u0002\u0002\u0002", + "\u07f7\u07f9\u0003\u0002\u0002\u0002\u07f8\u07ed\u0003\u0002\u0002\u0002", + "\u07f8\u07f9\u0003\u0002\u0002\u0002\u07f9\u00f9\u0003\u0002\u0002\u0002", + "\u07fa\u07fc\u0007\u00e7\u0002\u0002\u07fb\u07fd\u0005\u0180\u00c1\u0002", + "\u07fc\u07fb\u0003\u0002\u0002\u0002\u07fc\u07fd\u0003\u0002\u0002\u0002", + "\u07fd\u00fb\u0003\u0002\u0002\u0002\u07fe\u0800\u0007\u00ed\u0002\u0002", + "\u07ff\u0801\u0007\u0139\u0002\u0002\u0800\u07ff\u0003\u0002\u0002\u0002", + "\u0800\u0801\u0003\u0002\u0002\u0002\u0801\u00fd\u0003\u0002\u0002\u0002", + "\u0802\u0806\u0005\u0100\u0081\u0002\u0803\u0806\u0005\u0102\u0082\u0002", + "\u0804\u0806\u0005\u0104\u0083\u0002\u0805\u0802\u0003\u0002\u0002\u0002", + "\u0805\u0803\u0003\u0002\u0002\u0002\u0805\u0804\u0003\u0002\u0002\u0002", + "\u0806\u00ff\u0003\u0002\u0002\u0002\u0807\u0809\u0007<\u0002\u0002", + "\u0808\u0807\u0003\u0002\u0002\u0002\u0808\u0809\u0003\u0002\u0002\u0002", + "\u0809\u080a\u0003\u0002\u0002\u0002\u080a\u080d\u0007\u00f6\u0002\u0002", + "\u080b\u080d\u0007=\u0002\u0002\u080c\u0808\u0003\u0002\u0002\u0002", + "\u080c\u080b\u0003\u0002\u0002\u0002\u080d\u080f\u0003\u0002\u0002\u0002", + "\u080e\u0810\u0007\u015c\u0002\u0002\u080f\u080e\u0003\u0002\u0002\u0002", + "\u080f\u0810\u0003\u0002\u0002\u0002\u0810\u0811\u0003\u0002\u0002\u0002", + "\u0811\u0812\u0005\u0180\u00c1\u0002\u0812\u0101\u0003\u0002\u0002\u0002", + "\u0813\u0814\t\u001f\u0002\u0002\u0814\u0815\t \u0002\u0002\u0815\u0103", + "\u0003\u0002\u0002\u0002\u0816\u0817\u0007\u00db\u0002\u0002\u0817\u081a", + "\u0007\u015c\u0002\u0002\u0818\u081b\u0005\u0180\u00c1\u0002\u0819\u081b", + "\u0007\u00bd\u0002\u0002\u081a\u0818\u0003\u0002\u0002\u0002\u081a\u0819", + "\u0003\u0002\u0002\u0002\u081b\u081d\u0003\u0002\u0002\u0002\u081c\u081e", + "\u0007\u0129\u0002\u0002\u081d\u081c\u0003\u0002\u0002\u0002\u081d\u081e", + "\u0003\u0002\u0002\u0002\u081e\u081f\u0003\u0002\u0002\u0002\u081f\u0820", + "\u0007p\u0002\u0002\u0820\u0821\t!\u0002\u0002\u0821\u0105\u0003\u0002", + "\u0002\u0002\u0822\u0823\u0007\u0102\u0002\u0002\u0823\u0824\u0005\u01b8", + "\u00dd\u0002\u0824\u0107\u0003\u0002\u0002\u0002\u0825\u0828\u0007\u0116", + "\u0002\u0002\u0826\u0827\u0007\u0122\u0002\u0002\u0827\u0829\u0005\u0180", + "\u00c1\u0002\u0828\u0826\u0003\u0002\u0002\u0002\u0828\u0829\u0003\u0002", + "\u0002\u0002\u0829\u082a\u0003\u0002\u0002\u0002\u082a\u0834\u0007p", + "\u0002\u0002\u082b\u0835\u0005\u011a\u008e\u0002\u082c\u082e\u0005\u014a", + "\u00a6\u0002\u082d\u082f\u0005\u014c\u00a7\u0002\u082e\u082d\u0003\u0002", + "\u0002\u0002\u082e\u082f\u0003\u0002\u0002\u0002\u082f\u0832\u0003\u0002", + "\u0002\u0002\u0830\u0831\u0007\u00a1\u0002\u0002\u0831\u0833\u0005\u0180", + "\u00c1\u0002\u0832\u0830\u0003\u0002\u0002\u0002\u0832\u0833\u0003\u0002", + "\u0002\u0002\u0833\u0835\u0003\u0002\u0002\u0002\u0834\u082b\u0003\u0002", + "\u0002\u0002\u0834\u082c\u0003\u0002\u0002\u0002\u0835\u0109\u0003\u0002", + "\u0002\u0002\u0836\u0838\u0007\u0125\u0002\u0002\u0837\u0839\u0007\u0118", + "\u0002\u0002\u0838\u0837\u0003\u0002\u0002\u0002\u0838\u0839\u0003\u0002", + "\u0002\u0002\u0839\u083a\u0003\u0002\u0002\u0002\u083a\u083b\u0005\u014a", + "\u00a6\u0002\u083b\u010b\u0003\u0002\u0002\u0002\u083c\u083d\u0007\u012b", + "\u0002\u0002\u083d\u083e\u0005\u0180\u00c1\u0002\u083e\u010d\u0003\u0002", + "\u0002\u0002\u083f\u0841\u0007\u012e\u0002\u0002\u0840\u0842\u0007\u016a", + "\u0002\u0002\u0841\u0840\u0003\u0002\u0002\u0002\u0841\u0842\u0003\u0002", + "\u0002\u0002\u0842\u0843\u0003\u0002\u0002\u0002\u0843\u0848\u0005\u0180", + "\u00c1\u0002\u0844\u0845\u0007\u0157\u0002\u0002\u0845\u0847\u0005\u0180", + "\u00c1\u0002\u0846\u0844\u0003\u0002\u0002\u0002\u0847\u084a\u0003\u0002", + "\u0002\u0002\u0848\u0846\u0003\u0002\u0002\u0002\u0848\u0849\u0003\u0002", + "\u0002\u0002\u0849\u084c\u0003\u0002\u0002\u0002\u084a\u0848\u0003\u0002", + "\u0002\u0002\u084b\u084d\u0007\u016d\u0002\u0002\u084c\u084b\u0003\u0002", + "\u0002\u0002\u084c\u084d\u0003\u0002\u0002\u0002\u084d\u084e\u0003\u0002", + "\u0002\u0002\u084e\u0850\u0007\u0094\u0002\u0002\u084f\u0851\u0007\u016a", + "\u0002\u0002\u0850\u084f\u0003\u0002\u0002\u0002\u0850\u0851\u0003\u0002", + "\u0002\u0002\u0851\u0852\u0003\u0002\u0002\u0002\u0852\u0857\u0005\u01b8", + "\u00dd\u0002\u0853\u0854\u0007\u0157\u0002\u0002\u0854\u0856\u0005\u01b8", + "\u00dd\u0002\u0855\u0853\u0003\u0002\u0002\u0002\u0856\u0859\u0003\u0002", + "\u0002\u0002\u0857\u0855\u0003\u0002\u0002\u0002\u0857\u0858\u0003\u0002", + "\u0002\u0002\u0858\u085b\u0003\u0002\u0002\u0002\u0859\u0857\u0003\u0002", + "\u0002\u0002\u085a\u085c\u0007\u016d\u0002\u0002\u085b\u085a\u0003\u0002", + "\u0002\u0002\u085b\u085c\u0003\u0002\u0002\u0002\u085c\u010f\u0003\u0002", + "\u0002\u0002\u085d\u085e\u0007\u0136\u0002\u0002\u085e\u085f\u0005\u0170", + "\u00b9\u0002\u085f\u0860\t\"\u0002\u0002\u0860\u0861\u0005\u0004\u0003", + "\u0002\u0861\u0863\u0007_\u0002\u0002\u0862\u0864\t#\u0002\u0002\u0863", + "\u0862\u0003\u0002\u0002\u0002\u0863\u0864\u0003\u0002\u0002\u0002\u0864", + "\u0111\u0003\u0002\u0002\u0002\u0865\u0866\u0007p\u0002\u0002\u0866", + "\u0867\u0007\u0171\u0002\u0002\u0867\u0869\u0007\u0086\u0002\u0002\u0868", + "\u086a\u0007\u016a\u0002\u0002\u0869\u0868\u0003\u0002\u0002\u0002\u0869", + "\u086a\u0003\u0002\u0002\u0002\u086a\u086b\u0003\u0002\u0002\u0002\u086b", + "\u086d\u0005\u011a\u008e\u0002\u086c\u086e\u0007\u016d\u0002\u0002\u086d", + "\u086c\u0003\u0002\u0002\u0002\u086d\u086e\u0003\u0002\u0002\u0002\u086e", + "\u086f\u0003\u0002\u0002\u0002\u086f\u0870\u0007\u00ab\u0002\u0002\u0870", + "\u0871\u0005\u0004\u0003\u0002\u0871\u0872\u0007_\u0002\u0002\u0872", + "\u0873\u0007\u00ab\u0002\u0002\u0873\u0113\u0003\u0002\u0002\u0002\u0874", + "\u0875\u0007p\u0002\u0002\u0875\u0876\u0007\u0171\u0002\u0002\u0876", + "\u0878\u0007\u0086\u0002\u0002\u0877\u0879\u0007\u00e9\u0002\u0002\u0878", + "\u0877\u0003\u0002\u0002\u0002\u0878\u0879\u0003\u0002\u0002\u0002\u0879", + "\u087a\u0003\u0002\u0002\u0002\u087a\u087b\u0005\u0180\u00c1\u0002\u087b", + "\u087c\u0007\u015b\u0002\u0002\u087c\u087f\u0005\u0180\u00c1\u0002\u087d", + "\u087e\t$\u0002\u0002\u087e\u0880\u0005\u0180\u00c1\u0002\u087f\u087d", + "\u0003\u0002\u0002\u0002\u087f\u0880\u0003\u0002\u0002\u0002\u0880\u0881", + "\u0003\u0002\u0002\u0002\u0881\u0882\u0007\u00ab\u0002\u0002\u0882\u0883", + "\u0005\u0004\u0003\u0002\u0883\u0884\u0007_\u0002\u0002\u0884\u0885", + "\u0007\u00ab\u0002\u0002\u0885\u0115\u0003\u0002\u0002\u0002\u0886\u088d", + "\u0007\u017a\u0002\u0002\u0887\u0888\u0007\u0164\u0002\u0002\u0888\u0889", + "\u0007\u0164\u0002\u0002\u0889\u088a\u0007\u0171\u0002\u0002\u088a\u088b", + "\u0007\u0162\u0002\u0002\u088b\u088d\u0007\u0162\u0002\u0002\u088c\u0886", + "\u0003\u0002\u0002\u0002\u088c\u0887\u0003\u0002\u0002\u0002\u088d\u0117", + "\u0003\u0002\u0002\u0002\u088e\u088f\u0007\u012c\u0002\u0002\u088f\u0894", + "\u0005\u0180\u00c1\u0002\u0890\u0891\u0007\u0157\u0002\u0002\u0891\u0893", + "\u0005\u0180\u00c1\u0002\u0892\u0890\u0003\u0002\u0002\u0002\u0893\u0896", + "\u0003\u0002\u0002\u0002\u0894\u0892\u0003\u0002\u0002\u0002\u0894\u0895", + "\u0003\u0002\u0002\u0002\u0895\u0119\u0003\u0002\u0002\u0002\u0896\u0894", + "\u0003\u0002\u0002\u0002\u0897\u0899\u0005\u011c\u008f\u0002\u0898\u0897", + "\u0003\u0002\u0002\u0002\u0898\u0899\u0003\u0002\u0002\u0002\u0899\u089a", + "\u0003\u0002\u0002\u0002\u089a\u089b\u0005\u0122\u0092\u0002\u089b\u011b", + "\u0003\u0002\u0002\u0002\u089c\u089d\u0007\u0137\u0002\u0002\u089d\u08a2", + "\u0005\u011e\u0090\u0002\u089e\u089f\u0007\u0157\u0002\u0002\u089f\u08a1", + "\u0005\u011e\u0090\u0002\u08a0\u089e\u0003\u0002\u0002\u0002\u08a1\u08a4", + "\u0003\u0002\u0002\u0002\u08a2\u08a0\u0003\u0002\u0002\u0002\u08a2\u08a3", + "\u0003\u0002\u0002\u0002\u08a3\u011d\u0003\u0002\u0002\u0002\u08a4\u08a2", + "\u0003\u0002\u0002\u0002\u08a5\u08a7\u0005\u01b8\u00dd\u0002\u08a6\u08a8", + "\u0005\u0120\u0091\u0002\u08a7\u08a6\u0003\u0002\u0002\u0002\u08a7\u08a8", + "\u0003\u0002\u0002\u0002\u08a8\u08a9\u0003\u0002\u0002\u0002\u08a9\u08aa", + "\u0007\u000b\u0002\u0002\u08aa\u08ab\u0007\u016a\u0002\u0002\u08ab\u08ac", + "\u0005\u0122\u0092\u0002\u08ac\u08ad\u0007\u016d\u0002\u0002\u08ad\u011f", + "\u0003\u0002\u0002\u0002\u08ae\u08af\u0007\u016a\u0002\u0002\u08af\u08b4", + "\u0005\u01b8\u00dd\u0002\u08b0\u08b1\u0007\u0157\u0002\u0002\u08b1\u08b3", + "\u0005\u01b8\u00dd\u0002\u08b2\u08b0\u0003\u0002\u0002\u0002\u08b3\u08b6", + "\u0003\u0002\u0002\u0002\u08b4\u08b2\u0003\u0002\u0002\u0002\u08b4\u08b5", + "\u0003\u0002\u0002\u0002\u08b5\u08b7\u0003\u0002\u0002\u0002\u08b6\u08b4", + "\u0003\u0002\u0002\u0002\u08b7\u08b8\u0007\u016d\u0002\u0002\u08b8\u0121", + "\u0003\u0002\u0002\u0002\u08b9\u08bf\u0005\u0124\u0093\u0002\u08ba\u08bb", + "\u0005\u0126\u0094\u0002\u08bb\u08bc\u0005\u0124\u0093\u0002\u08bc\u08be", + "\u0003\u0002\u0002\u0002\u08bd\u08ba\u0003\u0002\u0002\u0002\u08be\u08c1", + "\u0003\u0002\u0002\u0002\u08bf\u08bd\u0003\u0002\u0002\u0002\u08bf\u08c0", + "\u0003\u0002\u0002\u0002\u08c0\u0123\u0003\u0002\u0002\u0002\u08c1\u08bf", + "\u0003\u0002\u0002\u0002\u08c2\u08c8\u0005\u0128\u0095\u0002\u08c3\u08c4", + "\u0007\u016a\u0002\u0002\u08c4\u08c5\u0005\u0122\u0092\u0002\u08c5\u08c6", + "\u0007\u016d\u0002\u0002\u08c6\u08c8\u0003\u0002\u0002\u0002\u08c7\u08c2", + "\u0003\u0002\u0002\u0002\u08c7\u08c3\u0003\u0002\u0002\u0002\u08c8\u0125", + "\u0003\u0002\u0002\u0002\u08c9\u08cb\u0007\u0127\u0002\u0002\u08ca\u08cc", + "\u0007\u0005\u0002\u0002\u08cb\u08ca\u0003\u0002\u0002\u0002\u08cb\u08cc", + "\u0003\u0002\u0002\u0002\u08cc\u08d6\u0003\u0002\u0002\u0002\u08cd\u08cf", + "\u0007b\u0002\u0002\u08ce\u08d0\u0007\u0005\u0002\u0002\u08cf\u08ce", + "\u0003\u0002\u0002\u0002\u08cf\u08d0\u0003\u0002\u0002\u0002\u08d0\u08d6", + "\u0003\u0002\u0002\u0002\u08d1\u08d3\u0007\u0092\u0002\u0002\u08d2\u08d4", + "\u0007\u0005\u0002\u0002\u08d3\u08d2\u0003\u0002\u0002\u0002\u08d3\u08d4", + "\u0003\u0002\u0002\u0002\u08d4\u08d6\u0003\u0002\u0002\u0002\u08d5\u08c9", + "\u0003\u0002\u0002\u0002\u08d5\u08cd\u0003\u0002\u0002\u0002\u08d5\u08d1", + "\u0003\u0002\u0002\u0002\u08d6\u0127\u0003\u0002\u0002\u0002\u08d7\u08d8", + "\t%\u0002\u0002\u08d8\u08da\u0005\u012a\u0096\u0002\u08d9\u08db\u0005", + "\u0136\u009c\u0002\u08da\u08d9\u0003\u0002\u0002\u0002\u08da\u08db\u0003", + "\u0002\u0002\u0002\u08db\u08dd\u0003\u0002\u0002\u0002\u08dc\u08de\u0005", + "\u0138\u009d\u0002\u08dd\u08dc\u0003\u0002\u0002\u0002\u08dd\u08de\u0003", "\u0002\u0002\u0002\u08de\u08e0\u0003\u0002\u0002\u0002\u08df\u08e1\u0005", - "\u0138\u009d\u0002\u08e0\u08df\u0003\u0002\u0002\u0002\u08e0\u08e1\u0003", + "\u014c\u00a7\u0002\u08e0\u08df\u0003\u0002\u0002\u0002\u08e0\u08e1\u0003", "\u0002\u0002\u0002\u08e1\u08e3\u0003\u0002\u0002\u0002\u08e2\u08e4\u0005", - "\u014c\u00a7\u0002\u08e3\u08e2\u0003\u0002\u0002\u0002\u08e3\u08e4\u0003", - "\u0002\u0002\u0002\u08e4\u08e6\u0003\u0002\u0002\u0002\u08e5\u08e7\u0005", - "\u014e\u00a8\u0002\u08e6\u08e5\u0003\u0002\u0002\u0002\u08e6\u08e7\u0003", - "\u0002\u0002\u0002\u08e7\u08ea\u0003\u0002\u0002\u0002\u08e8\u08eb\u0005", - "\u0150\u00a9\u0002\u08e9\u08eb\u0005\u0152\u00aa\u0002\u08ea\u08e8\u0003", - "\u0002\u0002\u0002\u08ea\u08e9\u0003\u0002\u0002\u0002\u08ea\u08eb\u0003", + "\u014e\u00a8\u0002\u08e3\u08e2\u0003\u0002\u0002\u0002\u08e3\u08e4\u0003", + "\u0002\u0002\u0002\u08e4\u08e7\u0003\u0002\u0002\u0002\u08e5\u08e8\u0005", + "\u0150\u00a9\u0002\u08e6\u08e8\u0005\u0152\u00aa\u0002\u08e7\u08e5\u0003", + "\u0002\u0002\u0002\u08e7\u08e6\u0003\u0002\u0002\u0002\u08e7\u08e8\u0003", + "\u0002\u0002\u0002\u08e8\u08ea\u0003\u0002\u0002\u0002\u08e9\u08eb\u0005", + "\u0154\u00ab\u0002\u08ea\u08e9\u0003\u0002\u0002\u0002\u08ea\u08eb\u0003", "\u0002\u0002\u0002\u08eb\u08ed\u0003\u0002\u0002\u0002\u08ec\u08ee\u0005", - "\u0154\u00ab\u0002\u08ed\u08ec\u0003\u0002\u0002\u0002\u08ed\u08ee\u0003", - "\u0002\u0002\u0002\u08ee\u08f0\u0003\u0002\u0002\u0002\u08ef\u08f1\u0005", - "\u0156\u00ac\u0002\u08f0\u08ef\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003", - "\u0002\u0002\u0002\u08f1\u0129\u0003\u0002\u0002\u0002\u08f2\u08f4\u0005", - "\u012c\u0097\u0002\u08f3\u08f2\u0003\u0002\u0002\u0002\u08f3\u08f4\u0003", - "\u0002\u0002\u0002\u08f4\u08f6\u0003\u0002\u0002\u0002\u08f5\u08f7\u0005", - "\u012e\u0098\u0002\u08f6\u08f5\u0003\u0002\u0002\u0002\u08f6\u08f7\u0003", - "\u0002\u0002\u0002\u08f7\u08f8\u0003\u0002\u0002\u0002\u08f8\u08fd\u0005", - "\u0130\u0099\u0002\u08f9\u08fa\u0007\u0017\u0002\u0002\u08fa\u08fc\u0005", - "\u0130\u0099\u0002\u08fb\u08f9\u0003\u0002\u0002\u0002\u08fc\u08ff\u0003", - "\u0002\u0002\u0002\u08fd\u08fb\u0003\u0002\u0002\u0002\u08fd\u08fe\u0003", - "\u0002\u0002\u0002\u08fe\u012b\u0003\u0002\u0002\u0002\u08ff\u08fd\u0003", - "\u0002\u0002\u0002\u0900\u0901\t&\u0002\u0002\u0901\u012d\u0003\u0002", - "\u0002\u0002\u0902\u0903\u0007\u0104\u0002\u0002\u0903\u0904\u0005\u0180", - "\u00c1\u0002\u0904\u012f\u0003\u0002\u0002\u0002\u0905\u0906\u0005\u01b8", - "\u00dd\u0002\u0906\u0907\u0007\u0019\u0002\u0002\u0907\u0909\u0003\u0002", - "\u0002\u0002\u0908\u0905\u0003\u0002\u0002\u0002\u0908\u0909\u0003\u0002", - "\u0002\u0002\u0909\u090a\u0003\u0002\u0002\u0002\u090a\u090c\u0005\u0180", - "\u00c1\u0002\u090b\u090d\u0005\u0132\u009a\u0002\u090c\u090b\u0003\u0002", - "\u0002\u0002\u090c\u090d\u0003\u0002\u0002\u0002\u090d\u0910\u0003\u0002", - "\u0002\u0002\u090e\u0910\u0005\u0134\u009b\u0002\u090f\u0908\u0003\u0002", - "\u0002\u0002\u090f\u090e\u0003\u0002\u0002\u0002\u0910\u0131\u0003\u0002", - "\u0002\u0002\u0911\u0913\u0006\u009a\u0005\u0002\u0912\u0914\u0007)", - "\u0002\u0002\u0913\u0912\u0003\u0002\u0002\u0002\u0913\u0914\u0003\u0002", - "\u0002\u0002\u0914\u0915\u0003\u0002\u0002\u0002\u0915\u091b\u0005\u01b8", - "\u00dd\u0002\u0916\u0917\u0007\u001a\u0002\u0002\u0917\u0918\u0007\u0119", - "\u0002\u0002\u0918\u0919\u0007\u011a\u0002\u0002\u0919\u091b\u0007\u001b", - "\u0002\u0002\u091a\u0911\u0003\u0002\u0002\u0002\u091a\u0916\u0003\u0002", - "\u0002\u0002\u091b\u0133\u0003\u0002\u0002\u0002\u091c\u091d\u0007\u0013", - "\u0002\u0002\u091d\u091f\u0007\u0007\u0002\u0002\u091e\u091c\u0003\u0002", - "\u0002\u0002\u091e\u091f\u0003\u0002\u0002\u0002\u091f\u0920\u0003\u0002", - "\u0002\u0002\u0920\u0921\u0007\b\u0002\u0002\u0921\u0135\u0003\u0002", - "\u0002\u0002\u0922\u0923\u0007\u00cd\u0002\u0002\u0923\u0928\u0005\u01b8", - "\u00dd\u0002\u0924\u0925\u0007\u0017\u0002\u0002\u0925\u0927\u0005\u01b8", - "\u00dd\u0002\u0926\u0924\u0003\u0002\u0002\u0002\u0927\u092a\u0003\u0002", - "\u0002\u0002\u0928\u0926\u0003\u0002\u0002\u0002\u0928\u0929\u0003\u0002", - "\u0002\u0002\u0929\u0137\u0003\u0002\u0002\u0002\u092a\u0928\u0003\u0002", - "\u0002\u0002\u092b\u092c\u0007\u00e1\u0002\u0002\u092c\u0930\u0005\u013a", - "\u009e\u0002\u092d\u092f\u0005\u0140\u00a1\u0002\u092e\u092d\u0003\u0002", - "\u0002\u0002\u092f\u0932\u0003\u0002\u0002\u0002\u0930\u092e\u0003\u0002", - "\u0002\u0002\u0930\u0931\u0003\u0002\u0002\u0002\u0931\u0139\u0003\u0002", - "\u0002\u0002\u0932\u0930\u0003\u0002\u0002\u0002\u0933\u0937\u0005\u013c", - "\u009f\u0002\u0934\u0937\u0005\u013e\u00a0\u0002\u0935\u0937\u0005\u0144", - "\u00a3\u0002\u0936\u0933\u0003\u0002\u0002\u0002\u0936\u0934\u0003\u0002", - "\u0002\u0002\u0936\u0935\u0003\u0002\u0002\u0002\u0937\u013b\u0003\u0002", - "\u0002\u0002\u0938\u093a\u0005\u014a\u00a6\u0002\u0939\u093b\u0005\u0148", - "\u00a5\u0002\u093a\u0939\u0003\u0002\u0002\u0002\u093a\u093b\u0003\u0002", - "\u0002\u0002\u093b\u013d\u0003\u0002\u0002\u0002\u093c\u093d\u0007\u001a", - "\u0002\u0002\u093d\u093e\u0005\u011a\u008e\u0002\u093e\u0940\u0007\u001b", - "\u0002\u0002\u093f\u0941\u0005\u0148\u00a5\u0002\u0940\u093f\u0003\u0002", - "\u0002\u0002\u0940\u0941\u0003\u0002\u0002\u0002\u0941\u013f\u0003\u0002", - "\u0002\u0002\u0942\u0943\u0007\u0017\u0002\u0002\u0943\u094a\u0005\u013a", - "\u009e\u0002\u0944\u0945\u0005\u0142\u00a2\u0002\u0945\u0946\u0005\u013a", - "\u009e\u0002\u0946\u0947\u0007Q\u0002\u0002\u0947\u0948\u0005\u0170", - "\u00b9\u0002\u0948\u094a\u0003\u0002\u0002\u0002\u0949\u0942\u0003\u0002", - "\u0002\u0002\u0949\u0944\u0003\u0002\u0002\u0002\u094a\u0141\u0003\u0002", - "\u0002\u0002\u094b\u094d\u0007\u011b\u0002\u0002\u094c\u094b\u0003\u0002", - "\u0002\u0002\u094c\u094d\u0003\u0002\u0002\u0002\u094d\u094e\u0003\u0002", - "\u0002\u0002\u094e\u0955\u0007\u011c\u0002\u0002\u094f\u0951\t\'\u0002", - "\u0002\u0950\u0952\u0007\u0120\u0002\u0002\u0951\u0950\u0003\u0002\u0002", - "\u0002\u0951\u0952\u0003\u0002\u0002\u0002\u0952\u0953\u0003\u0002\u0002", - "\u0002\u0953\u0955\u0007\u011c\u0002\u0002\u0954\u094c\u0003\u0002\u0002", - "\u0002\u0954\u094f\u0003\u0002\u0002\u0002\u0955\u0143\u0003\u0002\u0002", - "\u0002\u0956\u0957\u0007<\u0002\u0002\u0957\u0958\u0007\u001a\u0002", - "\u0002\u0958\u0959\u0007\u00d4\u0002\u0002\u0959\u095e\u0005\u0146\u00a4", - "\u0002\u095a\u095b\u0007\u0017\u0002\u0002\u095b\u095d\u0005\u0146\u00a4", - "\u0002\u095c\u095a\u0003\u0002\u0002\u0002\u095d\u0960\u0003\u0002\u0002", - "\u0002\u095e\u095c\u0003\u0002\u0002\u0002\u095e\u095f\u0003\u0002\u0002", - "\u0002\u095f\u0961\u0003\u0002\u0002\u0002\u0960\u095e\u0003\u0002\u0002", - "\u0002\u0961\u0963\u0007\u001b\u0002\u0002\u0962\u0964\u0005\u0148\u00a5", - "\u0002\u0963\u0962\u0003\u0002\u0002\u0002\u0963\u0964\u0003\u0002\u0002", - "\u0002\u0964\u0145\u0003\u0002\u0002\u0002\u0965\u0972\u0005\u0180\u00c1", - "\u0002\u0966\u0967\u0007\u001a\u0002\u0002\u0967\u096c\u0005\u0180\u00c1", - "\u0002\u0968\u0969\u0007\u0017\u0002\u0002\u0969\u096b\u0005\u0180\u00c1", - "\u0002\u096a\u0968\u0003\u0002\u0002\u0002\u096b\u096e\u0003\u0002\u0002", - "\u0002\u096c\u096a\u0003\u0002\u0002\u0002\u096c\u096d\u0003\u0002\u0002", - "\u0002\u096d\u096f\u0003\u0002\u0002\u0002\u096e\u096c\u0003\u0002\u0002", - "\u0002\u096f\u0970\u0007\u001b\u0002\u0002\u0970\u0972\u0003\u0002\u0002", - "\u0002\u0971\u0965\u0003\u0002\u0002\u0002\u0971\u0966\u0003\u0002\u0002", - "\u0002\u0972\u0147\u0003\u0002\u0002\u0002\u0973\u0975\u0006\u00a5\u0006", - "\u0002\u0974\u0976\u0007)\u0002\u0002\u0975\u0974\u0003\u0002\u0002", - "\u0002\u0975\u0976\u0003\u0002\u0002\u0002\u0976\u0977\u0003\u0002\u0002", - "\u0002\u0977\u0982\u0005\u01b8\u00dd\u0002\u0978\u0979\u0007\u001a\u0002", - "\u0002\u0979\u097e\u0007\u0013\u0002\u0002\u097a\u097b\u0007\u0017\u0002", - "\u0002\u097b\u097d\u0007\u0013\u0002\u0002\u097c\u097a\u0003\u0002\u0002", - "\u0002\u097d\u0980\u0003\u0002\u0002\u0002\u097e\u097c\u0003\u0002\u0002", - "\u0002\u097e\u097f\u0003\u0002\u0002\u0002\u097f\u0981\u0003\u0002\u0002", - "\u0002\u0980\u097e\u0003\u0002\u0002\u0002\u0981\u0983\u0007\u001b\u0002", - "\u0002\u0982\u0978\u0003\u0002\u0002\u0002\u0982\u0983\u0003\u0002\u0002", - "\u0002\u0983\u0149\u0003\u0002\u0002\u0002\u0984\u0985\u0005\u01b8\u00dd", - "\u0002\u0985\u014b\u0003\u0002\u0002\u0002\u0986\u0987\u0007\u0121\u0002", - "\u0002\u0987\u0988\u0005\u0170\u00b9\u0002\u0988\u014d\u0003\u0002\u0002", - "\u0002\u0989\u098a\u0007\u0122\u0002\u0002\u098a\u098b\u0007o\u0002", - "\u0002\u098b\u0990\u0005\u0180\u00c1\u0002\u098c\u098d\u0007\u0017\u0002", - "\u0002\u098d\u098f\u0005\u0180\u00c1\u0002\u098e\u098c\u0003\u0002\u0002", - "\u0002\u098f\u0992\u0003\u0002\u0002\u0002\u0990\u098e\u0003\u0002\u0002", - "\u0002\u0990\u0991\u0003\u0002\u0002\u0002\u0991\u014f\u0003\u0002\u0002", - "\u0002\u0992\u0990\u0003\u0002\u0002\u0002\u0993\u0994\u0007\u0123\u0002", - "\u0002\u0994\u0995\u0005\u0170\u00b9\u0002\u0995\u0151\u0003\u0002\u0002", - "\u0002\u0996\u0997\u0007\u0124\u0002\u0002\u0997\u0998\u0005\u0170\u00b9", - "\u0002\u0998\u0153\u0003\u0002\u0002\u0002\u0999\u099a\u0007\u0125\u0002", - "\u0002\u099a\u099b\u0007o\u0002\u0002\u099b\u099d\u0005\u0180\u00c1", - "\u0002\u099c\u099e\t\t\u0002\u0002\u099d\u099c\u0003\u0002\u0002\u0002", - "\u099d\u099e\u0003\u0002\u0002\u0002\u099e\u09a6\u0003\u0002\u0002\u0002", - "\u099f\u09a0\u0007\u0017\u0002\u0002\u09a0\u09a2\u0005\u0180\u00c1\u0002", - "\u09a1\u09a3\t\t\u0002\u0002\u09a2\u09a1\u0003\u0002\u0002\u0002\u09a2", - "\u09a3\u0003\u0002\u0002\u0002\u09a3\u09a5\u0003\u0002\u0002\u0002\u09a4", - "\u099f\u0003\u0002\u0002\u0002\u09a5\u09a8\u0003\u0002\u0002\u0002\u09a6", - "\u09a4\u0003\u0002\u0002\u0002\u09a6\u09a7\u0003\u0002\u0002\u0002\u09a7", - "\u0155\u0003\u0002\u0002\u0002\u09a8\u09a6\u0003\u0002\u0002\u0002\u09a9", - "\u09ab\u0005\u0158\u00ad\u0002\u09aa\u09a9\u0003\u0002\u0002\u0002\u09ab", - "\u09ac\u0003\u0002\u0002\u0002\u09ac\u09aa\u0003\u0002\u0002\u0002\u09ac", - "\u09ad\u0003\u0002\u0002\u0002\u09ad\u0157\u0003\u0002\u0002\u0002\u09ae", - "\u09af\u0007\u0105\u0002\u0002\u09af\u09ba\u0005\u0180\u00c1\u0002\u09b0", - "\u09b1\u0007$\u0002\u0002\u09b1\u09b7\t(\u0002\u0002\u09b2\u09b3\u0007", - "\u0107\u0002\u0002\u09b3\u09b4\u0007\u0129\u0002\u0002\u09b4\u09b5\u0007", - "\u012a\u0002\u0002\u09b5\u09b6\t)\u0002\u0002\u09b6\u09b8\u0007\u012d", - "\u0002\u0002\u09b7\u09b2\u0003\u0002\u0002\u0002\u09b7\u09b8\u0003\u0002", - "\u0002\u0002\u09b8\u09ba\u0003\u0002\u0002\u0002\u09b9\u09ae\u0003\u0002", - "\u0002\u0002\u09b9\u09b0\u0003\u0002\u0002\u0002\u09ba\u0159\u0003\u0002", - "\u0002\u0002\u09bb\u09bc\u0007R\u0002\u0002\u09bc\u09bd\u0005\u015e", - "\u00b0\u0002\u09bd\u09be\u0007\u0016\u0002\u0002\u09be\u09c0\u0005\u015c", - "\u00af\u0002\u09bf\u09c1\u0005\u014c\u00a7\u0002\u09c0\u09bf\u0003\u0002", - "\u0002\u0002\u09c0\u09c1\u0003\u0002\u0002\u0002\u09c1\u09c3\u0003\u0002", - "\u0002\u0002\u09c2\u09c4\u0005\u0160\u00b1\u0002\u09c3\u09c2\u0003\u0002", - "\u0002\u0002\u09c3\u09c4\u0003\u0002\u0002\u0002\u09c4\u015b\u0003\u0002", - "\u0002\u0002\u09c5\u09ca\u0005\u001c\u000f\u0002\u09c6\u09c7\u0007\u0017", - "\u0002\u0002\u09c7\u09c9\u0005\u001c\u000f\u0002\u09c8\u09c6\u0003\u0002", - "\u0002\u0002\u09c9\u09cc\u0003\u0002\u0002\u0002\u09ca\u09c8\u0003\u0002", - "\u0002\u0002\u09ca\u09cb\u0003\u0002\u0002\u0002\u09cb\u015d\u0003\u0002", - "\u0002\u0002\u09cc\u09ca\u0003\u0002\u0002\u0002\u09cd\u09cf\u0005\u014a", - "\u00a6\u0002\u09ce\u09d0\u0005\u0138\u009d\u0002\u09cf\u09ce\u0003\u0002", - "\u0002\u0002\u09cf\u09d0\u0003\u0002\u0002\u0002\u09d0\u09d6\u0003\u0002", - "\u0002\u0002\u09d1\u09d2\u0007\u001a\u0002\u0002\u09d2\u09d3\u0005\u011a", - "\u008e\u0002\u09d3\u09d4\u0007\u001b\u0002\u0002\u09d4\u09d6\u0003\u0002", - "\u0002\u0002\u09d5\u09cd\u0003\u0002\u0002\u0002\u09d5\u09d1\u0003\u0002", - "\u0002\u0002\u09d6\u09db\u0003\u0002\u0002\u0002\u09d7\u09d9\u0007)", - "\u0002\u0002\u09d8\u09d7\u0003\u0002\u0002\u0002\u09d8\u09d9\u0003\u0002", - "\u0002\u0002\u09d9\u09da\u0003\u0002\u0002\u0002\u09da\u09dc\u0005\u01b8", - "\u00dd\u0002\u09db\u09d8\u0003\u0002\u0002\u0002\u09db\u09dc\u0003\u0002", - "\u0002\u0002\u09dc\u015f\u0003\u0002\u0002\u0002\u09dd\u09de\u0007\u00ce", - "\u0002\u0002\u09de\u09df\u0005\u00b2Z\u0002\u09df\u0161\u0003\u0002", - "\u0002\u0002\u09e0\u09e1\u0007\u012e\u0002\u0002\u09e1\u09e2\u0007\u00cd", - "\u0002\u0002\u09e2\u09e3\u0005\u0164\u00b3\u0002\u09e3\u09e4\u0007\u0111", - "\u0002\u0002\u09e4\u09e5\u0005\u0164\u00b3\u0002\u09e5\u09e6\u0007Q", - "\u0002\u0002\u09e6\u09e8\u0005\u0170\u00b9\u0002\u09e7\u09e9\u0005\u0166", - "\u00b4\u0002\u09e8\u09e7\u0003\u0002\u0002\u0002\u09e9\u09ea\u0003\u0002", - "\u0002\u0002\u09ea\u09e8\u0003\u0002\u0002\u0002\u09ea\u09eb\u0003\u0002", - "\u0002\u0002\u09eb\u0163\u0003\u0002\u0002\u0002\u09ec\u09f2\u0005\u014a", - "\u00a6\u0002\u09ed\u09ee\u0007\u001a\u0002\u0002\u09ee\u09ef\u0005\u011a", - "\u008e\u0002\u09ef\u09f0\u0007\u001b\u0002\u0002\u09f0\u09f2\u0003\u0002", - "\u0002\u0002\u09f1\u09ec\u0003\u0002\u0002\u0002\u09f1\u09ed\u0003\u0002", - "\u0002\u0002\u09f2\u09f7\u0003\u0002\u0002\u0002\u09f3\u09f5\u0007)", - "\u0002\u0002\u09f4\u09f3\u0003\u0002\u0002\u0002\u09f4\u09f5\u0003\u0002", - "\u0002\u0002\u09f5\u09f6\u0003\u0002\u0002\u0002\u09f6\u09f8\u0005\u01b8", - "\u00dd\u0002\u09f7\u09f4\u0003\u0002\u0002\u0002\u09f7\u09f8\u0003\u0002", - "\u0002\u0002\u09f8\u0165\u0003\u0002\u0002\u0002\u09f9\u09fb\u0007\u0012", - "\u0002\u0002\u09fa\u09fc\u00078\u0002\u0002\u09fb\u09fa\u0003\u0002", - "\u0002\u0002\u09fb\u09fc\u0003\u0002\u0002\u0002\u09fc\u09fd\u0003\u0002", - "\u0002\u0002\u09fd\u0a00\u0007\u012f\u0002\u0002\u09fe\u09ff\u0007\u0129", - "\u0002\u0002\u09ff\u0a01\u0005\u0170\u00b9\u0002\u0a00\u09fe\u0003\u0002", - "\u0002\u0002\u0a00\u0a01\u0003\u0002\u0002\u0002\u0a01\u0a02\u0003\u0002", - "\u0002\u0002\u0a02\u0a03\u0007\u0014\u0002\u0002\u0a03\u0a07\u0005\u0168", - "\u00b5\u0002\u0a04\u0a05\u0007\u00ce\u0002\u0002\u0a05\u0a07\u0007\u00ee", - "\u0002\u0002\u0a06\u09f9\u0003\u0002\u0002\u0002\u0a06\u0a04\u0003\u0002", - "\u0002\u0002\u0a07\u0167\u0003\u0002\u0002\u0002\u0a08\u0a0a\u0007\u00d2", - "\u0002\u0002\u0a09\u0a0b\u0005\u00b4[\u0002\u0a0a\u0a09\u0003\u0002", - "\u0002\u0002\u0a0a\u0a0b\u0003\u0002\u0002\u0002\u0a0b\u0a0c\u0003\u0002", - "\u0002\u0002\u0a0c\u0a0d\u0007\u00d4\u0002\u0002\u0a0d\u0a1d\u0005\u00b8", - "]\u0002\u0a0e\u0a0f\u0007R\u0002\u0002\u0a0f\u0a10\u0007\u0016\u0002", - "\u0002\u0a10\u0a15\u0005\u001c\u000f\u0002\u0a11\u0a12\u0007\u0017\u0002", - "\u0002\u0a12\u0a14\u0005\u001c\u000f\u0002\u0a13\u0a11\u0003\u0002\u0002", - "\u0002\u0a14\u0a17\u0003\u0002\u0002\u0002\u0a15\u0a13\u0003\u0002\u0002", - "\u0002\u0a15\u0a16\u0003\u0002\u0002\u0002\u0a16\u0a19\u0003\u0002\u0002", - "\u0002\u0a17\u0a15\u0003\u0002\u0002\u0002\u0a18\u0a1a\u0005\u014c\u00a7", - "\u0002\u0a19\u0a18\u0003\u0002\u0002\u0002\u0a19\u0a1a\u0003\u0002\u0002", - "\u0002\u0a1a\u0a1d\u0003\u0002\u0002\u0002\u0a1b\u0a1d\u0007S\u0002", - "\u0002\u0a1c\u0a08\u0003\u0002\u0002\u0002\u0a1c\u0a0e\u0003\u0002\u0002", - "\u0002\u0a1c\u0a1b\u0003\u0002\u0002\u0002\u0a1d\u0169\u0003\u0002\u0002", - "\u0002\u0a1e\u0a20\u0007S\u0002\u0002\u0a1f\u0a21\u0007\u00e1\u0002", - "\u0002\u0a20\u0a1f\u0003\u0002\u0002\u0002\u0a20\u0a21\u0003\u0002\u0002", - "\u0002\u0a21\u0a22\u0003\u0002\u0002\u0002\u0a22\u0a24\u0005\u014a\u00a6", - "\u0002\u0a23\u0a25\u0005\u016c\u00b7\u0002\u0a24\u0a23\u0003\u0002\u0002", - "\u0002\u0a24\u0a25\u0003\u0002\u0002\u0002\u0a25\u0a28\u0003\u0002\u0002", - "\u0002\u0a26\u0a29\u0005\u014c\u00a7\u0002\u0a27\u0a29\u0007\u0113\u0002", - "\u0002\u0a28\u0a26\u0003\u0002\u0002\u0002\u0a28\u0a27\u0003\u0002\u0002", - "\u0002\u0a28\u0a29\u0003\u0002\u0002\u0002\u0a29\u016b\u0003\u0002\u0002", - "\u0002\u0a2a\u0a2c\u0006\u00b7\u0007\u0002\u0a2b\u0a2d\u0007)\u0002", - "\u0002\u0a2c\u0a2b\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0003\u0002\u0002", - "\u0002\u0a2d\u0a2e\u0003\u0002\u0002\u0002\u0a2e\u0a2f\u0005\u01b8\u00dd", - "\u0002\u0a2f\u016d\u0003\u0002\u0002\u0002\u0a30\u0a32\t*\u0002\u0002", - "\u0a31\u0a33\u0007<\u0002\u0002\u0a32\u0a31\u0003\u0002\u0002\u0002", - "\u0a32\u0a33\u0003\u0002\u0002\u0002\u0a33\u0a34\u0003\u0002\u0002\u0002", - "\u0a34\u0a35\u0005\u014a\u00a6\u0002\u0a35\u016f\u0003\u0002\u0002\u0002", - "\u0a36\u0a38\b\u00b9\u0001\u0002\u0a37\u0a39\u00078\u0002\u0002\u0a38", - "\u0a37\u0003\u0002\u0002\u0002\u0a38\u0a39\u0003\u0002\u0002\u0002\u0a39", - "\u0a3a\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0007\u001a\u0002\u0002\u0a3b", - "\u0a3c\u0005\u0170\u00b9\u0002\u0a3c\u0a3d\u0007\u001b\u0002\u0002\u0a3d", - "\u0a40\u0003\u0002\u0002\u0002\u0a3e\u0a40\u0005\u0172\u00ba\u0002\u0a3f", - "\u0a36\u0003\u0002\u0002\u0002\u0a3f\u0a3e\u0003\u0002\u0002\u0002\u0a40", - "\u0a47\u0003\u0002\u0002\u0002\u0a41\u0a42\f\u0004\u0002\u0002\u0a42", - "\u0a43\u0005\u017c\u00bf\u0002\u0a43\u0a44\u0005\u0170\u00b9\u0005\u0a44", - "\u0a46\u0003\u0002\u0002\u0002\u0a45\u0a41\u0003\u0002\u0002\u0002\u0a46", - "\u0a49\u0003\u0002\u0002\u0002\u0a47\u0a45\u0003\u0002\u0002\u0002\u0a47", - "\u0a48\u0003\u0002\u0002\u0002\u0a48\u0171\u0003\u0002\u0002\u0002\u0a49", - "\u0a47\u0003\u0002\u0002\u0002\u0a4a\u0a4e\u0005\u0174\u00bb\u0002\u0a4b", - "\u0a4e\u0005\u017a\u00be\u0002\u0a4c\u0a4e\u0005\u0180\u00c1\u0002\u0a4d", - "\u0a4a\u0003\u0002\u0002\u0002\u0a4d\u0a4b\u0003\u0002\u0002\u0002\u0a4d", - "\u0a4c\u0003\u0002\u0002\u0002\u0a4e\u0173\u0003\u0002\u0002\u0002\u0a4f", - "\u0a50\u0005\u0180\u00c1\u0002\u0a50\u0a52\u0007,\u0002\u0002\u0a51", - "\u0a53\u00078\u0002\u0002\u0a52\u0a51\u0003\u0002\u0002\u0002\u0a52", - "\u0a53\u0003\u0002\u0002\u0002\u0a53\u0a54\u0003\u0002\u0002\u0002\u0a54", - "\u0a55\u0007\u0015\u0002\u0002\u0a55\u0a67\u0003\u0002\u0002\u0002\u0a56", - "\u0a57\u0005\u0180\u00c1\u0002\u0a57\u0a58\u0007\u0131\u0002\u0002\u0a58", - "\u0a59\u0005\u0180\u00c1\u0002\u0a59\u0a5a\u0007\u0129\u0002\u0002\u0a5a", - "\u0a5b\u0005\u0180\u00c1\u0002\u0a5b\u0a67\u0003\u0002\u0002\u0002\u0a5c", - "\u0a5e\u00078\u0002\u0002\u0a5d\u0a5c\u0003\u0002\u0002\u0002\u0a5d", - "\u0a5e\u0003\u0002\u0002\u0002\u0a5e\u0a5f\u0003\u0002\u0002\u0002\u0a5f", - "\u0a60\u0007?\u0002\u0002\u0a60\u0a61\u0007\u001a\u0002\u0002\u0a61", - "\u0a62\u0005\u011a\u008e\u0002\u0a62\u0a63\u0007\u001b\u0002\u0002\u0a63", - "\u0a67\u0003\u0002\u0002\u0002\u0a64\u0a67\u0005\u0176\u00bc\u0002\u0a65", - "\u0a67\u0005\u0178\u00bd\u0002\u0a66\u0a4f\u0003\u0002\u0002\u0002\u0a66", - "\u0a56\u0003\u0002\u0002\u0002\u0a66\u0a5d\u0003\u0002\u0002\u0002\u0a66", - "\u0a64\u0003\u0002\u0002\u0002\u0a66\u0a65\u0003\u0002\u0002\u0002\u0a67", - "\u0175\u0003\u0002\u0002\u0002\u0a68\u0a6a\u0005\u0180\u00c1\u0002\u0a69", - "\u0a6b\u00078\u0002\u0002\u0a6a\u0a69\u0003\u0002\u0002\u0002\u0a6a", - "\u0a6b\u0003\u0002\u0002\u0002\u0a6b\u0a6c\u0003\u0002\u0002\u0002\u0a6c", - "\u0a6d\u0007l\u0002\u0002\u0a6d\u0a77\u0007\u001a\u0002\u0002\u0a6e", - "\u0a73\u0005\u0180\u00c1\u0002\u0a6f\u0a70\u0007\u0017\u0002\u0002\u0a70", - "\u0a72\u0005\u0180\u00c1\u0002\u0a71\u0a6f\u0003\u0002\u0002\u0002\u0a72", - "\u0a75\u0003\u0002\u0002\u0002\u0a73\u0a71\u0003\u0002\u0002\u0002\u0a73", - "\u0a74\u0003\u0002\u0002\u0002\u0a74\u0a78\u0003\u0002\u0002\u0002\u0a75", - "\u0a73\u0003\u0002\u0002\u0002\u0a76\u0a78\u0005\u011a\u008e\u0002\u0a77", - "\u0a6e\u0003\u0002\u0002\u0002\u0a77\u0a76\u0003\u0002\u0002\u0002\u0a78", - "\u0a79\u0003\u0002\u0002\u0002\u0a79\u0a7a\u0007\u001b\u0002\u0002\u0a7a", - "\u0177\u0003\u0002\u0002\u0002\u0a7b\u0a7c\u0007\u001a\u0002\u0002\u0a7c", - "\u0a81\u0005\u0180\u00c1\u0002\u0a7d\u0a7e\u0007\u0017\u0002\u0002\u0a7e", - "\u0a80\u0005\u0180\u00c1\u0002\u0a7f\u0a7d\u0003\u0002\u0002\u0002\u0a80", - "\u0a83\u0003\u0002\u0002\u0002\u0a81\u0a7f\u0003\u0002\u0002\u0002\u0a81", - "\u0a82\u0003\u0002\u0002\u0002\u0a82\u0a84\u0003\u0002\u0002\u0002\u0a83", - "\u0a81\u0003\u0002\u0002\u0002\u0a84\u0a86\u0007\u001b\u0002\u0002\u0a85", - "\u0a87\u00078\u0002\u0002\u0a86\u0a85\u0003\u0002\u0002\u0002\u0a86", - "\u0a87\u0003\u0002\u0002\u0002\u0a87\u0a88\u0003\u0002\u0002\u0002\u0a88", - "\u0a89\u0007l\u0002\u0002\u0a89\u0a8a\u0007\u001a\u0002\u0002\u0a8a", - "\u0a8b\u0005\u011a\u008e\u0002\u0a8b\u0a8c\u0007\u001b\u0002\u0002\u0a8c", - "\u0179\u0003\u0002\u0002\u0002\u0a8d\u0a8e\u0005\u0180\u00c1\u0002\u0a8e", - "\u0a8f\u0005\u017e\u00c0\u0002\u0a8f\u0a90\u0005\u0180\u00c1\u0002\u0a90", - "\u017b\u0003\u0002\u0002\u0002\u0a91\u0a92\t+\u0002\u0002\u0a92\u017d", - "\u0003\u0002\u0002\u0002\u0a93\u0aa0\u0007\u0019\u0002\u0002\u0a94\u0aa0", - "\u0007\u0132\u0002\u0002\u0a95\u0aa0\u0007\u0133\u0002\u0002\u0a96\u0aa0", - "\u0007\u0134\u0002\u0002\u0a97\u0aa0\u0007\u010f\u0002\u0002\u0a98\u0aa0", - "\u0007\u0135\u0002\u0002\u0a99\u0aa0\u0007\u0110\u0002\u0002\u0a9a\u0aa0", - "\u0007\u0136\u0002\u0002\u0a9b\u0a9d\u00078\u0002\u0002\u0a9c\u0a9b", - "\u0003\u0002\u0002\u0002\u0a9c\u0a9d\u0003\u0002\u0002\u0002\u0a9d\u0a9e", - "\u0003\u0002\u0002\u0002\u0a9e\u0aa0\t,\u0002\u0002\u0a9f\u0a93\u0003", - "\u0002\u0002\u0002\u0a9f\u0a94\u0003\u0002\u0002\u0002\u0a9f\u0a95\u0003", - "\u0002\u0002\u0002\u0a9f\u0a96\u0003\u0002\u0002\u0002\u0a9f\u0a97\u0003", - "\u0002\u0002\u0002\u0a9f\u0a98\u0003\u0002\u0002\u0002\u0a9f\u0a99\u0003", - "\u0002\u0002\u0002\u0a9f\u0a9a\u0003\u0002\u0002\u0002\u0a9f\u0a9c\u0003", - "\u0002\u0002\u0002\u0aa0\u017f\u0003\u0002\u0002\u0002\u0aa1\u0aa2\b", - "\u00c1\u0001\u0002\u0aa2\u0aa3\u0007\u001a\u0002\u0002\u0aa3\u0aa4\u0005", - "\u011a\u008e\u0002\u0aa4\u0aa5\u0007\u001b\u0002\u0002\u0aa5\u0ab3\u0003", - "\u0002\u0002\u0002\u0aa6\u0aa7\u0007\u001a\u0002\u0002\u0aa7\u0aa8\u0005", - "\u0180\u00c1\u0002\u0aa8\u0aa9\u0007\u001b\u0002\u0002\u0aa9\u0ab3\u0003", - "\u0002\u0002\u0002\u0aaa\u0ab3\u0005\u0184\u00c3\u0002\u0aab\u0ab3\u0005", - "\u0188\u00c5\u0002\u0aac\u0ab3\u0005\u018c\u00c7\u0002\u0aad\u0ab3\u0005", - "\u0192\u00ca\u0002\u0aae\u0ab3\u0005\u0194\u00cb\u0002\u0aaf\u0ab3\u0005", - "\u019c\u00cf\u0002\u0ab0\u0ab3\u0005\u019e\u00d0\u0002\u0ab1\u0ab3\u0005", - "\u0182\u00c2\u0002\u0ab2\u0aa1\u0003\u0002\u0002\u0002\u0ab2\u0aa6\u0003", - "\u0002\u0002\u0002\u0ab2\u0aaa\u0003\u0002\u0002\u0002\u0ab2\u0aab\u0003", - "\u0002\u0002\u0002\u0ab2\u0aac\u0003\u0002\u0002\u0002\u0ab2\u0aad\u0003", - "\u0002\u0002\u0002\u0ab2\u0aae\u0003\u0002\u0002\u0002\u0ab2\u0aaf\u0003", - "\u0002\u0002\u0002\u0ab2\u0ab0\u0003\u0002\u0002\u0002\u0ab2\u0ab1\u0003", - "\u0002\u0002\u0002\u0ab3\u0ac4\u0003\u0002\u0002\u0002\u0ab4\u0ab5\f", - "\u0010\u0002\u0002\u0ab5\u0ab6\u0007\u0139\u0002\u0002\u0ab6\u0ac3\u0005", - "\u0180\u00c1\u0011\u0ab7\u0ab8\f\u000f\u0002\u0002\u0ab8\u0ab9\u0007", - "\u013a\u0002\u0002\u0ab9\u0ac3\u0005\u0180\u00c1\u0010\u0aba\u0abb\f", - "\u000e\u0002\u0002\u0abb\u0abc\u0007\u013b\u0002\u0002\u0abc\u0ac3\u0005", - "\u0180\u00c1\u000f\u0abd\u0abe\f\r\u0002\u0002\u0abe\u0abf\u0007\u013c", - "\u0002\u0002\u0abf\u0ac3\u0005\u0180\u00c1\u000e\u0ac0\u0ac1\f\u0011", - "\u0002\u0002\u0ac1\u0ac3\u0005\u0186\u00c4\u0002\u0ac2\u0ab4\u0003\u0002", - "\u0002\u0002\u0ac2\u0ab7\u0003\u0002\u0002\u0002\u0ac2\u0aba\u0003\u0002", - "\u0002\u0002\u0ac2\u0abd\u0003\u0002\u0002\u0002\u0ac2\u0ac0\u0003\u0002", - "\u0002\u0002\u0ac3\u0ac6\u0003\u0002\u0002\u0002\u0ac4\u0ac2\u0003\u0002", - "\u0002\u0002\u0ac4\u0ac5\u0003\u0002\u0002\u0002\u0ac5\u0181\u0003\u0002", - "\u0002\u0002\u0ac6\u0ac4\u0003\u0002\u0002\u0002\u0ac7\u0ad0\u0005\u01b4", - "\u00db\u0002\u0ac8\u0ad0\u0005\u01b6\u00dc\u0002\u0ac9\u0ad0\u0005\u01c0", - "\u00e1\u0002\u0aca\u0ad0\u0005\u01b8\u00dd\u0002\u0acb\u0ad0\u0005\u01ba", - "\u00de\u0002\u0acc\u0ad0\u0005\u01be\u00e0\u0002\u0acd\u0ad0\u0005\u01bc", - "\u00df\u0002\u0ace\u0ad0\u0005\u01c2\u00e2\u0002\u0acf\u0ac7\u0003\u0002", - "\u0002\u0002\u0acf\u0ac8\u0003\u0002\u0002\u0002\u0acf\u0ac9\u0003\u0002", - "\u0002\u0002\u0acf\u0aca\u0003\u0002\u0002\u0002\u0acf\u0acb\u0003\u0002", - "\u0002\u0002\u0acf\u0acc\u0003\u0002\u0002\u0002\u0acf\u0acd\u0003\u0002", - "\u0002\u0002\u0acf\u0ace\u0003\u0002\u0002\u0002\u0ad0\u0183\u0003\u0002", - "\u0002\u0002\u0ad1\u0ad2\u0007\u013d\u0002\u0002\u0ad2\u0ad3\u0005\u0180", - "\u00c1\u0002\u0ad3\u0ad4\u0005\u0186\u00c4\u0002\u0ad4\u0185\u0003\u0002", - "\u0002\u0002\u0ad5\u0ad6\t-\u0002\u0002\u0ad6\u0187\u0003\u0002\u0002", - "\u0002\u0ad7\u0ad8\u0005\u018a\u00c6\u0002\u0ad8\u0ad9\t.\u0002\u0002", - "\u0ad9\u0ade\u0005\u018a\u00c6\u0002\u0ada\u0adb\t.\u0002\u0002\u0adb", - "\u0add\u0005\u018a\u00c6\u0002\u0adc\u0ada\u0003\u0002\u0002\u0002\u0add", - "\u0ae0\u0003\u0002\u0002\u0002\u0ade\u0adc\u0003\u0002\u0002\u0002\u0ade", - "\u0adf\u0003\u0002\u0002\u0002\u0adf\u0189\u0003\u0002\u0002\u0002\u0ae0", - "\u0ade\u0003\u0002\u0002\u0002\u0ae1\u0ae2\u0007\u001a\u0002\u0002\u0ae2", - "\u0ae3\u0005\u0180\u00c1\u0002\u0ae3\u0ae4\u0007\u001b\u0002\u0002\u0ae4", - "\u0aeb\u0003\u0002\u0002\u0002\u0ae5\u0aeb\u0005\u018c\u00c7\u0002\u0ae6", - "\u0aeb\u0005\u0194\u00cb\u0002\u0ae7\u0aeb\u0005\u019c\u00cf\u0002\u0ae8", - "\u0aeb\u0005\u019e\u00d0\u0002\u0ae9\u0aeb\u0005\u0182\u00c2\u0002\u0aea", - "\u0ae1\u0003\u0002\u0002\u0002\u0aea\u0ae5\u0003\u0002\u0002\u0002\u0aea", - "\u0ae6\u0003\u0002\u0002\u0002\u0aea\u0ae7\u0003\u0002\u0002\u0002\u0aea", - "\u0ae8\u0003\u0002\u0002\u0002\u0aea\u0ae9\u0003\u0002\u0002\u0002\u0aeb", - "\u018b\u0003\u0002\u0002\u0002\u0aec\u0aef\u0005\u018e\u00c8\u0002\u0aed", - "\u0aef\u0005\u0190\u00c9\u0002\u0aee\u0aec\u0003\u0002\u0002\u0002\u0aee", - "\u0aed\u0003\u0002\u0002\u0002\u0aef\u018d\u0003\u0002\u0002\u0002\u0af0", - "\u0af1\u0007\u0146\u0002\u0002\u0af1\u0af7\u0005\u0180\u00c1\u0002\u0af2", - "\u0af3\u0007\u0012\u0002\u0002\u0af3\u0af4\u0005\u0180\u00c1\u0002\u0af4", - "\u0af5\u0007\u0014\u0002\u0002\u0af5\u0af6\u0005\u0180\u00c1\u0002\u0af6", - "\u0af8\u0003\u0002\u0002\u0002\u0af7\u0af2\u0003\u0002\u0002\u0002\u0af8", - "\u0af9\u0003\u0002\u0002\u0002\u0af9\u0af7\u0003\u0002\u0002\u0002\u0af9", - "\u0afa\u0003\u0002\u0002\u0002\u0afa\u0afd\u0003\u0002\u0002\u0002\u0afb", - "\u0afc\u0007\u00ce\u0002\u0002\u0afc\u0afe\u0005\u0180\u00c1\u0002\u0afd", - "\u0afb\u0003\u0002\u0002\u0002\u0afd\u0afe\u0003\u0002\u0002\u0002\u0afe", - "\u0aff\u0003\u0002\u0002\u0002\u0aff\u0b00\u0007\u0010\u0002\u0002\u0b00", - "\u018f\u0003\u0002\u0002\u0002\u0b01\u0b07\u0007\u0146\u0002\u0002\u0b02", - "\u0b03\u0007\u0012\u0002\u0002\u0b03\u0b04\u0005\u0170\u00b9\u0002\u0b04", - "\u0b05\u0007\u0014\u0002\u0002\u0b05\u0b06\u0005\u0180\u00c1\u0002\u0b06", - "\u0b08\u0003\u0002\u0002\u0002\u0b07\u0b02\u0003\u0002\u0002\u0002\u0b08", - "\u0b09\u0003\u0002\u0002\u0002\u0b09\u0b07\u0003\u0002\u0002\u0002\u0b09", - "\u0b0a\u0003\u0002\u0002\u0002\u0b0a\u0b0d\u0003\u0002\u0002\u0002\u0b0b", - "\u0b0c\u0007\u00ce\u0002\u0002\u0b0c\u0b0e\u0005\u0180\u00c1\u0002\u0b0d", - "\u0b0b\u0003\u0002\u0002\u0002\u0b0d\u0b0e\u0003\u0002\u0002\u0002\u0b0e", - "\u0b0f\u0003\u0002\u0002\u0002\u0b0f\u0b10\u0007\u0010\u0002\u0002\u0b10", - "\u0191\u0003\u0002\u0002\u0002\u0b11\u0b12\u0005\u01b8\u00dd\u0002\u0b12", - "\u0b13\u0007\u0006\u0002\u0002\u0b13\u0b14\t/\u0002\u0002\u0b14\u0193", - "\u0003\u0002\u0002\u0002\u0b15\u0b16\u0007\u0149\u0002\u0002\u0b16\u0b18", - "\u0007\u001a\u0002\u0002\u0b17\u0b19\u0005\u0196\u00cc\u0002\u0b18\u0b17", - "\u0003\u0002\u0002\u0002\u0b18\u0b19\u0003\u0002\u0002\u0002\u0b19\u0b1a", - "\u0003\u0002\u0002\u0002\u0b1a\u0b1b\u0005\u0180\u00c1\u0002\u0b1b\u0b1d", - "\u0007\u001b\u0002\u0002\u0b1c\u0b1e\u0005\u0198\u00cd\u0002\u0b1d\u0b1c", - "\u0003\u0002\u0002\u0002\u0b1d\u0b1e\u0003\u0002\u0002\u0002\u0b1e\u0bae", - "\u0003\u0002\u0002\u0002\u0b1f\u0b20\u0007\u014a\u0002\u0002\u0b20\u0b26", - "\u0007\u001a\u0002\u0002\u0b21\u0b23\u0005\u0196\u00cc\u0002\u0b22\u0b21", - "\u0003\u0002\u0002\u0002\u0b22\u0b23\u0003\u0002\u0002\u0002\u0b23\u0b24", - "\u0003\u0002\u0002\u0002\u0b24\u0b27\u0005\u0180\u00c1\u0002\u0b25\u0b27", - "\u0007\b\u0002\u0002\u0b26\u0b22\u0003\u0002\u0002\u0002\u0b26\u0b25", - "\u0003\u0002\u0002\u0002\u0b27\u0b28\u0003\u0002\u0002\u0002\u0b28\u0b2a", - "\u0007\u001b\u0002\u0002\u0b29\u0b2b\u0005\u0198\u00cd\u0002\u0b2a\u0b29", - "\u0003\u0002\u0002\u0002\u0b2a\u0b2b\u0003\u0002\u0002\u0002\u0b2b\u0bae", - "\u0003\u0002\u0002\u0002\u0b2c\u0b2d\u0007\u014b\u0002\u0002\u0b2d\u0b33", - "\u0007\u001a\u0002\u0002\u0b2e\u0b30\u0005\u0196\u00cc\u0002\u0b2f\u0b2e", - "\u0003\u0002\u0002\u0002\u0b2f\u0b30\u0003\u0002\u0002\u0002\u0b30\u0b31", - "\u0003\u0002\u0002\u0002\u0b31\u0b34\u0005\u0180\u00c1\u0002\u0b32\u0b34", - "\u0007\b\u0002\u0002\u0b33\u0b2f\u0003\u0002\u0002\u0002\u0b33\u0b32", - "\u0003\u0002\u0002\u0002\u0b34\u0b35\u0003\u0002\u0002\u0002\u0b35\u0b37", - "\u0007\u001b\u0002\u0002\u0b36\u0b38\u0005\u0198\u00cd\u0002\u0b37\u0b36", - "\u0003\u0002\u0002\u0002\u0b37\u0b38\u0003\u0002\u0002\u0002\u0b38\u0bae", - "\u0003\u0002\u0002\u0002\u0b39\u0b3a\u0007\u014c\u0002\u0002\u0b3a\u0b3b", - "\u0007\u001a\u0002\u0002\u0b3b\u0b3c\u0007\u001b\u0002\u0002\u0b3c\u0bae", - "\u0005\u0198\u00cd\u0002\u0b3d\u0b3e\u0007\u014d\u0002\u0002\u0b3e\u0b3f", - "\u0007\u001a\u0002\u0002\u0b3f\u0b40\u0007\u001b\u0002\u0002\u0b40\u0bae", - "\u0005\u0198\u00cd\u0002\u0b41\u0b42\u0007\u014e\u0002\u0002\u0b42\u0b43", - "\u0007\u001a\u0002\u0002\u0b43\u0b44\u0005\u0180\u00c1\u0002\u0b44\u0b45", - "\u0007\u001b\u0002\u0002\u0b45\u0b46\u0005\u0198\u00cd\u0002\u0b46\u0bae", - "\u0003\u0002\u0002\u0002\u0b47\u0b48\u0007\u014f\u0002\u0002\u0b48\u0b49", - "\u0007\u001a\u0002\u0002\u0b49\u0b50\u0005\u0180\u00c1\u0002\u0b4a\u0b4b", - "\u0007\u0017\u0002\u0002\u0b4b\u0b4e\u0005\u0180\u00c1\u0002\u0b4c\u0b4d", - "\u0007\u0017\u0002\u0002\u0b4d\u0b4f\u0005\u0180\u00c1\u0002\u0b4e\u0b4c", - "\u0003\u0002\u0002\u0002\u0b4e\u0b4f\u0003\u0002\u0002\u0002\u0b4f\u0b51", - "\u0003\u0002\u0002\u0002\u0b50\u0b4a\u0003\u0002\u0002\u0002\u0b50\u0b51", - "\u0003\u0002\u0002\u0002\u0b51\u0b52\u0003\u0002\u0002\u0002\u0b52\u0b53", - "\u0007\u001b\u0002\u0002\u0b53\u0b54\u0005\u0198\u00cd\u0002\u0b54\u0bae", - "\u0003\u0002\u0002\u0002\u0b55\u0b56\u0007\u0150\u0002\u0002\u0b56\u0b57", - "\u0007\u001a\u0002\u0002\u0b57\u0b58\u0005\u0180\u00c1\u0002\u0b58\u0b59", - "\u0007\u001b\u0002\u0002\u0b59\u0b5a\u0005\u0198\u00cd\u0002\u0b5a\u0bae", - "\u0003\u0002\u0002\u0002\u0b5b\u0b5c\u0007\u0151\u0002\u0002\u0b5c\u0b5d", - "\u0007\u001a\u0002\u0002\u0b5d\u0b64\u0005\u0180\u00c1\u0002\u0b5e\u0b5f", - "\u0007\u0017\u0002\u0002\u0b5f\u0b62\u0005\u0180\u00c1\u0002\u0b60\u0b61", - "\u0007\u0017\u0002\u0002\u0b61\u0b63\u0005\u0180\u00c1\u0002\u0b62\u0b60", - "\u0003\u0002\u0002\u0002\u0b62\u0b63\u0003\u0002\u0002\u0002\u0b63\u0b65", - "\u0003\u0002\u0002\u0002\u0b64\u0b5e\u0003\u0002\u0002\u0002\u0b64\u0b65", - "\u0003\u0002\u0002\u0002\u0b65\u0b66\u0003\u0002\u0002\u0002\u0b66\u0b67", - "\u0007\u001b\u0002\u0002\u0b67\u0b68\u0005\u0198\u00cd\u0002\u0b68\u0bae", - "\u0003\u0002\u0002\u0002\u0b69\u0b6a\u0007\u00b3\u0002\u0002\u0b6a\u0b6c", - "\u0007\u001a\u0002\u0002\u0b6b\u0b6d\u0005\u0196\u00cc\u0002\u0b6c\u0b6b", - "\u0003\u0002\u0002\u0002\u0b6c\u0b6d\u0003\u0002\u0002\u0002\u0b6d\u0b6e", - "\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0005\u0180\u00c1\u0002\u0b6f\u0b71", - "\u0007\u001b\u0002\u0002\u0b70\u0b72\u0005\u0198\u00cd\u0002\u0b71\u0b70", - "\u0003\u0002\u0002\u0002\u0b71\u0b72\u0003\u0002\u0002\u0002\u0b72\u0bae", - "\u0003\u0002\u0002\u0002\u0b73\u0b74\u0007\u0152\u0002\u0002\u0b74\u0b76", - "\u0007\u001a\u0002\u0002\u0b75\u0b77\u0005\u0196\u00cc\u0002\u0b76\u0b75", - "\u0003\u0002\u0002\u0002\u0b76\u0b77\u0003\u0002\u0002\u0002\u0b77\u0b78", - "\u0003\u0002\u0002\u0002\u0b78\u0b79\u0005\u0180\u00c1\u0002\u0b79\u0b7b", - "\u0007\u001b\u0002\u0002\u0b7a\u0b7c\u0005\u0198\u00cd\u0002\u0b7b\u0b7a", - "\u0003\u0002\u0002\u0002\u0b7b\u0b7c\u0003\u0002\u0002\u0002\u0b7c\u0bae", - "\u0003\u0002\u0002\u0002\u0b7d\u0b7e\u0007\u0153\u0002\u0002\u0b7e\u0b7f", - "\u0007\u001a\u0002\u0002\u0b7f\u0b80\u0007\u001b\u0002\u0002\u0b80\u0bae", - "\u0005\u0198\u00cd\u0002\u0b81\u0b82\u0007\u0154\u0002\u0002\u0b82\u0b83", - "\u0007\u001a\u0002\u0002\u0b83\u0b84\u0007\u001b\u0002\u0002\u0b84\u0bae", - "\u0005\u0198\u00cd\u0002\u0b85\u0b86\u0007\u0155\u0002\u0002\u0b86\u0b88", - "\u0007\u001a\u0002\u0002\u0b87\u0b89\u0005\u0196\u00cc\u0002\u0b88\u0b87", - "\u0003\u0002\u0002\u0002\u0b88\u0b89\u0003\u0002\u0002\u0002\u0b89\u0b8a", - "\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0005\u0180\u00c1\u0002\u0b8b\u0b8d", - "\u0007\u001b\u0002\u0002\u0b8c\u0b8e\u0005\u0198\u00cd\u0002\u0b8d\u0b8c", - "\u0003\u0002\u0002\u0002\u0b8d\u0b8e\u0003\u0002\u0002\u0002\u0b8e\u0bae", - "\u0003\u0002\u0002\u0002\u0b8f\u0b90\u0007\u00e8\u0002\u0002\u0b90\u0b92", - "\u0007\u001a\u0002\u0002\u0b91\u0b93\u0005\u0196\u00cc\u0002\u0b92\u0b91", - "\u0003\u0002\u0002\u0002\u0b92\u0b93\u0003\u0002\u0002\u0002\u0b93\u0b94", - "\u0003\u0002\u0002\u0002\u0b94\u0b95\u0005\u0180\u00c1\u0002\u0b95\u0b97", - "\u0007\u001b\u0002\u0002\u0b96\u0b98\u0005\u0198\u00cd\u0002\u0b97\u0b96", - "\u0003\u0002\u0002\u0002\u0b97\u0b98\u0003\u0002\u0002\u0002\u0b98\u0bae", - "\u0003\u0002\u0002\u0002\u0b99\u0b9a\u0007\u0156\u0002\u0002\u0b9a\u0b9c", - "\u0007\u001a\u0002\u0002\u0b9b\u0b9d\u0005\u0196\u00cc\u0002\u0b9c\u0b9b", - "\u0003\u0002\u0002\u0002\u0b9c\u0b9d\u0003\u0002\u0002\u0002\u0b9d\u0b9e", - "\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0005\u0180\u00c1\u0002\u0b9f\u0ba1", - "\u0007\u001b\u0002\u0002\u0ba0\u0ba2\u0005\u0198\u00cd\u0002\u0ba1\u0ba0", - "\u0003\u0002\u0002\u0002\u0ba1\u0ba2\u0003\u0002\u0002\u0002\u0ba2\u0bae", - "\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0007\u0157\u0002\u0002\u0ba4\u0ba6", - "\u0007\u001a\u0002\u0002\u0ba5\u0ba7\u0005\u0196\u00cc\u0002\u0ba6\u0ba5", - "\u0003\u0002\u0002\u0002\u0ba6\u0ba7\u0003\u0002\u0002\u0002\u0ba7\u0ba8", - "\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0005\u0180\u00c1\u0002\u0ba9\u0bab", - "\u0007\u001b\u0002\u0002\u0baa\u0bac\u0005\u0198\u00cd\u0002\u0bab\u0baa", - "\u0003\u0002\u0002\u0002\u0bab\u0bac\u0003\u0002\u0002\u0002\u0bac\u0bae", - "\u0003\u0002\u0002\u0002\u0bad\u0b15\u0003\u0002\u0002\u0002\u0bad\u0b1f", - "\u0003\u0002\u0002\u0002\u0bad\u0b2c\u0003\u0002\u0002\u0002\u0bad\u0b39", - "\u0003\u0002\u0002\u0002\u0bad\u0b3d\u0003\u0002\u0002\u0002\u0bad\u0b41", - "\u0003\u0002\u0002\u0002\u0bad\u0b47\u0003\u0002\u0002\u0002\u0bad\u0b55", - "\u0003\u0002\u0002\u0002\u0bad\u0b5b\u0003\u0002\u0002\u0002\u0bad\u0b69", - "\u0003\u0002\u0002\u0002\u0bad\u0b73\u0003\u0002\u0002\u0002\u0bad\u0b7d", - "\u0003\u0002\u0002\u0002\u0bad\u0b81\u0003\u0002\u0002\u0002\u0bad\u0b85", - "\u0003\u0002\u0002\u0002\u0bad\u0b8f\u0003\u0002\u0002\u0002\u0bad\u0b99", - "\u0003\u0002\u0002\u0002\u0bad\u0ba3\u0003\u0002\u0002\u0002\u0bae\u0195", - "\u0003\u0002\u0002\u0002\u0baf\u0bb0\t&\u0002\u0002\u0bb0\u0197\u0003", - "\u0002\u0002\u0002\u0bb1\u0bb2\u0007\u0158\u0002\u0002\u0bb2\u0bb4\u0007", - "\u001a\u0002\u0002\u0bb3\u0bb5\u0005\u019a\u00ce\u0002\u0bb4\u0bb3\u0003", - "\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002\u0bb5\u0bb7\u0003", - "\u0002\u0002\u0002\u0bb6\u0bb8\u0005\u0154\u00ab\u0002\u0bb7\u0bb6\u0003", - "\u0002\u0002\u0002\u0bb7\u0bb8\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0003", - "\u0002\u0002\u0002\u0bb9\u0bba\u0007\u001b\u0002\u0002\u0bba\u0199\u0003", - "\u0002\u0002\u0002\u0bbb\u0bbc\u0007\u0159\u0002\u0002\u0bbc\u0bbd\u0007", - "o\u0002\u0002\u0bbd\u0bc2\u0005\u0180\u00c1\u0002\u0bbe\u0bbf\u0007", - "\u0017\u0002\u0002\u0bbf\u0bc1\u0005\u0180\u00c1\u0002\u0bc0\u0bbe\u0003", - "\u0002\u0002\u0002\u0bc1\u0bc4\u0003\u0002\u0002\u0002\u0bc2\u0bc0\u0003", - "\u0002\u0002\u0002\u0bc2\u0bc3\u0003\u0002\u0002\u0002\u0bc3\u019b\u0003", - "\u0002\u0002\u0002\u0bc4\u0bc2\u0003\u0002\u0002\u0002\u0bc5\u0c8e\u0007", - "\u015a\u0002\u0002\u0bc6\u0bc7\u0007\u015b\u0002\u0002\u0bc7\u0bc8\u0007", - "\u001a\u0002\u0002\u0bc8\u0bc9\u0005\u0180\u00c1\u0002\u0bc9\u0bca\u0007", - ")\u0002\u0002\u0bca\u0bcc\u0005x=\u0002\u0bcb\u0bcd\u0005z>\u0002\u0bcc", - "\u0bcb\u0003\u0002\u0002\u0002\u0bcc\u0bcd\u0003\u0002\u0002\u0002\u0bcd", - "\u0bce\u0003\u0002\u0002\u0002\u0bce\u0bcf\u0007\u001b\u0002\u0002\u0bcf", - "\u0c8e\u0003\u0002\u0002\u0002\u0bd0\u0bd1\u0007\u014a\u0002\u0002\u0bd1", - "\u0bd4\u0007\u001a\u0002\u0002\u0bd2\u0bd5\u0005\u0180\u00c1\u0002\u0bd3", - "\u0bd5\u0007\b\u0002\u0002\u0bd4\u0bd2\u0003\u0002\u0002\u0002\u0bd4", - "\u0bd3\u0003\u0002\u0002\u0002\u0bd5\u0bd6\u0003\u0002\u0002\u0002\u0bd6", - "\u0c8e\u0007\u001b\u0002\u0002\u0bd7\u0c8e\u0007\u015c\u0002\u0002\u0bd8", - "\u0bd9\u0007\u00f7\u0002\u0002\u0bd9\u0c8e\u0007\u0091\u0002\u0002\u0bda", - "\u0bde\u0007\u015d\u0002\u0002\u0bdb\u0bdc\u0007\u00f7\u0002\u0002\u0bdc", - "\u0bde\u0007\u00ac\u0002\u0002\u0bdd\u0bda\u0003\u0002\u0002\u0002\u0bdd", - "\u0bdb\u0003\u0002\u0002\u0002\u0bde\u0be3\u0003\u0002\u0002\u0002\u0bdf", - "\u0be0\u0007\u001a\u0002\u0002\u0be0\u0be1\u0005\u0180\u00c1\u0002\u0be1", - "\u0be2\u0007\u001b\u0002\u0002\u0be2\u0be4\u0003\u0002\u0002\u0002\u0be3", - "\u0bdf\u0003\u0002\u0002\u0002\u0be3\u0be4\u0003\u0002\u0002\u0002\u0be4", - "\u0c8e\u0003\u0002\u0002\u0002\u0be5\u0c8e\u0007\u015e\u0002\u0002\u0be6", - "\u0be7\u0007\u00f7\u0002\u0002\u0be7\u0c8e\u0007\u015f\u0002\u0002\u0be8", - "\u0be9\u0007\u0160\u0002\u0002\u0be9\u0bea\u0007\u001a\u0002\u0002\u0bea", - "\u0bf7\u0005\u0180\u00c1\u0002\u0beb\u0bec\u0007\u0017\u0002\u0002\u0bec", - "\u0bf4\u0005\u0180\u00c1\u0002\u0bed\u0bee\u0007\u0017\u0002\u0002\u0bee", - "\u0bef\u0005\u0180\u00c1\u0002\u0bef\u0bf0\u0007\u0019\u0002\u0002\u0bf0", - "\u0bf1\u0005\u0180\u00c1\u0002\u0bf1\u0bf3\u0003\u0002\u0002\u0002\u0bf2", - "\u0bed\u0003\u0002\u0002\u0002\u0bf3\u0bf6\u0003\u0002\u0002\u0002\u0bf4", - "\u0bf2\u0003\u0002\u0002\u0002\u0bf4\u0bf5\u0003\u0002\u0002\u0002\u0bf5", - "\u0bf8\u0003\u0002\u0002\u0002\u0bf6\u0bf4\u0003\u0002\u0002\u0002\u0bf7", - "\u0beb\u0003\u0002\u0002\u0002\u0bf7\u0bf8\u0003\u0002\u0002\u0002\u0bf8", - "\u0bf9\u0003\u0002\u0002\u0002\u0bf9\u0bfa\u0007\u001b\u0002\u0002\u0bfa", - "\u0c8e\u0003\u0002\u0002\u0002\u0bfb\u0bfc\u0007\u0161\u0002\u0002\u0bfc", - "\u0bfd\u0007\u001a\u0002\u0002\u0bfd\u0c0a\u0005\u0180\u00c1\u0002\u0bfe", - "\u0bff\u0007\u0017\u0002\u0002\u0bff\u0c07\u0005\u0180\u00c1\u0002\u0c00", - "\u0c01\u0007\u0017\u0002\u0002\u0c01\u0c02\u0005\u0180\u00c1\u0002\u0c02", - "\u0c03\u0007\u0019\u0002\u0002\u0c03\u0c04\u0005\u0180\u00c1\u0002\u0c04", - "\u0c06\u0003\u0002\u0002\u0002\u0c05\u0c00\u0003\u0002\u0002\u0002\u0c06", - "\u0c09\u0003\u0002\u0002\u0002\u0c07\u0c05\u0003\u0002\u0002\u0002\u0c07", - "\u0c08\u0003\u0002\u0002\u0002\u0c08\u0c0b\u0003\u0002\u0002\u0002\u0c09", - "\u0c07\u0003\u0002\u0002\u0002\u0c0a\u0bfe\u0003\u0002\u0002\u0002\u0c0a", - "\u0c0b\u0003\u0002\u0002\u0002\u0c0b\u0c0c\u0003\u0002\u0002\u0002\u0c0c", - "\u0c0d\u0007\u001b\u0002\u0002\u0c0d\u0c8e\u0003\u0002\u0002\u0002\u0c0e", - "\u0c0f\u0007\u0162\u0002\u0002\u0c0f\u0c10\u0007\u001a\u0002\u0002\u0c10", - "\u0c1d\u0005\u0180\u00c1\u0002\u0c11\u0c12\u0007\u0017\u0002\u0002\u0c12", - "\u0c1a\u0005\u0180\u00c1\u0002\u0c13\u0c14\u0007\u0017\u0002\u0002\u0c14", - "\u0c15\u0005\u0180\u00c1\u0002\u0c15\u0c16\u0007\u0019\u0002\u0002\u0c16", - "\u0c17\u0005\u0180\u00c1\u0002\u0c17\u0c19\u0003\u0002\u0002\u0002\u0c18", - "\u0c13\u0003\u0002\u0002\u0002\u0c19\u0c1c\u0003\u0002\u0002\u0002\u0c1a", - "\u0c18\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0003\u0002\u0002\u0002\u0c1b", - "\u0c1e\u0003\u0002\u0002\u0002\u0c1c\u0c1a\u0003\u0002\u0002\u0002\u0c1d", - "\u0c11\u0003\u0002\u0002\u0002\u0c1d\u0c1e\u0003\u0002\u0002\u0002\u0c1e", - "\u0c1f\u0003\u0002\u0002\u0002\u0c1f\u0c20\u0007\u001b\u0002\u0002\u0c20", - "\u0c8e\u0003\u0002\u0002\u0002\u0c21\u0c22\u0007\u0163\u0002\u0002\u0c22", - "\u0c23\u0007\u001a\u0002\u0002\u0c23\u0c30\u0005\u0180\u00c1\u0002\u0c24", - "\u0c25\u0007\u0017\u0002\u0002\u0c25\u0c2d\u0005\u0180\u00c1\u0002\u0c26", - "\u0c27\u0007\u0017\u0002\u0002\u0c27\u0c28\u0005\u0180\u00c1\u0002\u0c28", - "\u0c29\u0007\u0019\u0002\u0002\u0c29\u0c2a\u0005\u0180\u00c1\u0002\u0c2a", - "\u0c2c\u0003\u0002\u0002\u0002\u0c2b\u0c26\u0003\u0002\u0002\u0002\u0c2c", - "\u0c2f\u0003\u0002\u0002\u0002\u0c2d\u0c2b\u0003\u0002\u0002\u0002\u0c2d", - "\u0c2e\u0003\u0002\u0002\u0002\u0c2e\u0c31\u0003\u0002\u0002\u0002\u0c2f", - "\u0c2d\u0003\u0002\u0002\u0002\u0c30\u0c24\u0003\u0002\u0002\u0002\u0c30", - "\u0c31\u0003\u0002\u0002\u0002\u0c31\u0c32\u0003\u0002\u0002\u0002\u0c32", - "\u0c33\u0007\u001b\u0002\u0002\u0c33\u0c8e\u0003\u0002\u0002\u0002\u0c34", - "\u0c35\u0007\u0164\u0002\u0002\u0c35\u0c36\u0007\u001a\u0002\u0002\u0c36", - "\u0c43\u0005\u0180\u00c1\u0002\u0c37\u0c38\u0007\u0017\u0002\u0002\u0c38", - "\u0c40\u0005\u0180\u00c1\u0002\u0c39\u0c3a\u0007\u0017\u0002\u0002\u0c3a", - "\u0c3b\u0005\u0180\u00c1\u0002\u0c3b\u0c3c\u0007\u0019\u0002\u0002\u0c3c", - "\u0c3d\u0005\u0180\u00c1\u0002\u0c3d\u0c3f\u0003\u0002\u0002\u0002\u0c3e", - "\u0c39\u0003\u0002\u0002\u0002\u0c3f\u0c42\u0003\u0002\u0002\u0002\u0c40", - "\u0c3e\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002\u0002\u0c41", - "\u0c44\u0003\u0002\u0002\u0002\u0c42\u0c40\u0003\u0002\u0002\u0002\u0c43", - "\u0c37\u0003\u0002\u0002\u0002\u0c43\u0c44\u0003\u0002\u0002\u0002\u0c44", - "\u0c45\u0003\u0002\u0002\u0002\u0c45\u0c46\u0007\u001b\u0002\u0002\u0c46", - "\u0c8e\u0003\u0002\u0002\u0002\u0c47\u0c48\u0007\u0165\u0002\u0002\u0c48", - "\u0c49\u0007\u001a\u0002\u0002\u0c49\u0c56\u0005\u0180\u00c1\u0002\u0c4a", - "\u0c4b\u0007\u0017\u0002\u0002\u0c4b\u0c53\u0005\u0180\u00c1\u0002\u0c4c", - "\u0c4d\u0007\u0017\u0002\u0002\u0c4d\u0c4e\u0005\u0180\u00c1\u0002\u0c4e", - "\u0c4f\u0007\u0019\u0002\u0002\u0c4f\u0c50\u0005\u0180\u00c1\u0002\u0c50", - "\u0c52\u0003\u0002\u0002\u0002\u0c51\u0c4c\u0003\u0002\u0002\u0002\u0c52", - "\u0c55\u0003\u0002\u0002\u0002\u0c53\u0c51\u0003\u0002\u0002\u0002\u0c53", - "\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c57\u0003\u0002\u0002\u0002\u0c55", - "\u0c53\u0003\u0002\u0002\u0002\u0c56\u0c4a\u0003\u0002\u0002\u0002\u0c56", - "\u0c57\u0003\u0002\u0002\u0002\u0c57\u0c58\u0003\u0002\u0002\u0002\u0c58", - "\u0c59\u0007\u001b\u0002\u0002\u0c59\u0c8e\u0003\u0002\u0002\u0002\u0c5a", - "\u0c5b\u0007\u0166\u0002\u0002\u0c5b\u0c5c\u0007\u001a\u0002\u0002\u0c5c", - "\u0c64\u0005\u0180\u00c1\u0002\u0c5d\u0c5e\u0007\u0017\u0002\u0002\u0c5e", - "\u0c5f\u0005\u0180\u00c1\u0002\u0c5f\u0c60\u0007\u0019\u0002\u0002\u0c60", - "\u0c61\u0005\u0180\u00c1\u0002\u0c61\u0c63\u0003\u0002\u0002\u0002\u0c62", - "\u0c5d\u0003\u0002\u0002\u0002\u0c63\u0c66\u0003\u0002\u0002\u0002\u0c64", - "\u0c62\u0003\u0002\u0002\u0002\u0c64\u0c65\u0003\u0002\u0002\u0002\u0c65", - "\u0c67\u0003\u0002\u0002\u0002\u0c66\u0c64\u0003\u0002\u0002\u0002\u0c67", - "\u0c68\u0007\u001b\u0002\u0002\u0c68\u0c8e\u0003\u0002\u0002\u0002\u0c69", - "\u0c6a\u0007\u0167\u0002\u0002\u0c6a\u0c6b\u0007\u001a\u0002\u0002\u0c6b", - "\u0c71\u0005\u0180\u00c1\u0002\u0c6c\u0c6d\u0007\u0017\u0002\u0002\u0c6d", - "\u0c6e\u0005\u0180\u00c1\u0002\u0c6e\u0c6f\u0007\u0019\u0002\u0002\u0c6f", - "\u0c70\u0005\u0180\u00c1\u0002\u0c70\u0c72\u0003\u0002\u0002\u0002\u0c71", - "\u0c6c\u0003\u0002\u0002\u0002\u0c72\u0c73\u0003\u0002\u0002\u0002\u0c73", - "\u0c71\u0003\u0002\u0002\u0002\u0c73\u0c74\u0003\u0002\u0002\u0002\u0c74", - "\u0c77\u0003\u0002\u0002\u0002\u0c75\u0c76\u0007\u0017\u0002\u0002\u0c76", - "\u0c78\u0005\u0180\u00c1\u0002\u0c77\u0c75\u0003\u0002\u0002\u0002\u0c77", - "\u0c78\u0003\u0002\u0002\u0002\u0c78\u0c79\u0003\u0002\u0002\u0002\u0c79", - "\u0c7a\u0007\u001b\u0002\u0002\u0c7a\u0c8e\u0003\u0002\u0002\u0002\u0c7b", - "\u0c7c\u0007\u0168\u0002\u0002\u0c7c\u0c7d\u0007\u001a\u0002\u0002\u0c7d", - "\u0c7e\u0005\u0180\u00c1\u0002\u0c7e\u0c7f\u0007\u001b\u0002\u0002\u0c7f", - "\u0c8e\u0003\u0002\u0002\u0002\u0c80\u0c81\u0007\u0169\u0002\u0002\u0c81", - "\u0c82\u0007\u001a\u0002\u0002\u0c82\u0c83\u0005\u0180\u00c1\u0002\u0c83", - "\u0c84\u0007\u00e1\u0002\u0002\u0c84\u0c87\u0005\u0180\u00c1\u0002\u0c85", - "\u0c86\u0007\u001e\u0002\u0002\u0c86\u0c88\u0005\u0180\u00c1\u0002\u0c87", - "\u0c85\u0003\u0002\u0002\u0002\u0c87\u0c88\u0003\u0002\u0002\u0002\u0c88", - "\u0c89\u0003\u0002\u0002\u0002\u0c89\u0c8a\u0007\u001b\u0002\u0002\u0c8a", - "\u0c8e\u0003\u0002\u0002\u0002\u0c8b\u0c8e\u0007\u016a\u0002\u0002\u0c8c", - "\u0c8e\u0007\u015f\u0002\u0002\u0c8d\u0bc5\u0003\u0002\u0002\u0002\u0c8d", - "\u0bc6\u0003\u0002\u0002\u0002\u0c8d\u0bd0\u0003\u0002\u0002\u0002\u0c8d", - "\u0bd7\u0003\u0002\u0002\u0002\u0c8d\u0bd8\u0003\u0002\u0002\u0002\u0c8d", - "\u0bdd\u0003\u0002\u0002\u0002\u0c8d\u0be5\u0003\u0002\u0002\u0002\u0c8d", - "\u0be6\u0003\u0002\u0002\u0002\u0c8d\u0be8\u0003\u0002\u0002\u0002\u0c8d", - "\u0bfb\u0003\u0002\u0002\u0002\u0c8d\u0c0e\u0003\u0002\u0002\u0002\u0c8d", - "\u0c21\u0003\u0002\u0002\u0002\u0c8d\u0c34\u0003\u0002\u0002\u0002\u0c8d", - "\u0c47\u0003\u0002\u0002\u0002\u0c8d\u0c5a\u0003\u0002\u0002\u0002\u0c8d", - "\u0c69\u0003\u0002\u0002\u0002\u0c8d\u0c7b\u0003\u0002\u0002\u0002\u0c8d", - "\u0c80\u0003\u0002\u0002\u0002\u0c8d\u0c8b\u0003\u0002\u0002\u0002\u0c8d", - "\u0c8c\u0003\u0002\u0002\u0002\u0c8e\u019d\u0003\u0002\u0002\u0002\u0c8f", - "\u0c90\u0005\u01b8\u00dd\u0002\u0c90\u0c92\u0007\u001a\u0002\u0002\u0c91", - "\u0c93\u0005\u01a0\u00d1\u0002\u0c92\u0c91\u0003\u0002\u0002\u0002\u0c92", - "\u0c93\u0003\u0002\u0002\u0002\u0c93\u0c94\u0003\u0002\u0002\u0002\u0c94", - "\u0c95\u0007\u001b\u0002\u0002\u0c95\u019f\u0003\u0002\u0002\u0002\u0c96", - "\u0c9b\u0005\u01a2\u00d2\u0002\u0c97\u0c98\u0007\u0017\u0002\u0002\u0c98", - "\u0c9a\u0005\u01a2\u00d2\u0002\u0c99\u0c97\u0003\u0002\u0002\u0002\u0c9a", - "\u0c9d\u0003\u0002\u0002\u0002\u0c9b\u0c99\u0003\u0002\u0002\u0002\u0c9b", - "\u0c9c\u0003\u0002\u0002\u0002\u0c9c\u01a1\u0003\u0002\u0002\u0002\u0c9d", - "\u0c9b\u0003\u0002\u0002\u0002\u0c9e\u0ca4\u0006\u00d2\u000e\u0002\u0c9f", - "\u0ca0\u0005\u01b8\u00dd\u0002\u0ca0\u0ca2\u0007\u0019\u0002\u0002\u0ca1", - "\u0ca3\u0007\u0110\u0002\u0002\u0ca2\u0ca1\u0003\u0002\u0002\u0002\u0ca2", - "\u0ca3\u0003\u0002\u0002\u0002\u0ca3\u0ca5\u0003\u0002\u0002\u0002\u0ca4", - "\u0c9f\u0003\u0002\u0002\u0002\u0ca4\u0ca5\u0003\u0002\u0002\u0002\u0ca5", - "\u0ca6\u0003\u0002\u0002\u0002\u0ca6\u0ca7\u0005\u0180\u00c1\u0002\u0ca7", - "\u01a3\u0003\u0002\u0002\u0002\u0ca8\u0cab\u0005\u011a\u008e\u0002\u0ca9", - "\u0cab\u0005\u0180\u00c1\u0002\u0caa\u0ca8\u0003\u0002\u0002\u0002\u0caa", - "\u0ca9\u0003\u0002\u0002\u0002\u0cab\u01a5\u0003\u0002\u0002\u0002\u0cac", - "\u0caf\u0005\u01b2\u00da\u0002\u0cad\u0caf\u0005\u0180\u00c1\u0002\u0cae", - "\u0cac\u0003\u0002\u0002\u0002\u0cae\u0cad\u0003\u0002\u0002\u0002\u0caf", - "\u01a7\u0003\u0002\u0002\u0002\u0cb0\u0cb4\u0007\u016b\u0002\u0002\u0cb1", - "\u0cb3\u0005\u01aa\u00d6\u0002\u0cb2\u0cb1\u0003\u0002\u0002\u0002\u0cb3", - "\u0cb6\u0003\u0002\u0002\u0002\u0cb4\u0cb2\u0003\u0002\u0002\u0002\u0cb4", - "\u0cb5\u0003\u0002\u0002\u0002\u0cb5\u01a9\u0003\u0002\u0002\u0002\u0cb6", - "\u0cb4\u0003\u0002\u0002\u0002\u0cb7\u0cb8\u0007\u013c\u0002\u0002\u0cb8", - "\u0cb9\u0005\u01b8\u00dd\u0002\u0cb9\u0cba\u0005\u0180\u00c1\u0002\u0cba", - "\u0cc4\u0003\u0002\u0002\u0002\u0cbb\u0cbc\u0007\u013c\u0002\u0002\u0cbc", - "\u0cbd\u0005\u01b8\u00dd\u0002\u0cbd\u0cbe\u0007\u0013\u0002\u0002\u0cbe", - "\u0cbf\u0007\u0019\u0002\u0002\u0cbf\u0cc0\u0005\u0180\u00c1\u0002\u0cc0", - "\u0cc4\u0003\u0002\u0002\u0002\u0cc1\u0cc2\u0007\u013c\u0002\u0002\u0cc2", - "\u0cc4\u0005\u01b8\u00dd\u0002\u0cc3\u0cb7\u0003\u0002\u0002\u0002\u0cc3", - "\u0cbb\u0003\u0002\u0002\u0002\u0cc3\u0cc1\u0003\u0002\u0002\u0002\u0cc4", - "\u01ab\u0003\u0002\u0002\u0002\u0cc5\u0cc6\u0007\t\u0002\u0002\u0cc6", - "\u0cc7\u0005\u01ae\u00d8\u0002\u0cc7\u0cc8\u0007\n\u0002\u0002\u0cc8", - "\u0ccb\u0003\u0002\u0002\u0002\u0cc9\u0ccb\u0005\u01b0\u00d9\u0002\u0cca", - "\u0cc5\u0003\u0002\u0002\u0002\u0cca\u0cc9\u0003\u0002\u0002\u0002\u0ccb", - "\u01ad\u0003\u0002\u0002\u0002\u0ccc\u0cce\u000b\u0002\u0002\u0002\u0ccd", - "\u0ccc\u0003\u0002\u0002\u0002\u0cce\u0cd1\u0003\u0002\u0002\u0002\u0ccf", - "\u0cd0\u0003\u0002\u0002\u0002\u0ccf\u0ccd\u0003\u0002\u0002\u0002\u0cd0", - "\u01af\u0003\u0002\u0002\u0002\u0cd1\u0ccf\u0003\u0002\u0002\u0002\u0cd2", - "\u0cd3\u0007\u016c\u0002\u0002\u0cd3\u0cd4\u0005\u0180\u00c1\u0002\u0cd4", - "\u01b1\u0003\u0002\u0002\u0002\u0cd5\u0ce4\u0007\u016d\u0002\u0002\u0cd6", - "\u0cda\u0007\u0005\u0002\u0002\u0cd7\u0cd8\u0007\u0007\u0002\u0002\u0cd8", - "\u0cda\u0007\u0005\u0002\u0002\u0cd9\u0cd6\u0003\u0002\u0002\u0002\u0cd9", - "\u0cd7\u0003\u0002\u0002\u0002\u0cd9\u0cda\u0003\u0002\u0002\u0002\u0cda", - "\u0cdb\u0003\u0002\u0002\u0002\u0cdb\u0ce0\u0005\u01b8\u00dd\u0002\u0cdc", - "\u0cdd\u0007\u0005\u0002\u0002\u0cdd\u0cdf\u0005\u01b8\u00dd\u0002\u0cde", - "\u0cdc\u0003\u0002\u0002\u0002\u0cdf\u0ce2\u0003\u0002\u0002\u0002\u0ce0", - "\u0cde\u0003\u0002\u0002\u0002\u0ce0\u0ce1\u0003\u0002\u0002\u0002\u0ce1", - "\u0ce4\u0003\u0002\u0002\u0002\u0ce2\u0ce0\u0003\u0002\u0002\u0002\u0ce3", - "\u0cd5\u0003\u0002\u0002\u0002\u0ce3\u0cd9\u0003\u0002\u0002\u0002\u0ce4", - "\u01b3\u0003\u0002\u0002\u0002\u0ce5\u0ce6\u0007\u0091\u0002\u0002\u0ce6", - "\u0ce7\u0005\u01ba\u00de\u0002\u0ce7\u01b5\u0003\u0002\u0002\u0002\u0ce8", - "\u0ce9\u0007\u00ac\u0002\u0002\u0ce9\u0cea\u0005\u01ba\u00de\u0002\u0cea", - "\u01b7\u0003\u0002\u0002\u0002\u0ceb\u0ced\u0007\u000b\u0002\u0002\u0cec", - "\u0ceb\u0003\u0002\u0002\u0002\u0cec\u0ced\u0003\u0002\u0002\u0002\u0ced", - "\u0cf0\u0003\u0002\u0002\u0002\u0cee\u0cf1\u0007\u0013\u0002\u0002\u0cef", - "\u0cf1\u0005\u01c4\u00e3\u0002\u0cf0\u0cee\u0003\u0002\u0002\u0002\u0cf0", - "\u0cef\u0003\u0002\u0002\u0002\u0cf1\u0cf9\u0003\u0002\u0002\u0002\u0cf2", - "\u0cf5\u0007\u0007\u0002\u0002\u0cf3\u0cf6\u0007\u0013\u0002\u0002\u0cf4", - "\u0cf6\u0005\u01c4\u00e3\u0002\u0cf5\u0cf3\u0003\u0002\u0002\u0002\u0cf5", - "\u0cf4\u0003\u0002\u0002\u0002\u0cf6\u0cf8\u0003\u0002\u0002\u0002\u0cf7", - "\u0cf2\u0003\u0002\u0002\u0002\u0cf8\u0cfb\u0003\u0002\u0002\u0002\u0cf9", - "\u0cf7\u0003\u0002\u0002\u0002\u0cf9\u0cfa\u0003\u0002\u0002\u0002\u0cfa", - "\u01b9\u0003\u0002\u0002\u0002\u0cfb\u0cf9\u0003\u0002\u0002\u0002\u0cfc", - "\u0cff\u0007\u011a\u0002\u0002\u0cfd\u0cff\u0007\u016e\u0002\u0002\u0cfe", - "\u0cfc\u0003\u0002\u0002\u0002\u0cfe\u0cfd\u0003\u0002\u0002\u0002\u0cff", - "\u01bb\u0003\u0002\u0002\u0002\u0d00\u0d02\t0\u0002\u0002\u0d01\u0d00", - "\u0003\u0002\u0002\u0002\u0d01\u0d02\u0003\u0002\u0002\u0002\u0d02\u0d03", - "\u0003\u0002\u0002\u0002\u0d03\u0d04\u0007J\u0002\u0002\u0d04\u01bd", - "\u0003\u0002\u0002\u0002\u0d05\u0d07\t0\u0002\u0002\u0d06\u0d05\u0003", - "\u0002\u0002\u0002\u0d06\u0d07\u0003\u0002\u0002\u0002\u0d07\u0d08\u0003", - "\u0002\u0002\u0002\u0d08\u0d09\u0007\u016f\u0002\u0002\u0d09\u01bf\u0003", - "\u0002\u0002\u0002\u0d0a\u0d0b\t1\u0002\u0002\u0d0b\u01c1\u0003\u0002", - "\u0002\u0002\u0d0c\u0d0d\u0007\u0015\u0002\u0002\u0d0d\u01c3\u0003\u0002", - "\u0002\u0002\u0d0e\u0d0f\t2\u0002\u0002\u0d0f\u01c5\u0003\u0002\u0002", - "\u0002\u01aa\u01cb\u01ce\u01d2\u01d5\u01da\u01e1\u01e7\u01e9\u01f2\u01f5", - "\u01f7\u0236\u023e\u024e\u0255\u0258\u025d\u0261\u026a\u026f\u0277\u027c", - "\u0285\u0291\u0296\u0299\u02a7\u02ae\u02b7\u02c8\u02cc\u02d4\u02df\u02e9", - "\u02f1\u02f8\u02fc\u0300\u0305\u0309\u030e\u0312\u0316\u0320\u0324\u0329", - "\u032e\u0332\u033f\u0344\u034a\u0353\u0357\u035f\u0362\u0367\u036c\u0373", - "\u037c\u037f\u0386\u038c\u0391\u0397\u039c\u039f\u03a5\u03b3\u03bd\u03c3", - "\u03c8\u03cd\u03d2\u03d6\u03db\u03de\u03e8\u03f4\u03fb\u03fe\u040a\u040f", - "\u0414\u0417\u041e\u042a\u0437\u0439\u043e\u0441\u0450\u0456\u0461\u0464", - "\u046e\u0475\u047b\u0483\u048d\u04a1\u04a7\u04ab\u04b0\u04b4\u04b9\u04bc", - "\u04c1\u04c4\u04d0\u04d7\u04dc\u04e1\u04e5\u04ea\u04ed\u04f7\u0503\u050a", - "\u0512\u0521\u0540\u0542\u0547\u054b\u0550\u0557\u055a\u055d\u0562\u0566", - "\u0568\u056f\u0575\u057c\u0582\u0585\u058a\u058e\u0591\u0598\u059e\u05a1", - "\u05ab\u05b4\u05bb\u05c2\u05c4\u05ca\u05cd\u05d8\u05e1\u05e7\u05ed\u05f0", - "\u05f5\u05f8\u05fb\u05fe\u0601\u0607\u0611\u061c\u061f\u0626\u062b\u0630", - "\u0634\u063c\u0640\u0645\u0649\u064b\u0650\u0658\u065d\u0663\u066a\u066d", - "\u0674\u067c\u0684\u0687\u068a\u068f\u0698\u069c\u06a6\u06b9\u06c0\u06c2", - "\u06c6\u06ca\u06d2\u06dd\u06e6\u06ee\u06f6\u06fa\u0702\u0714\u0722\u0729", - "\u072d\u0734\u0736\u073a\u0743\u074b\u0754\u0764\u076a\u076e\u0778\u0780", - "\u0789\u078d\u0793\u0798\u079c\u07a6\u07ac\u07b0\u07bc\u07c3\u07d3\u07da", - "\u07e4\u07e7\u07eb\u07f2\u07f9\u07fb\u07ff\u0803\u0808\u080b\u080f\u0812", - "\u081d\u0820\u082b\u0831\u0835\u0837\u083b\u0844\u084b\u084f\u0853\u085a", - "\u085e\u0866\u086c\u0870\u087b\u0882\u088f\u0897\u089b\u08a5\u08aa\u08b7", - "\u08c2\u08ca\u08ce\u08d2\u08d6\u08d8\u08dd\u08e0\u08e3\u08e6\u08ea\u08ed", - "\u08f0\u08f3\u08f6\u08fd\u0908\u090c\u090f\u0913\u091a\u091e\u0928\u0930", - "\u0936\u093a\u0940\u0949\u094c\u0951\u0954\u095e\u0963\u096c\u0971\u0975", - "\u097e\u0982\u0990\u099d\u09a2\u09a6\u09ac\u09b7\u09b9\u09c0\u09c3\u09ca", - "\u09cf\u09d5\u09d8\u09db\u09ea\u09f1\u09f4\u09f7\u09fb\u0a00\u0a06\u0a0a", - "\u0a15\u0a19\u0a1c\u0a20\u0a24\u0a28\u0a2c\u0a32\u0a38\u0a3f\u0a47\u0a4d", - "\u0a52\u0a5d\u0a66\u0a6a\u0a73\u0a77\u0a81\u0a86\u0a9c\u0a9f\u0ab2\u0ac2", - "\u0ac4\u0acf\u0ade\u0aea\u0aee\u0af9\u0afd\u0b09\u0b0d\u0b18\u0b1d\u0b22", - "\u0b26\u0b2a\u0b2f\u0b33\u0b37\u0b4e\u0b50\u0b62\u0b64\u0b6c\u0b71\u0b76", - "\u0b7b\u0b88\u0b8d\u0b92\u0b97\u0b9c\u0ba1\u0ba6\u0bab\u0bad\u0bb4\u0bb7", - "\u0bc2\u0bcc\u0bd4\u0bdd\u0be3\u0bf4\u0bf7\u0c07\u0c0a\u0c1a\u0c1d\u0c2d", - "\u0c30\u0c40\u0c43\u0c53\u0c56\u0c64\u0c73\u0c77\u0c87\u0c8d\u0c92\u0c9b", - "\u0ca2\u0ca4\u0caa\u0cae\u0cb4\u0cc3\u0cca\u0ccf\u0cd9\u0ce0\u0ce3\u0cec", - "\u0cf0\u0cf5\u0cf9\u0cfe\u0d01\u0d06"].join(""); + "\u0156\u00ac\u0002\u08ed\u08ec\u0003\u0002\u0002\u0002\u08ed\u08ee\u0003", + "\u0002\u0002\u0002\u08ee\u0129\u0003\u0002\u0002\u0002\u08ef\u08f1\u0005", + "\u012c\u0097\u0002\u08f0\u08ef\u0003\u0002\u0002\u0002\u08f0\u08f1\u0003", + "\u0002\u0002\u0002\u08f1\u08f3\u0003\u0002\u0002\u0002\u08f2\u08f4\u0005", + "\u012e\u0098\u0002\u08f3\u08f2\u0003\u0002\u0002\u0002\u08f3\u08f4\u0003", + "\u0002\u0002\u0002\u08f4\u08f5\u0003\u0002\u0002\u0002\u08f5\u08fa\u0005", + "\u0130\u0099\u0002\u08f6\u08f7\u0007\u0157\u0002\u0002\u08f7\u08f9\u0005", + "\u0130\u0099\u0002\u08f8\u08f6\u0003\u0002\u0002\u0002\u08f9\u08fc\u0003", + "\u0002\u0002\u0002\u08fa\u08f8\u0003\u0002\u0002\u0002\u08fa\u08fb\u0003", + "\u0002\u0002\u0002\u08fb\u012b\u0003\u0002\u0002\u0002\u08fc\u08fa\u0003", + "\u0002\u0002\u0002\u08fd\u08fe\t&\u0002\u0002\u08fe\u012d\u0003\u0002", + "\u0002\u0002\u08ff\u0900\u0007\u0122\u0002\u0002\u0900\u0901\u0005\u0180", + "\u00c1\u0002\u0901\u012f\u0003\u0002\u0002\u0002\u0902\u0903\u0005\u01b8", + "\u00dd\u0002\u0903\u0904\u0007\u015c\u0002\u0002\u0904\u0906\u0003\u0002", + "\u0002\u0002\u0905\u0902\u0003\u0002\u0002\u0002\u0905\u0906\u0003\u0002", + "\u0002\u0002\u0906\u0907\u0003\u0002\u0002\u0002\u0907\u0909\u0005\u0180", + "\u00c1\u0002\u0908\u090a\u0005\u0132\u009a\u0002\u0909\u0908\u0003\u0002", + "\u0002\u0002\u0909\u090a\u0003\u0002\u0002\u0002\u090a\u090d\u0003\u0002", + "\u0002\u0002\u090b\u090d\u0005\u0134\u009b\u0002\u090c\u0905\u0003\u0002", + "\u0002\u0002\u090c\u090b\u0003\u0002\u0002\u0002\u090d\u0131\u0003\u0002", + "\u0002\u0002\u090e\u0910\u0006\u009a\u0005\u0002\u090f\u0911\u0007\u000b", + "\u0002\u0002\u0910\u090f\u0003\u0002\u0002\u0002\u0910\u0911\u0003\u0002", + "\u0002\u0002\u0911\u0912\u0003\u0002\u0002\u0002\u0912\u0918\u0005\u01b8", + "\u00dd\u0002\u0913\u0914\u0007\u016a\u0002\u0002\u0914\u0915\u0007\u0120", + "\u0002\u0002\u0915\u0916\u0007\u0172\u0002\u0002\u0916\u0918\u0007\u016d", + "\u0002\u0002\u0917\u090e\u0003\u0002\u0002\u0002\u0917\u0913\u0003\u0002", + "\u0002\u0002\u0918\u0133\u0003\u0002\u0002\u0002\u0919\u091a\u0007\u0171", + "\u0002\u0002\u091a\u091c\u0007\u015a\u0002\u0002\u091b\u0919\u0003\u0002", + "\u0002\u0002\u091b\u091c\u0003\u0002\u0002\u0002\u091c\u091d\u0003\u0002", + "\u0002\u0002\u091d\u091e\u0007\u0166\u0002\u0002\u091e\u0135\u0003\u0002", + "\u0002\u0002\u091f\u0920\u0007\u0094\u0002\u0002\u0920\u0925\u0005\u01b8", + "\u00dd\u0002\u0921\u0922\u0007\u0157\u0002\u0002\u0922\u0924\u0005\u01b8", + "\u00dd\u0002\u0923\u0921\u0003\u0002\u0002\u0002\u0924\u0927\u0003\u0002", + "\u0002\u0002\u0925\u0923\u0003\u0002\u0002\u0002\u0925\u0926\u0003\u0002", + "\u0002\u0002\u0926\u0137\u0003\u0002\u0002\u0002\u0927\u0925\u0003\u0002", + "\u0002\u0002\u0928\u0929\u0007t\u0002\u0002\u0929\u092d\u0005\u013a", + "\u009e\u0002\u092a\u092c\u0005\u0140\u00a1\u0002\u092b\u092a\u0003\u0002", + "\u0002\u0002\u092c\u092f\u0003\u0002\u0002\u0002\u092d\u092b\u0003\u0002", + "\u0002\u0002\u092d\u092e\u0003\u0002\u0002\u0002\u092e\u0139\u0003\u0002", + "\u0002\u0002\u092f\u092d\u0003\u0002\u0002\u0002\u0930\u0934\u0005\u013c", + "\u009f\u0002\u0931\u0934\u0005\u013e\u00a0\u0002\u0932\u0934\u0005\u0144", + "\u00a3\u0002\u0933\u0930\u0003\u0002\u0002\u0002\u0933\u0931\u0003\u0002", + "\u0002\u0002\u0933\u0932\u0003\u0002\u0002\u0002\u0934\u013b\u0003\u0002", + "\u0002\u0002\u0935\u0937\u0005\u014a\u00a6\u0002\u0936\u0938\u0005\u0148", + "\u00a5\u0002\u0937\u0936\u0003\u0002\u0002\u0002\u0937\u0938\u0003\u0002", + "\u0002\u0002\u0938\u013d\u0003\u0002\u0002\u0002\u0939\u093a\u0007\u016a", + "\u0002\u0002\u093a\u093b\u0005\u011a\u008e\u0002\u093b\u093d\u0007\u016d", + "\u0002\u0002\u093c\u093e\u0005\u0148\u00a5\u0002\u093d\u093c\u0003\u0002", + "\u0002\u0002\u093d\u093e\u0003\u0002\u0002\u0002\u093e\u013f\u0003\u0002", + "\u0002\u0002\u093f\u0940\u0007\u0157\u0002\u0002\u0940\u0947\u0005\u013a", + "\u009e\u0002\u0941\u0942\u0005\u0142\u00a2\u0002\u0942\u0943\u0005\u013a", + "\u009e\u0002\u0943\u0944\u0007\u00c5\u0002\u0002\u0944\u0945\u0005\u0170", + "\u00b9\u0002\u0945\u0947\u0003\u0002\u0002\u0002\u0946\u093f\u0003\u0002", + "\u0002\u0002\u0946\u0941\u0003\u0002\u0002\u0002\u0947\u0141\u0003\u0002", + "\u0002\u0002\u0948\u094a\u0007\u008a\u0002\u0002\u0949\u0948\u0003\u0002", + "\u0002\u0002\u0949\u094a\u0003\u0002\u0002\u0002\u094a\u094b\u0003\u0002", + "\u0002\u0002\u094b\u0952\u0007\u0099\u0002\u0002\u094c\u094e\t\'\u0002", + "\u0002\u094d\u094f\u0007\u00cb\u0002\u0002\u094e\u094d\u0003\u0002\u0002", + "\u0002\u094e\u094f\u0003\u0002\u0002\u0002\u094f\u0950\u0003\u0002\u0002", + "\u0002\u0950\u0952\u0007\u0099\u0002\u0002\u0951\u0949\u0003\u0002\u0002", + "\u0002\u0951\u094c\u0003\u0002\u0002\u0002\u0952\u0143\u0003\u0002\u0002", + "\u0002\u0953\u0954\u0007\u0118\u0002\u0002\u0954\u0955\u0007\u016a\u0002", + "\u0002\u0955\u0956\u0007\u012e\u0002\u0002\u0956\u095b\u0005\u0146\u00a4", + "\u0002\u0957\u0958\u0007\u0157\u0002\u0002\u0958\u095a\u0005\u0146\u00a4", + "\u0002\u0959\u0957\u0003\u0002\u0002\u0002\u095a\u095d\u0003\u0002\u0002", + "\u0002\u095b\u0959\u0003\u0002\u0002\u0002\u095b\u095c\u0003\u0002\u0002", + "\u0002\u095c\u095e\u0003\u0002\u0002\u0002\u095d\u095b\u0003\u0002\u0002", + "\u0002\u095e\u0960\u0007\u016d\u0002\u0002\u095f\u0961\u0005\u0148\u00a5", + "\u0002\u0960\u095f\u0003\u0002\u0002\u0002\u0960\u0961\u0003\u0002\u0002", + "\u0002\u0961\u0145\u0003\u0002\u0002\u0002\u0962\u096f\u0005\u0180\u00c1", + "\u0002\u0963\u0964\u0007\u016a\u0002\u0002\u0964\u0969\u0005\u0180\u00c1", + "\u0002\u0965\u0966\u0007\u0157\u0002\u0002\u0966\u0968\u0005\u0180\u00c1", + "\u0002\u0967\u0965\u0003\u0002\u0002\u0002\u0968\u096b\u0003\u0002\u0002", + "\u0002\u0969\u0967\u0003\u0002\u0002\u0002\u0969\u096a\u0003\u0002\u0002", + "\u0002\u096a\u096c\u0003\u0002\u0002\u0002\u096b\u0969\u0003\u0002\u0002", + "\u0002\u096c\u096d\u0007\u016d\u0002\u0002\u096d\u096f\u0003\u0002\u0002", + "\u0002\u096e\u0962\u0003\u0002\u0002\u0002\u096e\u0963\u0003\u0002\u0002", + "\u0002\u096f\u0147\u0003\u0002\u0002\u0002\u0970\u0972\u0006\u00a5\u0006", + "\u0002\u0971\u0973\u0007\u000b\u0002\u0002\u0972\u0971\u0003\u0002\u0002", + "\u0002\u0972\u0973\u0003\u0002\u0002\u0002\u0973\u0974\u0003\u0002\u0002", + "\u0002\u0974\u097f\u0005\u01b8\u00dd\u0002\u0975\u0976\u0007\u016a\u0002", + "\u0002\u0976\u097b\u0007\u0171\u0002\u0002\u0977\u0978\u0007\u0157\u0002", + "\u0002\u0978\u097a\u0007\u0171\u0002\u0002\u0979\u0977\u0003\u0002\u0002", + "\u0002\u097a\u097d\u0003\u0002\u0002\u0002\u097b\u0979\u0003\u0002\u0002", + "\u0002\u097b\u097c\u0003\u0002\u0002\u0002\u097c\u097e\u0003\u0002\u0002", + "\u0002\u097d\u097b\u0003\u0002\u0002\u0002\u097e\u0980\u0007\u016d\u0002", + "\u0002\u097f\u0975\u0003\u0002\u0002\u0002\u097f\u0980\u0003\u0002\u0002", + "\u0002\u0980\u0149\u0003\u0002\u0002\u0002\u0981\u0982\u0005\u01b8\u00dd", + "\u0002\u0982\u014b\u0003\u0002\u0002\u0002\u0983\u0984\u0007\u0135\u0002", + "\u0002\u0984\u0985\u0005\u0170\u00b9\u0002\u0985\u014d\u0003\u0002\u0002", + "\u0002\u0986\u0987\u0007{\u0002\u0002\u0987\u0988\u0007\u001b\u0002", + "\u0002\u0988\u098d\u0005\u0180\u00c1\u0002\u0989\u098a\u0007\u0157\u0002", + "\u0002\u098a\u098c\u0005\u0180\u00c1\u0002\u098b\u0989\u0003\u0002\u0002", + "\u0002\u098c\u098f\u0003\u0002\u0002\u0002\u098d\u098b\u0003\u0002\u0002", + "\u0002\u098d\u098e\u0003\u0002\u0002\u0002\u098e\u014f\u0003\u0002\u0002", + "\u0002\u098f\u098d\u0003\u0002\u0002\u0002\u0990\u0991\u0007~\u0002", + "\u0002\u0991\u0992\u0005\u0170\u00b9\u0002\u0992\u0151\u0003\u0002\u0002", + "\u0002\u0993\u0994\u0007\u00da\u0002\u0002\u0994\u0995\u0005\u0170\u00b9", + "\u0002\u0995\u0153\u0003\u0002\u0002\u0002\u0996\u0997\u0007\u00c9\u0002", + "\u0002\u0997\u0998\u0007\u001b\u0002\u0002\u0998\u099a\u0005\u0180\u00c1", + "\u0002\u0999\u099b\t\t\u0002\u0002\u099a\u0999\u0003\u0002\u0002\u0002", + "\u099a\u099b\u0003\u0002\u0002\u0002\u099b\u09a3\u0003\u0002\u0002\u0002", + "\u099c\u099d\u0007\u0157\u0002\u0002\u099d\u099f\u0005\u0180\u00c1\u0002", + "\u099e\u09a0\t\t\u0002\u0002\u099f\u099e\u0003\u0002\u0002\u0002\u099f", + "\u09a0\u0003\u0002\u0002\u0002\u09a0\u09a2\u0003\u0002\u0002\u0002\u09a1", + "\u099c\u0003\u0002\u0002\u0002\u09a2\u09a5\u0003\u0002\u0002\u0002\u09a3", + "\u09a1\u0003\u0002\u0002\u0002\u09a3\u09a4\u0003\u0002\u0002\u0002\u09a4", + "\u0155\u0003\u0002\u0002\u0002\u09a5\u09a3\u0003\u0002\u0002\u0002\u09a6", + "\u09a8\u0005\u0158\u00ad\u0002\u09a7\u09a6\u0003\u0002\u0002\u0002\u09a8", + "\u09a9\u0003\u0002\u0002\u0002\u09a9\u09a7\u0003\u0002\u0002\u0002\u09a9", + "\u09aa\u0003\u0002\u0002\u0002\u09aa\u0157\u0003\u0002\u0002\u0002\u09ab", + "\u09ac\u0007\u00a1\u0002\u0002\u09ac\u09b7\u0005\u0180\u00c1\u0002\u09ad", + "\u09ae\u0007\u0137\u0002\u0002\u09ae\u09b4\t(\u0002\u0002\u09af\u09b0", + "\u0007\u012b\u0002\u0002\u09b0\u09b1\u0007\b\u0002\u0002\u09b1\u09b2", + "\u0007\u009a\u0002\u0002\u09b2\u09b3\t)\u0002\u0002\u09b3\u09b5\u0007", + "\u00a7\u0002\u0002\u09b4\u09af\u0003\u0002\u0002\u0002\u09b4\u09b5\u0003", + "\u0002\u0002\u0002\u09b5\u09b7\u0003\u0002\u0002\u0002\u09b6\u09ab\u0003", + "\u0002\u0002\u0002\u09b6\u09ad\u0003\u0002\u0002\u0002\u09b7\u0159\u0003", + "\u0002\u0002\u0002\u09b8\u09b9\u0007\u0129\u0002\u0002\u09b9\u09ba\u0005", + "\u015e\u00b0\u0002\u09ba\u09bb\u0007\u00fd\u0002\u0002\u09bb\u09bd\u0005", + "\u015c\u00af\u0002\u09bc\u09be\u0005\u014c\u00a7\u0002\u09bd\u09bc\u0003", + "\u0002\u0002\u0002\u09bd\u09be\u0003\u0002\u0002\u0002\u09be\u09c0\u0003", + "\u0002\u0002\u0002\u09bf\u09c1\u0005\u0160\u00b1\u0002\u09c0\u09bf\u0003", + "\u0002\u0002\u0002\u09c0\u09c1\u0003\u0002\u0002\u0002\u09c1\u015b\u0003", + "\u0002\u0002\u0002\u09c2\u09c7\u0005\u001c\u000f\u0002\u09c3\u09c4\u0007", + "\u0157\u0002\u0002\u09c4\u09c6\u0005\u001c\u000f\u0002\u09c5\u09c3\u0003", + "\u0002\u0002\u0002\u09c6\u09c9\u0003\u0002\u0002\u0002\u09c7\u09c5\u0003", + "\u0002\u0002\u0002\u09c7\u09c8\u0003\u0002\u0002\u0002\u09c8\u015d\u0003", + "\u0002\u0002\u0002\u09c9\u09c7\u0003\u0002\u0002\u0002\u09ca\u09cc\u0005", + "\u014a\u00a6\u0002\u09cb\u09cd\u0005\u0138\u009d\u0002\u09cc\u09cb\u0003", + "\u0002\u0002\u0002\u09cc\u09cd\u0003\u0002\u0002\u0002\u09cd\u09d3\u0003", + "\u0002\u0002\u0002\u09ce\u09cf\u0007\u016a\u0002\u0002\u09cf\u09d0\u0005", + "\u011a\u008e\u0002\u09d0\u09d1\u0007\u016d\u0002\u0002\u09d1\u09d3\u0003", + "\u0002\u0002\u0002\u09d2\u09ca\u0003\u0002\u0002\u0002\u09d2\u09ce\u0003", + "\u0002\u0002\u0002\u09d3\u09d8\u0003\u0002\u0002\u0002\u09d4\u09d6\u0007", + "\u000b\u0002\u0002\u09d5\u09d4\u0003\u0002\u0002\u0002\u09d5\u09d6\u0003", + "\u0002\u0002\u0002\u09d6\u09d7\u0003\u0002\u0002\u0002\u09d7\u09d9\u0005", + "\u01b8\u00dd\u0002\u09d8\u09d5\u0003\u0002\u0002\u0002\u09d8\u09d9\u0003", + "\u0002\u0002\u0002\u09d9\u015f\u0003\u0002\u0002\u0002\u09da\u09db\u0007", + "[\u0002\u0002\u09db\u09dc\u0005\u00b2Z\u0002\u09dc\u0161\u0003\u0002", + "\u0002\u0002\u09dd\u09de\u0007\u00b0\u0002\u0002\u09de\u09df\u0007\u0094", + "\u0002\u0002\u09df\u09e0\u0005\u0164\u00b3\u0002\u09e0\u09e1\u0007\u012c", + "\u0002\u0002\u09e1\u09e2\u0005\u0164\u00b3\u0002\u09e2\u09e3\u0007\u00c5", + "\u0002\u0002\u09e3\u09e5\u0005\u0170\u00b9\u0002\u09e4\u09e6\u0005\u0166", + "\u00b4\u0002\u09e5\u09e4\u0003\u0002\u0002\u0002\u09e6\u09e7\u0003\u0002", + "\u0002\u0002\u09e7\u09e5\u0003\u0002\u0002\u0002\u09e7\u09e8\u0003\u0002", + "\u0002\u0002\u09e8\u0163\u0003\u0002\u0002\u0002\u09e9\u09ef\u0005\u014a", + "\u00a6\u0002\u09ea\u09eb\u0007\u016a\u0002\u0002\u09eb\u09ec\u0005\u011a", + "\u008e\u0002\u09ec\u09ed\u0007\u016d\u0002\u0002\u09ed\u09ef\u0003\u0002", + "\u0002\u0002\u09ee\u09e9\u0003\u0002\u0002\u0002\u09ee\u09ea\u0003\u0002", + "\u0002\u0002\u09ef\u09f4\u0003\u0002\u0002\u0002\u09f0\u09f2\u0007\u000b", + "\u0002\u0002\u09f1\u09f0\u0003\u0002\u0002\u0002\u09f1\u09f2\u0003\u0002", + "\u0002\u0002\u09f2\u09f3\u0003\u0002\u0002\u0002\u09f3\u09f5\u0005\u01b8", + "\u00dd\u0002\u09f4\u09f1\u0003\u0002\u0002\u0002\u09f4\u09f5\u0003\u0002", + "\u0002\u0002\u09f5\u0165\u0003\u0002\u0002\u0002\u09f6\u09f8\u0007\u0134", + "\u0002\u0002\u09f7\u09f9\u0007\u00be\u0002\u0002\u09f8\u09f7\u0003\u0002", + "\u0002\u0002\u09f8\u09f9\u0003\u0002\u0002\u0002\u09f9\u09fa\u0003\u0002", + "\u0002\u0002\u09fa\u09fd\u0007\u00ad\u0002\u0002\u09fb\u09fc\u0007\b", + "\u0002\u0002\u09fc\u09fe\u0005\u0170\u00b9\u0002\u09fd\u09fb\u0003\u0002", + "\u0002\u0002\u09fd\u09fe\u0003\u0002\u0002\u0002\u09fe\u09ff\u0003\u0002", + "\u0002\u0002\u09ff\u0a00\u0007\u011d\u0002\u0002\u0a00\u0a04\u0005\u0168", + "\u00b5\u0002\u0a01\u0a02\u0007[\u0002\u0002\u0a02\u0a04\u0007\u0084", + "\u0002\u0002\u0a03\u09f6\u0003\u0002\u0002\u0002\u0a03\u0a01\u0003\u0002", + "\u0002\u0002\u0a04\u0167\u0003\u0002\u0002\u0002\u0a05\u0a07\u0007\u008c", + "\u0002\u0002\u0a06\u0a08\u0005\u00b4[\u0002\u0a07\u0a06\u0003\u0002", + "\u0002\u0002\u0a07\u0a08\u0003\u0002\u0002\u0002\u0a08\u0a09\u0003\u0002", + "\u0002\u0002\u0a09\u0a0a\u0007\u012e\u0002\u0002\u0a0a\u0a1a\u0005\u00b8", + "]\u0002\u0a0b\u0a0c\u0007\u0129\u0002\u0002\u0a0c\u0a0d\u0007\u00fd", + "\u0002\u0002\u0a0d\u0a12\u0005\u001c\u000f\u0002\u0a0e\u0a0f\u0007\u0157", + "\u0002\u0002\u0a0f\u0a11\u0005\u001c\u000f\u0002\u0a10\u0a0e\u0003\u0002", + "\u0002\u0002\u0a11\u0a14\u0003\u0002\u0002\u0002\u0a12\u0a10\u0003\u0002", + "\u0002\u0002\u0a12\u0a13\u0003\u0002\u0002\u0002\u0a13\u0a16\u0003\u0002", + "\u0002\u0002\u0a14\u0a12\u0003\u0002\u0002\u0002\u0a15\u0a17\u0005\u014c", + "\u00a7\u0002\u0a16\u0a15\u0003\u0002\u0002\u0002\u0a16\u0a17\u0003\u0002", + "\u0002\u0002\u0a17\u0a1a\u0003\u0002\u0002\u0002\u0a18\u0a1a\u0007M", + "\u0002\u0002\u0a19\u0a05\u0003\u0002\u0002\u0002\u0a19\u0a0b\u0003\u0002", + "\u0002\u0002\u0a19\u0a18\u0003\u0002\u0002\u0002\u0a1a\u0169\u0003\u0002", + "\u0002\u0002\u0a1b\u0a1d\u0007M\u0002\u0002\u0a1c\u0a1e\u0007t\u0002", + "\u0002\u0a1d\u0a1c\u0003\u0002\u0002\u0002\u0a1d\u0a1e\u0003\u0002\u0002", + "\u0002\u0a1e\u0a1f\u0003\u0002\u0002\u0002\u0a1f\u0a21\u0005\u014a\u00a6", + "\u0002\u0a20\u0a22\u0005\u016c\u00b7\u0002\u0a21\u0a20\u0003\u0002\u0002", + "\u0002\u0a21\u0a22\u0003\u0002\u0002\u0002\u0a22\u0a25\u0003\u0002\u0002", + "\u0002\u0a23\u0a26\u0005\u014c\u00a7\u0002\u0a24\u0a26\u0007\u0005\u0002", + "\u0002\u0a25\u0a23\u0003\u0002\u0002\u0002\u0a25\u0a24\u0003\u0002\u0002", + "\u0002\u0a25\u0a26\u0003\u0002\u0002\u0002\u0a26\u016b\u0003\u0002\u0002", + "\u0002\u0a27\u0a29\u0006\u00b7\u0007\u0002\u0a28\u0a2a\u0007\u000b\u0002", + "\u0002\u0a29\u0a28\u0003\u0002\u0002\u0002\u0a29\u0a2a\u0003\u0002\u0002", + "\u0002\u0a2a\u0a2b\u0003\u0002\u0002\u0002\u0a2b\u0a2c\u0005\u01b8\u00dd", + "\u0002\u0a2c\u016d\u0003\u0002\u0002\u0002\u0a2d\u0a2f\t*\u0002\u0002", + "\u0a2e\u0a30\u0007\u0118\u0002\u0002\u0a2f\u0a2e\u0003\u0002\u0002\u0002", + "\u0a2f\u0a30\u0003\u0002\u0002\u0002\u0a30\u0a31\u0003\u0002\u0002\u0002", + "\u0a31\u0a32\u0005\u014a\u00a6\u0002\u0a32\u016f\u0003\u0002\u0002\u0002", + "\u0a33\u0a35\b\u00b9\u0001\u0002\u0a34\u0a36\u0007\u00be\u0002\u0002", + "\u0a35\u0a34\u0003\u0002\u0002\u0002\u0a35\u0a36\u0003\u0002\u0002\u0002", + "\u0a36\u0a37\u0003\u0002\u0002\u0002\u0a37\u0a38\u0007\u016a\u0002\u0002", + "\u0a38\u0a39\u0005\u0170\u00b9\u0002\u0a39\u0a3a\u0007\u016d\u0002\u0002", + "\u0a3a\u0a3d\u0003\u0002\u0002\u0002\u0a3b\u0a3d\u0005\u0172\u00ba\u0002", + "\u0a3c\u0a33\u0003\u0002\u0002\u0002\u0a3c\u0a3b\u0003\u0002\u0002\u0002", + "\u0a3d\u0a44\u0003\u0002\u0002\u0002\u0a3e\u0a3f\f\u0004\u0002\u0002", + "\u0a3f\u0a40\u0005\u017c\u00bf\u0002\u0a40\u0a41\u0005\u0170\u00b9\u0005", + "\u0a41\u0a43\u0003\u0002\u0002\u0002\u0a42\u0a3e\u0003\u0002\u0002\u0002", + "\u0a43\u0a46\u0003\u0002\u0002\u0002\u0a44\u0a42\u0003\u0002\u0002\u0002", + "\u0a44\u0a45\u0003\u0002\u0002\u0002\u0a45\u0171\u0003\u0002\u0002\u0002", + "\u0a46\u0a44\u0003\u0002\u0002\u0002\u0a47\u0a4b\u0005\u0174\u00bb\u0002", + "\u0a48\u0a4b\u0005\u017a\u00be\u0002\u0a49\u0a4b\u0005\u0180\u00c1\u0002", + "\u0a4a\u0a47\u0003\u0002\u0002\u0002\u0a4a\u0a48\u0003\u0002\u0002\u0002", + "\u0a4a\u0a49\u0003\u0002\u0002\u0002\u0a4b\u0173\u0003\u0002\u0002\u0002", + "\u0a4c\u0a4d\u0005\u0180\u00c1\u0002\u0a4d\u0a4f\u0007\u0096\u0002\u0002", + "\u0a4e\u0a50\u0007\u00be\u0002\u0002\u0a4f\u0a4e\u0003\u0002\u0002\u0002", + "\u0a4f\u0a50\u0003\u0002\u0002\u0002\u0a50\u0a51\u0003\u0002\u0002\u0002", + "\u0a51\u0a52\u0007\u00c0\u0002\u0002\u0a52\u0a64\u0003\u0002\u0002\u0002", + "\u0a53\u0a54\u0005\u0180\u00c1\u0002\u0a54\u0a55\u0007\u0013\u0002\u0002", + "\u0a55\u0a56\u0005\u0180\u00c1\u0002\u0a56\u0a57\u0007\b\u0002\u0002", + "\u0a57\u0a58\u0005\u0180\u00c1\u0002\u0a58\u0a64\u0003\u0002\u0002\u0002", + "\u0a59\u0a5b\u0007\u00be\u0002\u0002\u0a5a\u0a59\u0003\u0002\u0002\u0002", + "\u0a5a\u0a5b\u0003\u0002\u0002\u0002\u0a5b\u0a5c\u0003\u0002\u0002\u0002", + "\u0a5c\u0a5d\u0007g\u0002\u0002\u0a5d\u0a5e\u0007\u016a\u0002\u0002", + "\u0a5e\u0a5f\u0005\u011a\u008e\u0002\u0a5f\u0a60\u0007\u016d\u0002\u0002", + "\u0a60\u0a64\u0003\u0002\u0002\u0002\u0a61\u0a64\u0005\u0176\u00bc\u0002", + "\u0a62\u0a64\u0005\u0178\u00bd\u0002\u0a63\u0a4c\u0003\u0002\u0002\u0002", + "\u0a63\u0a53\u0003\u0002\u0002\u0002\u0a63\u0a5a\u0003\u0002\u0002\u0002", + "\u0a63\u0a61\u0003\u0002\u0002\u0002\u0a63\u0a62\u0003\u0002\u0002\u0002", + "\u0a64\u0175\u0003\u0002\u0002\u0002\u0a65\u0a67\u0005\u0180\u00c1\u0002", + "\u0a66\u0a68\u0007\u00be\u0002\u0002\u0a67\u0a66\u0003\u0002\u0002\u0002", + "\u0a67\u0a68\u0003\u0002\u0002\u0002\u0a68\u0a69\u0003\u0002\u0002\u0002", + "\u0a69\u0a6a\u0007\u0086\u0002\u0002\u0a6a\u0a74\u0007\u016a\u0002\u0002", + "\u0a6b\u0a70\u0005\u0180\u00c1\u0002\u0a6c\u0a6d\u0007\u0157\u0002\u0002", + "\u0a6d\u0a6f\u0005\u0180\u00c1\u0002\u0a6e\u0a6c\u0003\u0002\u0002\u0002", + "\u0a6f\u0a72\u0003\u0002\u0002\u0002\u0a70\u0a6e\u0003\u0002\u0002\u0002", + "\u0a70\u0a71\u0003\u0002\u0002\u0002\u0a71\u0a75\u0003\u0002\u0002\u0002", + "\u0a72\u0a70\u0003\u0002\u0002\u0002\u0a73\u0a75\u0005\u011a\u008e\u0002", + "\u0a74\u0a6b\u0003\u0002\u0002\u0002\u0a74\u0a73\u0003\u0002\u0002\u0002", + "\u0a75\u0a76\u0003\u0002\u0002\u0002\u0a76\u0a77\u0007\u016d\u0002\u0002", + "\u0a77\u0177\u0003\u0002\u0002\u0002\u0a78\u0a79\u0007\u016a\u0002\u0002", + "\u0a79\u0a7e\u0005\u0180\u00c1\u0002\u0a7a\u0a7b\u0007\u0157\u0002\u0002", + "\u0a7b\u0a7d\u0005\u0180\u00c1\u0002\u0a7c\u0a7a\u0003\u0002\u0002\u0002", + "\u0a7d\u0a80\u0003\u0002\u0002\u0002\u0a7e\u0a7c\u0003\u0002\u0002\u0002", + "\u0a7e\u0a7f\u0003\u0002\u0002\u0002\u0a7f\u0a81\u0003\u0002\u0002\u0002", + "\u0a80\u0a7e\u0003\u0002\u0002\u0002\u0a81\u0a83\u0007\u016d\u0002\u0002", + "\u0a82\u0a84\u0007\u00be\u0002\u0002\u0a83\u0a82\u0003\u0002\u0002\u0002", + "\u0a83\u0a84\u0003\u0002\u0002\u0002\u0a84\u0a85\u0003\u0002\u0002\u0002", + "\u0a85\u0a86\u0007\u0086\u0002\u0002\u0a86\u0a87\u0007\u016a\u0002\u0002", + "\u0a87\u0a88\u0005\u011a\u008e\u0002\u0a88\u0a89\u0007\u016d\u0002\u0002", + "\u0a89\u0179\u0003\u0002\u0002\u0002\u0a8a\u0a8b\u0005\u0180\u00c1\u0002", + "\u0a8b\u0a8c\u0005\u017e\u00c0\u0002\u0a8c\u0a8d\u0005\u0180\u00c1\u0002", + "\u0a8d\u017b\u0003\u0002\u0002\u0002\u0a8e\u0a8f\t+\u0002\u0002\u0a8f", + "\u017d\u0003\u0002\u0002\u0002\u0a90\u0a9d\u0007\u015c\u0002\u0002\u0a91", + "\u0a9d\u0007\u015d\u0002\u0002\u0a92\u0a9d\u0007\u0160\u0002\u0002\u0a93", + "\u0a9d\u0007\u0161\u0002\u0002\u0a94\u0a9d\u0007\u0164\u0002\u0002\u0a95", + "\u0a9d\u0007\u0165\u0002\u0002\u0a96\u0a9d\u0007\u0162\u0002\u0002\u0a97", + "\u0a9d\u0007\u0163\u0002\u0002\u0a98\u0a9a\u0007\u00be\u0002\u0002\u0a99", + "\u0a98\u0003\u0002\u0002\u0002\u0a99\u0a9a\u0003\u0002\u0002\u0002\u0a9a", + "\u0a9b\u0003\u0002\u0002\u0002\u0a9b\u0a9d\t,\u0002\u0002\u0a9c\u0a90", + "\u0003\u0002\u0002\u0002\u0a9c\u0a91\u0003\u0002\u0002\u0002\u0a9c\u0a92", + "\u0003\u0002\u0002\u0002\u0a9c\u0a93\u0003\u0002\u0002\u0002\u0a9c\u0a94", + "\u0003\u0002\u0002\u0002\u0a9c\u0a95\u0003\u0002\u0002\u0002\u0a9c\u0a96", + "\u0003\u0002\u0002\u0002\u0a9c\u0a97\u0003\u0002\u0002\u0002\u0a9c\u0a99", + "\u0003\u0002\u0002\u0002\u0a9d\u017f\u0003\u0002\u0002\u0002\u0a9e\u0a9f", + "\b\u00c1\u0001\u0002\u0a9f\u0aa0\u0007\u016a\u0002\u0002\u0aa0\u0aa1", + "\u0005\u011a\u008e\u0002\u0aa1\u0aa2\u0007\u016d\u0002\u0002\u0aa2\u0ab0", + "\u0003\u0002\u0002\u0002\u0aa3\u0aa4\u0007\u016a\u0002\u0002\u0aa4\u0aa5", + "\u0005\u0180\u00c1\u0002\u0aa5\u0aa6\u0007\u016d\u0002\u0002\u0aa6\u0ab0", + "\u0003\u0002\u0002\u0002\u0aa7\u0ab0\u0005\u0184\u00c3\u0002\u0aa8\u0ab0", + "\u0005\u0188\u00c5\u0002\u0aa9\u0ab0\u0005\u018c\u00c7\u0002\u0aaa\u0ab0", + "\u0005\u0192\u00ca\u0002\u0aab\u0ab0\u0005\u0194\u00cb\u0002\u0aac\u0ab0", + "\u0005\u019c\u00cf\u0002\u0aad\u0ab0\u0005\u019e\u00d0\u0002\u0aae\u0ab0", + "\u0005\u0182\u00c2\u0002\u0aaf\u0a9e\u0003\u0002\u0002\u0002\u0aaf\u0aa3", + "\u0003\u0002\u0002\u0002\u0aaf\u0aa7\u0003\u0002\u0002\u0002\u0aaf\u0aa8", + "\u0003\u0002\u0002\u0002\u0aaf\u0aa9\u0003\u0002\u0002\u0002\u0aaf\u0aaa", + "\u0003\u0002\u0002\u0002\u0aaf\u0aab\u0003\u0002\u0002\u0002\u0aaf\u0aac", + "\u0003\u0002\u0002\u0002\u0aaf\u0aad\u0003\u0002\u0002\u0002\u0aaf\u0aae", + "\u0003\u0002\u0002\u0002\u0ab0\u0ac1\u0003\u0002\u0002\u0002\u0ab1\u0ab2", + "\f\u0010\u0002\u0002\u0ab2\u0ab3\u0007\u0166\u0002\u0002\u0ab3\u0ac0", + "\u0005\u0180\u00c1\u0011\u0ab4\u0ab5\f\u000f\u0002\u0002\u0ab5\u0ab6", + "\u0007\u0159\u0002\u0002\u0ab6\u0ac0\u0005\u0180\u00c1\u0010\u0ab7\u0ab8", + "\f\u000e\u0002\u0002\u0ab8\u0ab9\u0007\u0155\u0002\u0002\u0ab9\u0ac0", + "\u0005\u0180\u00c1\u000f\u0aba\u0abb\f\r\u0002\u0002\u0abb\u0abc\u0007", + "\u0170\u0002\u0002\u0abc\u0ac0\u0005\u0180\u00c1\u000e\u0abd\u0abe\f", + "\u0011\u0002\u0002\u0abe\u0ac0\u0005\u0186\u00c4\u0002\u0abf\u0ab1\u0003", + "\u0002\u0002\u0002\u0abf\u0ab4\u0003\u0002\u0002\u0002\u0abf\u0ab7\u0003", + "\u0002\u0002\u0002\u0abf\u0aba\u0003\u0002\u0002\u0002\u0abf\u0abd\u0003", + "\u0002\u0002\u0002\u0ac0\u0ac3\u0003\u0002\u0002\u0002\u0ac1\u0abf\u0003", + "\u0002\u0002\u0002\u0ac1\u0ac2\u0003\u0002\u0002\u0002\u0ac2\u0181\u0003", + "\u0002\u0002\u0002\u0ac3\u0ac1\u0003\u0002\u0002\u0002\u0ac4\u0acd\u0005", + "\u01b4\u00db\u0002\u0ac5\u0acd\u0005\u01b6\u00dc\u0002\u0ac6\u0acd\u0005", + "\u01c0\u00e1\u0002\u0ac7\u0acd\u0005\u01b8\u00dd\u0002\u0ac8\u0acd\u0005", + "\u01ba\u00de\u0002\u0ac9\u0acd\u0005\u01be\u00e0\u0002\u0aca\u0acd\u0005", + "\u01bc\u00df\u0002\u0acb\u0acd\u0005\u01c2\u00e2\u0002\u0acc\u0ac4\u0003", + "\u0002\u0002\u0002\u0acc\u0ac5\u0003\u0002\u0002\u0002\u0acc\u0ac6\u0003", + "\u0002\u0002\u0002\u0acc\u0ac7\u0003\u0002\u0002\u0002\u0acc\u0ac8\u0003", + "\u0002\u0002\u0002\u0acc\u0ac9\u0003\u0002\u0002\u0002\u0acc\u0aca\u0003", + "\u0002\u0002\u0002\u0acc\u0acb\u0003\u0002\u0002\u0002\u0acd\u0183\u0003", + "\u0002\u0002\u0002\u0ace\u0acf\u0007\u0093\u0002\u0002\u0acf\u0ad0\u0005", + "\u0180\u00c1\u0002\u0ad0\u0ad1\u0005\u0186\u00c4\u0002\u0ad1\u0185\u0003", + "\u0002\u0002\u0002\u0ad2\u0ad3\t-\u0002\u0002\u0ad3\u0187\u0003\u0002", + "\u0002\u0002\u0ad4\u0ad5\u0005\u018a\u00c6\u0002\u0ad5\u0ad6\t.\u0002", + "\u0002\u0ad6\u0adb\u0005\u018a\u00c6\u0002\u0ad7\u0ad8\t.\u0002\u0002", + "\u0ad8\u0ada\u0005\u018a\u00c6\u0002\u0ad9\u0ad7\u0003\u0002\u0002\u0002", + "\u0ada\u0add\u0003\u0002\u0002\u0002\u0adb\u0ad9\u0003\u0002\u0002\u0002", + "\u0adb\u0adc\u0003\u0002\u0002\u0002\u0adc\u0189\u0003\u0002\u0002\u0002", + "\u0add\u0adb\u0003\u0002\u0002\u0002\u0ade\u0adf\u0007\u016a\u0002\u0002", + "\u0adf\u0ae0\u0005\u0180\u00c1\u0002\u0ae0\u0ae1\u0007\u016d\u0002\u0002", + "\u0ae1\u0ae8\u0003\u0002\u0002\u0002\u0ae2\u0ae8\u0005\u018c\u00c7\u0002", + "\u0ae3\u0ae8\u0005\u0194\u00cb\u0002\u0ae4\u0ae8\u0005\u019c\u00cf\u0002", + "\u0ae5\u0ae8\u0005\u019e\u00d0\u0002\u0ae6\u0ae8\u0005\u0182\u00c2\u0002", + "\u0ae7\u0ade\u0003\u0002\u0002\u0002\u0ae7\u0ae2\u0003\u0002\u0002\u0002", + "\u0ae7\u0ae3\u0003\u0002\u0002\u0002\u0ae7\u0ae4\u0003\u0002\u0002\u0002", + "\u0ae7\u0ae5\u0003\u0002\u0002\u0002\u0ae7\u0ae6\u0003\u0002\u0002\u0002", + "\u0ae8\u018b\u0003\u0002\u0002\u0002\u0ae9\u0aec\u0005\u018e\u00c8\u0002", + "\u0aea\u0aec\u0005\u0190\u00c9\u0002\u0aeb\u0ae9\u0003\u0002\u0002\u0002", + "\u0aeb\u0aea\u0003\u0002\u0002\u0002\u0aec\u018d\u0003\u0002\u0002\u0002", + "\u0aed\u0aee\u0007 \u0002\u0002\u0aee\u0af4\u0005\u0180\u00c1\u0002", + "\u0aef\u0af0\u0007\u0134\u0002\u0002\u0af0\u0af1\u0005\u0180\u00c1\u0002", + "\u0af1\u0af2\u0007\u011d\u0002\u0002\u0af2\u0af3\u0005\u0180\u00c1\u0002", + "\u0af3\u0af5\u0003\u0002\u0002\u0002\u0af4\u0aef\u0003\u0002\u0002\u0002", + "\u0af5\u0af6\u0003\u0002\u0002\u0002\u0af6\u0af4\u0003\u0002\u0002\u0002", + "\u0af6\u0af7\u0003\u0002\u0002\u0002\u0af7\u0afa\u0003\u0002\u0002\u0002", + "\u0af8\u0af9\u0007[\u0002\u0002\u0af9\u0afb\u0005\u0180\u00c1\u0002", + "\u0afa\u0af8\u0003\u0002\u0002\u0002\u0afa\u0afb\u0003\u0002\u0002\u0002", + "\u0afb\u0afc\u0003\u0002\u0002\u0002\u0afc\u0afd\u0007_\u0002\u0002", + "\u0afd\u018f\u0003\u0002\u0002\u0002\u0afe\u0b04\u0007 \u0002\u0002", + "\u0aff\u0b00\u0007\u0134\u0002\u0002\u0b00\u0b01\u0005\u0170\u00b9\u0002", + "\u0b01\u0b02\u0007\u011d\u0002\u0002\u0b02\u0b03\u0005\u0180\u00c1\u0002", + "\u0b03\u0b05\u0003\u0002\u0002\u0002\u0b04\u0aff\u0003\u0002\u0002\u0002", + "\u0b05\u0b06\u0003\u0002\u0002\u0002\u0b06\u0b04\u0003\u0002\u0002\u0002", + "\u0b06\u0b07\u0003\u0002\u0002\u0002\u0b07\u0b0a\u0003\u0002\u0002\u0002", + "\u0b08\u0b09\u0007[\u0002\u0002\u0b09\u0b0b\u0005\u0180\u00c1\u0002", + "\u0b0a\u0b08\u0003\u0002\u0002\u0002\u0b0a\u0b0b\u0003\u0002\u0002\u0002", + "\u0b0b\u0b0c\u0003\u0002\u0002\u0002\u0b0c\u0b0d\u0007_\u0002\u0002", + "\u0b0d\u0191\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0005\u01b8\u00dd\u0002", + "\u0b0f\u0b10\u0007\u0167\u0002\u0002\u0b10\u0b11\t/\u0002\u0002\u0b11", + "\u0193\u0003\u0002\u0002\u0002\u0b12\u0b13\u0007\u0010\u0002\u0002\u0b13", + "\u0b15\u0007\u016a\u0002\u0002\u0b14\u0b16\u0005\u0196\u00cc\u0002\u0b15", + "\u0b14\u0003\u0002\u0002\u0002\u0b15\u0b16\u0003\u0002\u0002\u0002\u0b16", + "\u0b17\u0003\u0002\u0002\u0002\u0b17\u0b18\u0005\u0180\u00c1\u0002\u0b18", + "\u0b1a\u0007\u016d\u0002\u0002\u0b19\u0b1b\u0005\u0198\u00cd\u0002\u0b1a", + "\u0b19\u0003\u0002\u0002\u0002\u0b1a\u0b1b\u0003\u0002\u0002\u0002\u0b1b", + "\u0bab\u0003\u0002\u0002\u0002\u0b1c\u0b1d\u00076\u0002\u0002\u0b1d", + "\u0b23\u0007\u016a\u0002\u0002\u0b1e\u0b20\u0005\u0196\u00cc\u0002\u0b1f", + "\u0b1e\u0003\u0002\u0002\u0002\u0b1f\u0b20\u0003\u0002\u0002\u0002\u0b20", + "\u0b21\u0003\u0002\u0002\u0002\u0b21\u0b24\u0005\u0180\u00c1\u0002\u0b22", + "\u0b24\u0007\u0166\u0002\u0002\u0b23\u0b1f\u0003\u0002\u0002\u0002\u0b23", + "\u0b22\u0003\u0002\u0002\u0002\u0b24\u0b25\u0003\u0002\u0002\u0002\u0b25", + "\u0b27\u0007\u016d\u0002\u0002\u0b26\u0b28\u0005\u0198\u00cd\u0002\u0b27", + "\u0b26\u0003\u0002\u0002\u0002\u0b27\u0b28\u0003\u0002\u0002\u0002\u0b28", + "\u0bab\u0003\u0002\u0002\u0002\u0b29\u0b2a\u00077\u0002\u0002\u0b2a", + "\u0b30\u0007\u016a\u0002\u0002\u0b2b\u0b2d\u0005\u0196\u00cc\u0002\u0b2c", + "\u0b2b\u0003\u0002\u0002\u0002\u0b2c\u0b2d\u0003\u0002\u0002\u0002\u0b2d", + "\u0b2e\u0003\u0002\u0002\u0002\u0b2e\u0b31\u0005\u0180\u00c1\u0002\u0b2f", + "\u0b31\u0007\u0166\u0002\u0002\u0b30\u0b2c\u0003\u0002\u0002\u0002\u0b30", + "\u0b2f\u0003\u0002\u0002\u0002\u0b31\u0b32\u0003\u0002\u0002\u0002\u0b32", + "\u0b34\u0007\u016d\u0002\u0002\u0b33\u0b35\u0005\u0198\u00cd\u0002\u0b34", + "\u0b33\u0003\u0002\u0002\u0002\u0b34\u0b35\u0003\u0002\u0002\u0002\u0b35", + "\u0bab\u0003\u0002\u0002\u0002\u0b36\u0b37\u0007\u013e\u0002\u0002\u0b37", + "\u0b38\u0007\u016a\u0002\u0002\u0b38\u0b39\u0007\u016d\u0002\u0002\u0b39", + "\u0bab\u0005\u0198\u00cd\u0002\u0b3a\u0b3b\u0007\u0142\u0002\u0002\u0b3b", + "\u0b3c\u0007\u016a\u0002\u0002\u0b3c\u0b3d\u0007\u016d\u0002\u0002\u0b3d", + "\u0bab\u0005\u0198\u00cd\u0002\u0b3e\u0b3f\u0007\u0143\u0002\u0002\u0b3f", + "\u0b40\u0007\u016a\u0002\u0002\u0b40\u0b41\u0005\u0180\u00c1\u0002\u0b41", + "\u0b42\u0007\u016d\u0002\u0002\u0b42\u0b43\u0005\u0198\u00cd\u0002\u0b43", + "\u0bab\u0003\u0002\u0002\u0002\u0b44\u0b45\u0007\u0144\u0002\u0002\u0b45", + "\u0b46\u0007\u016a\u0002\u0002\u0b46\u0b4d\u0005\u0180\u00c1\u0002\u0b47", + "\u0b48\u0007\u0157\u0002\u0002\u0b48\u0b4b\u0005\u0180\u00c1\u0002\u0b49", + "\u0b4a\u0007\u0157\u0002\u0002\u0b4a\u0b4c\u0005\u0180\u00c1\u0002\u0b4b", + "\u0b49\u0003\u0002\u0002\u0002\u0b4b\u0b4c\u0003\u0002\u0002\u0002\u0b4c", + "\u0b4e\u0003\u0002\u0002\u0002\u0b4d\u0b47\u0003\u0002\u0002\u0002\u0b4d", + "\u0b4e\u0003\u0002\u0002\u0002\u0b4e\u0b4f\u0003\u0002\u0002\u0002\u0b4f", + "\u0b50\u0007\u016d\u0002\u0002\u0b50\u0b51\u0005\u0198\u00cd\u0002\u0b51", + "\u0bab\u0003\u0002\u0002\u0002\u0b52\u0b53\u0007\u0145\u0002\u0002\u0b53", + "\u0b54\u0007\u016a\u0002\u0002\u0b54\u0b55\u0005\u0180\u00c1\u0002\u0b55", + "\u0b56\u0007\u016d\u0002\u0002\u0b56\u0b57\u0005\u0198\u00cd\u0002\u0b57", + "\u0bab\u0003\u0002\u0002\u0002\u0b58\u0b59\u0007\u0146\u0002\u0002\u0b59", + "\u0b5a\u0007\u016a\u0002\u0002\u0b5a\u0b61\u0005\u0180\u00c1\u0002\u0b5b", + "\u0b5c\u0007\u0157\u0002\u0002\u0b5c\u0b5f\u0005\u0180\u00c1\u0002\u0b5d", + "\u0b5e\u0007\u0157\u0002\u0002\u0b5e\u0b60\u0005\u0180\u00c1\u0002\u0b5f", + "\u0b5d\u0003\u0002\u0002\u0002\u0b5f\u0b60\u0003\u0002\u0002\u0002\u0b60", + "\u0b62\u0003\u0002\u0002\u0002\u0b61\u0b5b\u0003\u0002\u0002\u0002\u0b61", + "\u0b62\u0003\u0002\u0002\u0002\u0b62\u0b63\u0003\u0002\u0002\u0002\u0b63", + "\u0b64\u0007\u016d\u0002\u0002\u0b64\u0b65\u0005\u0198\u00cd\u0002\u0b65", + "\u0bab\u0003\u0002\u0002\u0002\u0b66\u0b67\u0007\u00ae\u0002\u0002\u0b67", + "\u0b69\u0007\u016a\u0002\u0002\u0b68\u0b6a\u0005\u0196\u00cc\u0002\u0b69", + "\u0b68\u0003\u0002\u0002\u0002\u0b69\u0b6a\u0003\u0002\u0002\u0002\u0b6a", + "\u0b6b\u0003\u0002\u0002\u0002\u0b6b\u0b6c\u0005\u0180\u00c1\u0002\u0b6c", + "\u0b6e\u0007\u016d\u0002\u0002\u0b6d\u0b6f\u0005\u0198\u00cd\u0002\u0b6e", + "\u0b6d\u0003\u0002\u0002\u0002\u0b6e\u0b6f\u0003\u0002\u0002\u0002\u0b6f", + "\u0bab\u0003\u0002\u0002\u0002\u0b70\u0b71\u0007\u00b4\u0002\u0002\u0b71", + "\u0b73\u0007\u016a\u0002\u0002\u0b72\u0b74\u0005\u0196\u00cc\u0002\u0b73", + "\u0b72\u0003\u0002\u0002\u0002\u0b73\u0b74\u0003\u0002\u0002\u0002\u0b74", + "\u0b75\u0003\u0002\u0002\u0002\u0b75\u0b76\u0005\u0180\u00c1\u0002\u0b76", + "\u0b78\u0007\u016d\u0002\u0002\u0b77\u0b79\u0005\u0198\u00cd\u0002\u0b78", + "\u0b77\u0003\u0002\u0002\u0002\u0b78\u0b79\u0003\u0002\u0002\u0002\u0b79", + "\u0bab\u0003\u0002\u0002\u0002\u0b7a\u0b7b\u0007\u014f\u0002\u0002\u0b7b", + "\u0b7c\u0007\u016a\u0002\u0002\u0b7c\u0b7d\u0007\u016d\u0002\u0002\u0b7d", + "\u0bab\u0005\u0198\u00cd\u0002\u0b7e\u0b7f\u0007\u0150\u0002\u0002\u0b7f", + "\u0b80\u0007\u016a\u0002\u0002\u0b80\u0b81\u0007\u016d\u0002\u0002\u0b81", + "\u0bab\u0005\u0198\u00cd\u0002\u0b82\u0b83\u0007\u0151\u0002\u0002\u0b83", + "\u0b85\u0007\u016a\u0002\u0002\u0b84\u0b86\u0005\u0196\u00cc\u0002\u0b85", + "\u0b84\u0003\u0002\u0002\u0002\u0b85\u0b86\u0003\u0002\u0002\u0002\u0b86", + "\u0b87\u0003\u0002\u0002\u0002\u0b87\u0b88\u0005\u0180\u00c1\u0002\u0b88", + "\u0b8a\u0007\u016d\u0002\u0002\u0b89\u0b8b\u0005\u0198\u00cd\u0002\u0b8a", + "\u0b89\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0003\u0002\u0002\u0002\u0b8b", + "\u0bab\u0003\u0002\u0002\u0002\u0b8c\u0b8d\u0007\u0115\u0002\u0002\u0b8d", + "\u0b8f\u0007\u016a\u0002\u0002\u0b8e\u0b90\u0005\u0196\u00cc\u0002\u0b8f", + "\u0b8e\u0003\u0002\u0002\u0002\u0b8f\u0b90\u0003\u0002\u0002\u0002\u0b90", + "\u0b91\u0003\u0002\u0002\u0002\u0b91\u0b92\u0005\u0180\u00c1\u0002\u0b92", + "\u0b94\u0007\u016d\u0002\u0002\u0b93\u0b95\u0005\u0198\u00cd\u0002\u0b94", + "\u0b93\u0003\u0002\u0002\u0002\u0b94\u0b95\u0003\u0002\u0002\u0002\u0b95", + "\u0bab\u0003\u0002\u0002\u0002\u0b96\u0b97\u0007\u012f\u0002\u0002\u0b97", + "\u0b99\u0007\u016a\u0002\u0002\u0b98\u0b9a\u0005\u0196\u00cc\u0002\u0b99", + "\u0b98\u0003\u0002\u0002\u0002\u0b99\u0b9a\u0003\u0002\u0002\u0002\u0b9a", + "\u0b9b\u0003\u0002\u0002\u0002\u0b9b\u0b9c\u0005\u0180\u00c1\u0002\u0b9c", + "\u0b9e\u0007\u016d\u0002\u0002\u0b9d\u0b9f\u0005\u0198\u00cd\u0002\u0b9e", + "\u0b9d\u0003\u0002\u0002\u0002\u0b9e\u0b9f\u0003\u0002\u0002\u0002\u0b9f", + "\u0bab\u0003\u0002\u0002\u0002\u0ba0\u0ba1\u0007\u0153\u0002\u0002\u0ba1", + "\u0ba3\u0007\u016a\u0002\u0002\u0ba2\u0ba4\u0005\u0196\u00cc\u0002\u0ba3", + "\u0ba2\u0003\u0002\u0002\u0002\u0ba3\u0ba4\u0003\u0002\u0002\u0002\u0ba4", + "\u0ba5\u0003\u0002\u0002\u0002\u0ba5\u0ba6\u0005\u0180\u00c1\u0002\u0ba6", + "\u0ba8\u0007\u016d\u0002\u0002\u0ba7\u0ba9\u0005\u0198\u00cd\u0002\u0ba8", + "\u0ba7\u0003\u0002\u0002\u0002\u0ba8\u0ba9\u0003\u0002\u0002\u0002\u0ba9", + "\u0bab\u0003\u0002\u0002\u0002\u0baa\u0b12\u0003\u0002\u0002\u0002\u0baa", + "\u0b1c\u0003\u0002\u0002\u0002\u0baa\u0b29\u0003\u0002\u0002\u0002\u0baa", + "\u0b36\u0003\u0002\u0002\u0002\u0baa\u0b3a\u0003\u0002\u0002\u0002\u0baa", + "\u0b3e\u0003\u0002\u0002\u0002\u0baa\u0b44\u0003\u0002\u0002\u0002\u0baa", + "\u0b52\u0003\u0002\u0002\u0002\u0baa\u0b58\u0003\u0002\u0002\u0002\u0baa", + "\u0b66\u0003\u0002\u0002\u0002\u0baa\u0b70\u0003\u0002\u0002\u0002\u0baa", + "\u0b7a\u0003\u0002\u0002\u0002\u0baa\u0b7e\u0003\u0002\u0002\u0002\u0baa", + "\u0b82\u0003\u0002\u0002\u0002\u0baa\u0b8c\u0003\u0002\u0002\u0002\u0baa", + "\u0b96\u0003\u0002\u0002\u0002\u0baa\u0ba0\u0003\u0002\u0002\u0002\u0bab", + "\u0195\u0003\u0002\u0002\u0002\u0bac\u0bad\t&\u0002\u0002\u0bad\u0197", + "\u0003\u0002\u0002\u0002\u0bae\u0baf\u0007\u00cc\u0002\u0002\u0baf\u0bb1", + "\u0007\u016a\u0002\u0002\u0bb0\u0bb2\u0005\u019a\u00ce\u0002\u0bb1\u0bb0", + "\u0003\u0002\u0002\u0002\u0bb1\u0bb2\u0003\u0002\u0002\u0002\u0bb2\u0bb4", + "\u0003\u0002\u0002\u0002\u0bb3\u0bb5\u0005\u0154\u00ab\u0002\u0bb4\u0bb3", + "\u0003\u0002\u0002\u0002\u0bb4\u0bb5\u0003\u0002\u0002\u0002\u0bb5\u0bb6", + "\u0003\u0002\u0002\u0002\u0bb6\u0bb7\u0007\u016d\u0002\u0002\u0bb7\u0199", + "\u0003\u0002\u0002\u0002\u0bb8\u0bb9\u0007\u00d0\u0002\u0002\u0bb9\u0bba", + "\u0007\u001b\u0002\u0002\u0bba\u0bbf\u0005\u0180\u00c1\u0002\u0bbb\u0bbc", + "\u0007\u0157\u0002\u0002\u0bbc\u0bbe\u0005\u0180\u00c1\u0002\u0bbd\u0bbb", + "\u0003\u0002\u0002\u0002\u0bbe\u0bc1\u0003\u0002\u0002\u0002\u0bbf\u0bbd", + "\u0003\u0002\u0002\u0002\u0bbf\u0bc0\u0003\u0002\u0002\u0002\u0bc0\u019b", + "\u0003\u0002\u0002\u0002\u0bc1\u0bbf\u0003\u0002\u0002\u0002\u0bc2\u0c8b", + "\u0007\u013d\u0002\u0002\u0bc3\u0bc4\u0007\"\u0002\u0002\u0bc4\u0bc5", + "\u0007\u016a\u0002\u0002\u0bc5\u0bc6\u0005\u0180\u00c1\u0002\u0bc6\u0bc7", + "\u0007\u000b\u0002\u0002\u0bc7\u0bc9\u0005x=\u0002\u0bc8\u0bca\u0005", + "z>\u0002\u0bc9\u0bc8\u0003\u0002\u0002\u0002\u0bc9\u0bca\u0003\u0002", + "\u0002\u0002\u0bca\u0bcb\u0003\u0002\u0002\u0002\u0bcb\u0bcc\u0007\u016d", + "\u0002\u0002\u0bcc\u0c8b\u0003\u0002\u0002\u0002\u0bcd\u0bce\u00076", + "\u0002\u0002\u0bce\u0bd1\u0007\u016a\u0002\u0002\u0bcf\u0bd2\u0005\u0180", + "\u00c1\u0002\u0bd0\u0bd2\u0007\u0166\u0002\u0002\u0bd1\u0bcf\u0003\u0002", + "\u0002\u0002\u0bd1\u0bd0\u0003\u0002\u0002\u0002\u0bd2\u0bd3\u0003\u0002", + "\u0002\u0002\u0bd3\u0c8b\u0007\u016d\u0002\u0002\u0bd4\u0c8b\u0007\u013f", + "\u0002\u0002\u0bd5\u0bd6\u0007<\u0002\u0002\u0bd6\u0c8b\u0007A\u0002", + "\u0002\u0bd7\u0bdb\u0007\u0140\u0002\u0002\u0bd8\u0bd9\u0007<\u0002", + "\u0002\u0bd9\u0bdb\u0007\u011e\u0002\u0002\u0bda\u0bd7\u0003\u0002\u0002", + "\u0002\u0bda\u0bd8\u0003\u0002\u0002\u0002\u0bdb\u0be0\u0003\u0002\u0002", + "\u0002\u0bdc\u0bdd\u0007\u016a\u0002\u0002\u0bdd\u0bde\u0005\u0180\u00c1", + "\u0002\u0bde\u0bdf\u0007\u016d\u0002\u0002\u0bdf\u0be1\u0003\u0002\u0002", + "\u0002\u0be0\u0bdc\u0003\u0002\u0002\u0002\u0be0\u0be1\u0003\u0002\u0002", + "\u0002\u0be1\u0c8b\u0003\u0002\u0002\u0002\u0be2\u0c8b\u0007\u0141\u0002", + "\u0002\u0be3\u0be4\u0007<\u0002\u0002\u0be4\u0c8b\u0007\u0154\u0002", + "\u0002\u0be5\u0be6\u0007\u0147\u0002\u0002\u0be6\u0be7\u0007\u016a\u0002", + "\u0002\u0be7\u0bf4\u0005\u0180\u00c1\u0002\u0be8\u0be9\u0007\u0157\u0002", + "\u0002\u0be9\u0bf1\u0005\u0180\u00c1\u0002\u0bea\u0beb\u0007\u0157\u0002", + "\u0002\u0beb\u0bec\u0005\u0180\u00c1\u0002\u0bec\u0bed\u0007\u015c\u0002", + "\u0002\u0bed\u0bee\u0005\u0180\u00c1\u0002\u0bee\u0bf0\u0003\u0002\u0002", + "\u0002\u0bef\u0bea\u0003\u0002\u0002\u0002\u0bf0\u0bf3\u0003\u0002\u0002", + "\u0002\u0bf1\u0bef\u0003\u0002\u0002\u0002\u0bf1\u0bf2\u0003\u0002\u0002", + "\u0002\u0bf2\u0bf5\u0003\u0002\u0002\u0002\u0bf3\u0bf1\u0003\u0002\u0002", + "\u0002\u0bf4\u0be8\u0003\u0002\u0002\u0002\u0bf4\u0bf5\u0003\u0002\u0002", + "\u0002\u0bf5\u0bf6\u0003\u0002\u0002\u0002\u0bf6\u0bf7\u0007\u016d\u0002", + "\u0002\u0bf7\u0c8b\u0003\u0002\u0002\u0002\u0bf8\u0bf9\u0007\u0148\u0002", + "\u0002\u0bf9\u0bfa\u0007\u016a\u0002\u0002\u0bfa\u0c07\u0005\u0180\u00c1", + "\u0002\u0bfb\u0bfc\u0007\u0157\u0002\u0002\u0bfc\u0c04\u0005\u0180\u00c1", + "\u0002\u0bfd\u0bfe\u0007\u0157\u0002\u0002\u0bfe\u0bff\u0005\u0180\u00c1", + "\u0002\u0bff\u0c00\u0007\u015c\u0002\u0002\u0c00\u0c01\u0005\u0180\u00c1", + "\u0002\u0c01\u0c03\u0003\u0002\u0002\u0002\u0c02\u0bfd\u0003\u0002\u0002", + "\u0002\u0c03\u0c06\u0003\u0002\u0002\u0002\u0c04\u0c02\u0003\u0002\u0002", + "\u0002\u0c04\u0c05\u0003\u0002\u0002\u0002\u0c05\u0c08\u0003\u0002\u0002", + "\u0002\u0c06\u0c04\u0003\u0002\u0002\u0002\u0c07\u0bfb\u0003\u0002\u0002", + "\u0002\u0c07\u0c08\u0003\u0002\u0002\u0002\u0c08\u0c09\u0003\u0002\u0002", + "\u0002\u0c09\u0c0a\u0007\u016d\u0002\u0002\u0c0a\u0c8b\u0003\u0002\u0002", + "\u0002\u0c0b\u0c0c\u0007\u0149\u0002\u0002\u0c0c\u0c0d\u0007\u016a\u0002", + "\u0002\u0c0d\u0c1a\u0005\u0180\u00c1\u0002\u0c0e\u0c0f\u0007\u0157\u0002", + "\u0002\u0c0f\u0c17\u0005\u0180\u00c1\u0002\u0c10\u0c11\u0007\u0157\u0002", + "\u0002\u0c11\u0c12\u0005\u0180\u00c1\u0002\u0c12\u0c13\u0007\u015c\u0002", + "\u0002\u0c13\u0c14\u0005\u0180\u00c1\u0002\u0c14\u0c16\u0003\u0002\u0002", + "\u0002\u0c15\u0c10\u0003\u0002\u0002\u0002\u0c16\u0c19\u0003\u0002\u0002", + "\u0002\u0c17\u0c15\u0003\u0002\u0002\u0002\u0c17\u0c18\u0003\u0002\u0002", + "\u0002\u0c18\u0c1b\u0003\u0002\u0002\u0002\u0c19\u0c17\u0003\u0002\u0002", + "\u0002\u0c1a\u0c0e\u0003\u0002\u0002\u0002\u0c1a\u0c1b\u0003\u0002\u0002", + "\u0002\u0c1b\u0c1c\u0003\u0002\u0002\u0002\u0c1c\u0c1d\u0007\u016d\u0002", + "\u0002\u0c1d\u0c8b\u0003\u0002\u0002\u0002\u0c1e\u0c1f\u0007\u014a\u0002", + "\u0002\u0c1f\u0c20\u0007\u016a\u0002\u0002\u0c20\u0c2d\u0005\u0180\u00c1", + "\u0002\u0c21\u0c22\u0007\u0157\u0002\u0002\u0c22\u0c2a\u0005\u0180\u00c1", + "\u0002\u0c23\u0c24\u0007\u0157\u0002\u0002\u0c24\u0c25\u0005\u0180\u00c1", + "\u0002\u0c25\u0c26\u0007\u015c\u0002\u0002\u0c26\u0c27\u0005\u0180\u00c1", + "\u0002\u0c27\u0c29\u0003\u0002\u0002\u0002\u0c28\u0c23\u0003\u0002\u0002", + "\u0002\u0c29\u0c2c\u0003\u0002\u0002\u0002\u0c2a\u0c28\u0003\u0002\u0002", + "\u0002\u0c2a\u0c2b\u0003\u0002\u0002\u0002\u0c2b\u0c2e\u0003\u0002\u0002", + "\u0002\u0c2c\u0c2a\u0003\u0002\u0002\u0002\u0c2d\u0c21\u0003\u0002\u0002", + "\u0002\u0c2d\u0c2e\u0003\u0002\u0002\u0002\u0c2e\u0c2f\u0003\u0002\u0002", + "\u0002\u0c2f\u0c30\u0007\u016d\u0002\u0002\u0c30\u0c8b\u0003\u0002\u0002", + "\u0002\u0c31\u0c32\u0007\u014b\u0002\u0002\u0c32\u0c33\u0007\u016a\u0002", + "\u0002\u0c33\u0c40\u0005\u0180\u00c1\u0002\u0c34\u0c35\u0007\u0157\u0002", + "\u0002\u0c35\u0c3d\u0005\u0180\u00c1\u0002\u0c36\u0c37\u0007\u0157\u0002", + "\u0002\u0c37\u0c38\u0005\u0180\u00c1\u0002\u0c38\u0c39\u0007\u015c\u0002", + "\u0002\u0c39\u0c3a\u0005\u0180\u00c1\u0002\u0c3a\u0c3c\u0003\u0002\u0002", + "\u0002\u0c3b\u0c36\u0003\u0002\u0002\u0002\u0c3c\u0c3f\u0003\u0002\u0002", + "\u0002\u0c3d\u0c3b\u0003\u0002\u0002\u0002\u0c3d\u0c3e\u0003\u0002\u0002", + "\u0002\u0c3e\u0c41\u0003\u0002\u0002\u0002\u0c3f\u0c3d\u0003\u0002\u0002", + "\u0002\u0c40\u0c34\u0003\u0002\u0002\u0002\u0c40\u0c41\u0003\u0002\u0002", + "\u0002\u0c41\u0c42\u0003\u0002\u0002\u0002\u0c42\u0c43\u0007\u016d\u0002", + "\u0002\u0c43\u0c8b\u0003\u0002\u0002\u0002\u0c44\u0c45\u0007\u014c\u0002", + "\u0002\u0c45\u0c46\u0007\u016a\u0002\u0002\u0c46\u0c53\u0005\u0180\u00c1", + "\u0002\u0c47\u0c48\u0007\u0157\u0002\u0002\u0c48\u0c50\u0005\u0180\u00c1", + "\u0002\u0c49\u0c4a\u0007\u0157\u0002\u0002\u0c4a\u0c4b\u0005\u0180\u00c1", + "\u0002\u0c4b\u0c4c\u0007\u015c\u0002\u0002\u0c4c\u0c4d\u0005\u0180\u00c1", + "\u0002\u0c4d\u0c4f\u0003\u0002\u0002\u0002\u0c4e\u0c49\u0003\u0002\u0002", + "\u0002\u0c4f\u0c52\u0003\u0002\u0002\u0002\u0c50\u0c4e\u0003\u0002\u0002", + "\u0002\u0c50\u0c51\u0003\u0002\u0002\u0002\u0c51\u0c54\u0003\u0002\u0002", + "\u0002\u0c52\u0c50\u0003\u0002\u0002\u0002\u0c53\u0c47\u0003\u0002\u0002", + "\u0002\u0c53\u0c54\u0003\u0002\u0002\u0002\u0c54\u0c55\u0003\u0002\u0002", + "\u0002\u0c55\u0c56\u0007\u016d\u0002\u0002\u0c56\u0c8b\u0003\u0002\u0002", + "\u0002\u0c57\u0c58\u0007\u014d\u0002\u0002\u0c58\u0c59\u0007\u016a\u0002", + "\u0002\u0c59\u0c61\u0005\u0180\u00c1\u0002\u0c5a\u0c5b\u0007\u0157\u0002", + "\u0002\u0c5b\u0c5c\u0005\u0180\u00c1\u0002\u0c5c\u0c5d\u0007\u015c\u0002", + "\u0002\u0c5d\u0c5e\u0005\u0180\u00c1\u0002\u0c5e\u0c60\u0003\u0002\u0002", + "\u0002\u0c5f\u0c5a\u0003\u0002\u0002\u0002\u0c60\u0c63\u0003\u0002\u0002", + "\u0002\u0c61\u0c5f\u0003\u0002\u0002\u0002\u0c61\u0c62\u0003\u0002\u0002", + "\u0002\u0c62\u0c64\u0003\u0002\u0002\u0002\u0c63\u0c61\u0003\u0002\u0002", + "\u0002\u0c64\u0c65\u0007\u016d\u0002\u0002\u0c65\u0c8b\u0003\u0002\u0002", + "\u0002\u0c66\u0c67\u0007\u014e\u0002\u0002\u0c67\u0c68\u0007\u016a\u0002", + "\u0002\u0c68\u0c6e\u0005\u0180\u00c1\u0002\u0c69\u0c6a\u0007\u0157\u0002", + "\u0002\u0c6a\u0c6b\u0005\u0180\u00c1\u0002\u0c6b\u0c6c\u0007\u015c\u0002", + "\u0002\u0c6c\u0c6d\u0005\u0180\u00c1\u0002\u0c6d\u0c6f\u0003\u0002\u0002", + "\u0002\u0c6e\u0c69\u0003\u0002\u0002\u0002\u0c6f\u0c70\u0003\u0002\u0002", + "\u0002\u0c70\u0c6e\u0003\u0002\u0002\u0002\u0c70\u0c71\u0003\u0002\u0002", + "\u0002\u0c71\u0c74\u0003\u0002\u0002\u0002\u0c72\u0c73\u0007\u0157\u0002", + "\u0002\u0c73\u0c75\u0005\u0180\u00c1\u0002\u0c74\u0c72\u0003\u0002\u0002", + "\u0002\u0c74\u0c75\u0003\u0002\u0002\u0002\u0c75\u0c76\u0003\u0002\u0002", + "\u0002\u0c76\u0c77\u0007\u016d\u0002\u0002\u0c77\u0c8b\u0003\u0002\u0002", + "\u0002\u0c78\u0c79\u0007\u00f5\u0002\u0002\u0c79\u0c7a\u0007\u016a\u0002", + "\u0002\u0c7a\u0c7b\u0005\u0180\u00c1\u0002\u0c7b\u0c7c\u0007\u016d\u0002", + "\u0002\u0c7c\u0c8b\u0003\u0002\u0002\u0002\u0c7d\u0c7e\u0007\u0114\u0002", + "\u0002\u0c7e\u0c7f\u0007\u016a\u0002\u0002\u0c7f\u0c80\u0005\u0180\u00c1", + "\u0002\u0c80\u0c81\u0007t\u0002\u0002\u0c81\u0c84\u0005\u0180\u00c1", + "\u0002\u0c82\u0c83\u0007p\u0002\u0002\u0c83\u0c85\u0005\u0180\u00c1", + "\u0002\u0c84\u0c82\u0003\u0002\u0002\u0002\u0c84\u0c85\u0003\u0002\u0002", + "\u0002\u0c85\u0c86\u0003\u0002\u0002\u0002\u0c86\u0c87\u0007\u016d\u0002", + "\u0002\u0c87\u0c8b\u0003\u0002\u0002\u0002\u0c88\u0c8b\u0007\u0152\u0002", + "\u0002\u0c89\u0c8b\u0007\u0154\u0002\u0002\u0c8a\u0bc2\u0003\u0002\u0002", + "\u0002\u0c8a\u0bc3\u0003\u0002\u0002\u0002\u0c8a\u0bcd\u0003\u0002\u0002", + "\u0002\u0c8a\u0bd4\u0003\u0002\u0002\u0002\u0c8a\u0bd5\u0003\u0002\u0002", + "\u0002\u0c8a\u0bda\u0003\u0002\u0002\u0002\u0c8a\u0be2\u0003\u0002\u0002", + "\u0002\u0c8a\u0be3\u0003\u0002\u0002\u0002\u0c8a\u0be5\u0003\u0002\u0002", + "\u0002\u0c8a\u0bf8\u0003\u0002\u0002\u0002\u0c8a\u0c0b\u0003\u0002\u0002", + "\u0002\u0c8a\u0c1e\u0003\u0002\u0002\u0002\u0c8a\u0c31\u0003\u0002\u0002", + "\u0002\u0c8a\u0c44\u0003\u0002\u0002\u0002\u0c8a\u0c57\u0003\u0002\u0002", + "\u0002\u0c8a\u0c66\u0003\u0002\u0002\u0002\u0c8a\u0c78\u0003\u0002\u0002", + "\u0002\u0c8a\u0c7d\u0003\u0002\u0002\u0002\u0c8a\u0c88\u0003\u0002\u0002", + "\u0002\u0c8a\u0c89\u0003\u0002\u0002\u0002\u0c8b\u019d\u0003\u0002\u0002", + "\u0002\u0c8c\u0c8d\u0005\u01b8\u00dd\u0002\u0c8d\u0c8f\u0007\u016a\u0002", + "\u0002\u0c8e\u0c90\u0005\u01a0\u00d1\u0002\u0c8f\u0c8e\u0003\u0002\u0002", + "\u0002\u0c8f\u0c90\u0003\u0002\u0002\u0002\u0c90\u0c91\u0003\u0002\u0002", + "\u0002\u0c91\u0c92\u0007\u016d\u0002\u0002\u0c92\u019f\u0003\u0002\u0002", + "\u0002\u0c93\u0c98\u0005\u01a2\u00d2\u0002\u0c94\u0c95\u0007\u0157\u0002", + "\u0002\u0c95\u0c97\u0005\u01a2\u00d2\u0002\u0c96\u0c94\u0003\u0002\u0002", + "\u0002\u0c97\u0c9a\u0003\u0002\u0002\u0002\u0c98\u0c96\u0003\u0002\u0002", + "\u0002\u0c98\u0c99\u0003\u0002\u0002\u0002\u0c99\u01a1\u0003\u0002\u0002", + "\u0002\u0c9a\u0c98\u0003\u0002\u0002\u0002\u0c9b\u0ca1\u0006\u00d2\u000e", + "\u0002\u0c9c\u0c9d\u0005\u01b8\u00dd\u0002\u0c9d\u0c9f\u0007\u015c\u0002", + "\u0002\u0c9e\u0ca0\u0007\u0162\u0002\u0002\u0c9f\u0c9e\u0003\u0002\u0002", + "\u0002\u0c9f\u0ca0\u0003\u0002\u0002\u0002\u0ca0\u0ca2\u0003\u0002\u0002", + "\u0002\u0ca1\u0c9c\u0003\u0002\u0002\u0002\u0ca1\u0ca2\u0003\u0002\u0002", + "\u0002\u0ca2\u0ca3\u0003\u0002\u0002\u0002\u0ca3\u0ca4\u0005\u0180\u00c1", + "\u0002\u0ca4\u01a3\u0003\u0002\u0002\u0002\u0ca5\u0ca8\u0005\u011a\u008e", + "\u0002\u0ca6\u0ca8\u0005\u0180\u00c1\u0002\u0ca7\u0ca5\u0003\u0002\u0002", + "\u0002\u0ca7\u0ca6\u0003\u0002\u0002\u0002\u0ca8\u01a5\u0003\u0002\u0002", + "\u0002\u0ca9\u0cac\u0005\u01b2\u00da\u0002\u0caa\u0cac\u0005\u0180\u00c1", + "\u0002\u0cab\u0ca9\u0003\u0002\u0002\u0002\u0cab\u0caa\u0003\u0002\u0002", + "\u0002\u0cac\u01a7\u0003\u0002\u0002\u0002\u0cad\u0cb1\u0007\u0080\u0002", + "\u0002\u0cae\u0cb0\u0005\u01aa\u00d6\u0002\u0caf\u0cae\u0003\u0002\u0002", + "\u0002\u0cb0\u0cb3\u0003\u0002\u0002\u0002\u0cb1\u0caf\u0003\u0002\u0002", + "\u0002\u0cb1\u0cb2\u0003\u0002\u0002\u0002\u0cb2\u01a9\u0003\u0002\u0002", + "\u0002\u0cb3\u0cb1\u0003\u0002\u0002\u0002\u0cb4\u0cb5\u0007\u0170\u0002", + "\u0002\u0cb5\u0cb6\u0005\u01b8\u00dd\u0002\u0cb6\u0cb7\u0005\u0180\u00c1", + "\u0002\u0cb7\u0cc1\u0003\u0002\u0002\u0002\u0cb8\u0cb9\u0007\u0170\u0002", + "\u0002\u0cb9\u0cba\u0005\u01b8\u00dd\u0002\u0cba\u0cbb\u0007\u0171\u0002", + "\u0002\u0cbb\u0cbc\u0007\u015c\u0002\u0002\u0cbc\u0cbd\u0005\u0180\u00c1", + "\u0002\u0cbd\u0cc1\u0003\u0002\u0002\u0002\u0cbe\u0cbf\u0007\u0170\u0002", + "\u0002\u0cbf\u0cc1\u0005\u01b8\u00dd\u0002\u0cc0\u0cb4\u0003\u0002\u0002", + "\u0002\u0cc0\u0cb8\u0003\u0002\u0002\u0002\u0cc0\u0cbe\u0003\u0002\u0002", + "\u0002\u0cc1\u01ab\u0003\u0002\u0002\u0002\u0cc2\u0cc3\u0007\u015f\u0002", + "\u0002\u0cc3\u0cc4\u0005\u01ae\u00d8\u0002\u0cc4\u0cc5\u0007\u016f\u0002", + "\u0002\u0cc5\u0cc8\u0003\u0002\u0002\u0002\u0cc6\u0cc8\u0005\u01b0\u00d9", + "\u0002\u0cc7\u0cc2\u0003\u0002\u0002\u0002\u0cc7\u0cc6\u0003\u0002\u0002", + "\u0002\u0cc8\u01ad\u0003\u0002\u0002\u0002\u0cc9\u0ccb\u000b\u0002\u0002", + "\u0002\u0cca\u0cc9\u0003\u0002\u0002\u0002\u0ccb\u0cce\u0003\u0002\u0002", + "\u0002\u0ccc\u0ccd\u0003\u0002\u0002\u0002\u0ccc\u0cca\u0003\u0002\u0002", + "\u0002\u0ccd\u01af\u0003\u0002\u0002\u0002\u0cce\u0ccc\u0003\u0002\u0002", + "\u0002\u0ccf\u0cd0\u0007\u0081\u0002\u0002\u0cd0\u0cd1\u0005\u0180\u00c1", + "\u0002\u0cd1\u01b1\u0003\u0002\u0002\u0002\u0cd2\u0ce1\u0007\u0179\u0002", + "\u0002\u0cd3\u0cd7\u0007\u0159\u0002\u0002\u0cd4\u0cd5\u0007\u015a\u0002", + "\u0002\u0cd5\u0cd7\u0007\u0159\u0002\u0002\u0cd6\u0cd3\u0003\u0002\u0002", + "\u0002\u0cd6\u0cd4\u0003\u0002\u0002\u0002\u0cd6\u0cd7\u0003\u0002\u0002", + "\u0002\u0cd7\u0cd8\u0003\u0002\u0002\u0002\u0cd8\u0cdd\u0005\u01b8\u00dd", + "\u0002\u0cd9\u0cda\u0007\u0159\u0002\u0002\u0cda\u0cdc\u0005\u01b8\u00dd", + "\u0002\u0cdb\u0cd9\u0003\u0002\u0002\u0002\u0cdc\u0cdf\u0003\u0002\u0002", + "\u0002\u0cdd\u0cdb\u0003\u0002\u0002\u0002\u0cdd\u0cde\u0003\u0002\u0002", + "\u0002\u0cde\u0ce1\u0003\u0002\u0002\u0002\u0cdf\u0cdd\u0003\u0002\u0002", + "\u0002\u0ce0\u0cd2\u0003\u0002\u0002\u0002\u0ce0\u0cd6\u0003\u0002\u0002", + "\u0002\u0ce1\u01b3\u0003\u0002\u0002\u0002\u0ce2\u0ce3\u0007A\u0002", + "\u0002\u0ce3\u0ce4\u0005\u01ba\u00de\u0002\u0ce4\u01b5\u0003\u0002\u0002", + "\u0002\u0ce5\u0ce6\u0007\u011e\u0002\u0002\u0ce6\u0ce7\u0005\u01ba\u00de", + "\u0002\u0ce7\u01b7\u0003\u0002\u0002\u0002\u0ce8\u0ceb\u0007\u0171\u0002", + "\u0002\u0ce9\u0ceb\u0005\u01c4\u00e3\u0002\u0cea\u0ce8\u0003\u0002\u0002", + "\u0002\u0cea\u0ce9\u0003\u0002\u0002\u0002\u0ceb\u0cf3\u0003\u0002\u0002", + "\u0002\u0cec\u0cef\u0007\u015a\u0002\u0002\u0ced\u0cf0\u0007\u0171\u0002", + "\u0002\u0cee\u0cf0\u0005\u01c4\u00e3\u0002\u0cef\u0ced\u0003\u0002\u0002", + "\u0002\u0cef\u0cee\u0003\u0002\u0002\u0002\u0cf0\u0cf2\u0003\u0002\u0002", + "\u0002\u0cf1\u0cec\u0003\u0002\u0002\u0002\u0cf2\u0cf5\u0003\u0002\u0002", + "\u0002\u0cf3\u0cf1\u0003\u0002\u0002\u0002\u0cf3\u0cf4\u0003\u0002\u0002", + "\u0002\u0cf4\u01b9\u0003\u0002\u0002\u0002\u0cf5\u0cf3\u0003\u0002\u0002", + "\u0002\u0cf6\u0cf9\u0007\u0172\u0002\u0002\u0cf7\u0cf9\u0007\u0173\u0002", + "\u0002\u0cf8\u0cf6\u0003\u0002\u0002\u0002\u0cf8\u0cf7\u0003\u0002\u0002", + "\u0002\u0cf9\u01bb\u0003\u0002\u0002\u0002\u0cfa\u0cfc\t0\u0002\u0002", + "\u0cfb\u0cfa\u0003\u0002\u0002\u0002\u0cfb\u0cfc\u0003\u0002\u0002\u0002", + "\u0cfc\u0cfd\u0003\u0002\u0002\u0002\u0cfd\u0cfe\u0007\u0174\u0002\u0002", + "\u0cfe\u01bd\u0003\u0002\u0002\u0002\u0cff\u0d01\t0\u0002\u0002\u0d00", + "\u0cff\u0003\u0002\u0002\u0002\u0d00\u0d01\u0003\u0002\u0002\u0002\u0d01", + "\u0d02\u0003\u0002\u0002\u0002\u0d02\u0d03\u0007\u0175\u0002\u0002\u0d03", + "\u01bf\u0003\u0002\u0002\u0002\u0d04\u0d05\t1\u0002\u0002\u0d05\u01c1", + "\u0003\u0002\u0002\u0002\u0d06\u0d07\u0007\u00c0\u0002\u0002\u0d07\u01c3", + "\u0003\u0002\u0002\u0002\u0d08\u0d09\t2\u0002\u0002\u0d09\u01c5\u0003", + "\u0002\u0002\u0002\u01a9\u01cb\u01ce\u01d2\u01d5\u01da\u01e1\u01e7\u01e9", + "\u01f2\u01f5\u01f7\u0236\u023e\u024e\u0255\u0258\u025d\u0261\u026a\u026f", + "\u0277\u027c\u0285\u0291\u0296\u0299\u02a7\u02ae\u02b7\u02c8\u02cc\u02d4", + "\u02df\u02e9\u02f1\u02f8\u02fc\u0300\u0305\u0309\u030e\u0312\u0316\u0320", + "\u0324\u0329\u032e\u0332\u033f\u0344\u034a\u0353\u0357\u035f\u0362\u0367", + "\u036c\u0373\u037a\u037d\u0384\u038a\u038f\u0395\u039a\u039d\u03a3\u03b1", + "\u03bb\u03c1\u03c6\u03cb\u03d0\u03d4\u03d9\u03dc\u03e6\u03f2\u03f9\u03fc", + "\u0408\u040d\u0412\u0415\u041c\u0428\u0435\u0437\u043c\u043f\u044e\u0454", + "\u045f\u0462\u046c\u0473\u0479\u0481\u048b\u049f\u04a5\u04a9\u04ae\u04b2", + "\u04b7\u04ba\u04bf\u04c2\u04ce\u04d5\u04da\u04df\u04e3\u04e8\u04eb\u04f5", + "\u0501\u0508\u0510\u051e\u053d\u053f\u0544\u0548\u054d\u0554\u0557\u055a", + "\u055f\u0563\u0565\u056c\u0572\u0579\u057f\u0582\u0587\u058b\u058e\u0595", + "\u059b\u059e\u05a8\u05b1\u05b8\u05bf\u05c1\u05c7\u05ca\u05d5\u05de\u05e4", + "\u05ea\u05ed\u05f2\u05f5\u05f8\u05fb\u05fe\u0604\u060e\u0619\u061c\u0623", + "\u0628\u062d\u0631\u0639\u063d\u0642\u0646\u0648\u064d\u0655\u065a\u0660", + "\u0667\u066a\u0671\u0679\u0681\u0684\u0687\u068c\u0695\u0699\u06a3\u06b6", + "\u06bd\u06bf\u06c3\u06c7\u06cf\u06da\u06e3\u06eb\u06f3\u06f7\u06ff\u0711", + "\u071f\u0726\u072a\u0731\u0733\u0737\u0740\u0748\u0751\u0761\u0767\u076b", + "\u0775\u077d\u0786\u078a\u0790\u0795\u0799\u07a3\u07a9\u07ad\u07b9\u07c0", + "\u07d0\u07d7\u07e1\u07e4\u07e8\u07ef\u07f6\u07f8\u07fc\u0800\u0805\u0808", + "\u080c\u080f\u081a\u081d\u0828\u082e\u0832\u0834\u0838\u0841\u0848\u084c", + "\u0850\u0857\u085b\u0863\u0869\u086d\u0878\u087f\u088c\u0894\u0898\u08a2", + "\u08a7\u08b4\u08bf\u08c7\u08cb\u08cf\u08d3\u08d5\u08da\u08dd\u08e0\u08e3", + "\u08e7\u08ea\u08ed\u08f0\u08f3\u08fa\u0905\u0909\u090c\u0910\u0917\u091b", + "\u0925\u092d\u0933\u0937\u093d\u0946\u0949\u094e\u0951\u095b\u0960\u0969", + "\u096e\u0972\u097b\u097f\u098d\u099a\u099f\u09a3\u09a9\u09b4\u09b6\u09bd", + "\u09c0\u09c7\u09cc\u09d2\u09d5\u09d8\u09e7\u09ee\u09f1\u09f4\u09f8\u09fd", + "\u0a03\u0a07\u0a12\u0a16\u0a19\u0a1d\u0a21\u0a25\u0a29\u0a2f\u0a35\u0a3c", + "\u0a44\u0a4a\u0a4f\u0a5a\u0a63\u0a67\u0a70\u0a74\u0a7e\u0a83\u0a99\u0a9c", + "\u0aaf\u0abf\u0ac1\u0acc\u0adb\u0ae7\u0aeb\u0af6\u0afa\u0b06\u0b0a\u0b15", + "\u0b1a\u0b1f\u0b23\u0b27\u0b2c\u0b30\u0b34\u0b4b\u0b4d\u0b5f\u0b61\u0b69", + "\u0b6e\u0b73\u0b78\u0b85\u0b8a\u0b8f\u0b94\u0b99\u0b9e\u0ba3\u0ba8\u0baa", + "\u0bb1\u0bb4\u0bbf\u0bc9\u0bd1\u0bda\u0be0\u0bf1\u0bf4\u0c04\u0c07\u0c17", + "\u0c1a\u0c2a\u0c2d\u0c3d\u0c40\u0c50\u0c53\u0c61\u0c70\u0c74\u0c84\u0c8a", + "\u0c8f\u0c98\u0c9f\u0ca1\u0ca7\u0cab\u0cb1\u0cc0\u0cc7\u0ccc\u0cd6\u0cdd", + "\u0ce0\u0cea\u0cef\u0cf3\u0cf8\u0cfb\u0d00"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -2428,92 +2428,133 @@ var decisionsToDFA = atn.decisionToState.map( function(ds, index) { return new a var sharedContextCache = new antlr4.PredictionContextCache(); -var literalNames = [ null, "'@'", "'#'", "'/'", "'%'", "'.'", "'*'", "'!'", - "';'", "'-'", "'+'" ]; +var literalNames = [ null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, "'+'", "':'", "','", + "'||'", "'/'", "'.'", "'..'", "'='", "'=='", "'#'", + "'!'", "'<>'", "'!='", "'>'", "'>='", "'<'", "'<='", + "'*'", "'%'", "'@'", "'{'", "'('", "'['", "'}'", "')'", + "']'", "';'", "'-'" ]; -var symbolicNames = [ null, null, null, null, null, null, null, null, null, - null, null, "T_GO", "T_BEGIN", "T_SEMICOLON", "T_END", - "T_EXCEPTION", "T_WHEN", "L_ID", "T_THEN", "T_NULL", - "T_SET", "T_COMMA", "T_COLON", "T_EQUAL", "T_OPEN_P", - "T_CLOSE_P", "T_ALLOCATE", "T_CURSOR", "T_FOR", "T_RESULT", - "T_PROCEDURE", "T_ASSOCIATE", "T_LOCATOR", "T_LOCATORS", - "T_WITH", "T_TRANSACTION", "T_BREAK", "T_CALL", "T_DECLARE", - "T_AS", "T_CONSTANT", "T_CONDITION", "T_IS", "T_RETURN", - "T_ONLY", "T_TO", "T_CALLER", "T_CLIENT", "T_WITHOUT", - "T_CONTINUE", "T_EXIT", "T_HANDLER", "T_SQLEXCEPTION", - "T_SQLWARNING", "T_NOT", "T_FOUND", "T_GLOBAL", "T_TEMPORARY", - "T_TABLE", "T_CREATE", "T_IF", "T_EXISTS", "T_LOCAL", - "T_MULTISET", "T_VOLATILE", "T_LIKE", "T_CONSTRAINT", - "T_PRIMARY", "T_KEY", "T_UNIQUE", "T_REFERENCES", - "T_IDENTITY", "L_INT", "T_AUTO_INCREMENT", "T_ENABLE", - "T_CLUSTERED", "T_ASC", "T_DESC", "T_FOREIGN", "T_ON", - "T_UPDATE", "T_DELETE", "T_NO", "T_ACTION", "T_RESTRICT", - "T_DEFAULT", "T_CASCADE", "T_LOG", "T_FALLBACK", "T_COMMIT", - "T_PRESERVE", "T_ROWS", "T_SEGMENT", "T_CREATION", - "T_IMMEDIATE", "T_DEFERRED", "T_PCTFREE", "T_PCTUSED", - "T_INITRANS", "T_MAXTRANS", "T_NOCOMPRESS", "T_LOGGING", - "T_NOLOGGING", "T_STORAGE", "T_TABLESPACE", "T_INDEX", - "T_IN", "T_REPLACE", "T_DISTRIBUTE", "T_BY", "T_HASH", - "T_LOGGED", "T_COMPRESS", "T_YES", "T_DEFINITION", - "T_DROP", "T_DATA", "T_STORED", "T_ROW", "T_FORMAT", - "T_DELIMITED", "T_FIELDS", "T_TERMINATED", "T_ESCAPED", - "T_COLLECTION", "T_ITEMS", "T_MAP", "T_KEYS", "T_LINES", - "T_DEFINED", "T_TEXTIMAGE_ON", "T_COMMENT", "T_CHARACTER", - "T_CHARSET", "T_ENGINE", "T_ALTER", "T_ADD2", "T_CHAR", - "T_BIGINT", "T_BINARY_DOUBLE", "T_BINARY_FLOAT", "T_BINARY_INTEGER", - "T_BIT", "T_DATE", "T_DATETIME", "T_DEC", "T_DECIMAL", - "T_DOUBLE", "T_PRECISION", "T_FLOAT", "T_INT", "T_INT2", - "T_INT4", "T_INT8", "T_INTEGER", "T_NCHAR", "T_NVARCHAR", - "T_NUMBER", "T_NUMERIC", "T_PLS_INTEGER", "T_REAL", - "T_RESULT_SET_LOCATOR", "T_VARYING", "T_SIMPLE_FLOAT", - "T_SIMPLE_DOUBLE", "T_SIMPLE_INTEGER", "T_SMALLINT", - "T_SMALLDATETIME", "T_STRING", "T_SYS_REFCURSOR", - "T_TIMESTAMP", "T_TINYINT", "T_VARCHAR", "T_VARCHAR2", - "T_XML", "T_TYPE", "T_ROWTYPE", "T_MAX", "T_BYTE", - "T_CASESPECIFIC", "T_CS", "T_DATABASE", "T_SCHEMA", - "T_LOCATION", "T_OR", "T_FUNCTION", "T_RETURNS", "T_PACKAGE", - "T_PROC", "T_BODY", "T_OUT", "T_INOUT", "T_LANGUAGE", - "T_SQL", "T_SECURITY", "T_CREATOR", "T_DEFINER", "T_INVOKER", - "T_OWNER", "T_DYNAMIC", "T_SETS", "T_EXEC", "T_EXECUTE", - "T_INTO", "T_ELSE", "T_ELSIF", "T_ELSEIF", "T_INCLUDE", - "T_INSERT", "T_OVERWRITE", "T_VALUES", "T_DIRECTORY", - "T_GET", "T_DIAGNOSTICS", "T_MESSAGE_TEXT", "T_ROW_COUNT", - "T_GRANT", "T_ROLE", "T_LEAVE", "T_OBJECT", "T_AT", - "T_OPEN", "T_FETCH", "T_FROM", "T_COLLECT", "T_STATISTICS", - "T_STATS", "T_COLUMN", "T_CLOSE", "T_CMP", "T_SUM", - "T_COPY", "T_HDFS", "T_BATCHSIZE", "T_DELIMITER", - "T_SQLINSERT", "T_IGNORE", "T_WORK", "T_PRINT", "T_QUIT", - "T_RAISE", "T_RESIGNAL", "T_SQLSTATE", "T_VALUE", - "T_ROLLBACK", "T_CURRENT", "T_CURRENT_SCHEMA", "T_ANSI_NULLS", - "T_ANSI_PADDING", "T_NOCOUNT", "T_QUOTED_IDENTIFIER", - "T_XACT_ABORT", "T_OFF", "T_QUERY_BAND", "T_NONE", - "T_SESSION", "T_SIGNAL", "T_SUMMARY", "T_TOP", "T_LIMIT", - "T_TRUNCATE", "T_USE", "T_WHILE", "T_DO", "T_LOOP", - "T_REVERSE", "T_DOT2", "T_STEP", "L_LABEL", "T_LESS", - "T_GREATER", "T_USING", "T_UNION", "T_ALL", "T_EXCEPT", - "T_INTERSECT", "T_SELECT", "T_SEL", "T_DISTINCT", - "T_TITLE", "L_S_STRING", "T_INNER", "T_JOIN", "T_LEFT", - "T_RIGHT", "T_FULL", "T_OUTER", "T_WHERE", "T_GROUP", - "T_HAVING", "T_QUALIFY", "T_ORDER", "T_RR", "T_RS", - "T_UR", "T_AND", "T_KEEP", "T_EXCLUSIVE", "T_SHARE", - "T_LOCKS", "T_MERGE", "T_MATCHED", "T_DESCRIBE", "T_BETWEEN", - "T_EQUAL2", "T_NOTEQUAL", "T_NOTEQUAL2", "T_LESSEQUAL", - "T_GREATEREQUAL", "T_RLIKE", "T_REGEXP", "T_MUL", - "T_DIV", "T_ADD", "T_SUB", "T_INTERVAL", "T_DAY", - "T_DAYS", "T_MICROSECOND", "T_MICROSECONDS", "T_SECOND", - "T_SECONDS", "T_PIPE", "T_CONCAT", "T_CASE", "T_ISOPEN", - "T_NOTFOUND", "T_AVG", "T_COUNT", "T_COUNT_BIG", "T_CUME_DIST", - "T_DENSE_RANK", "T_FIRST_VALUE", "T_LAG", "T_LAST_VALUE", - "T_LEAD", "T_MIN", "T_RANK", "T_ROW_NUMBER", "T_STDEV", - "T_VAR", "T_VARIANCE", "T_OVER", "T_PARTITION", "T_ACTIVITY_COUNT", - "T_CAST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", - "T_CURRENT_USER", "T_USER", "T_MAX_PART_STRING", "T_MIN_PART_STRING", - "T_MAX_PART_INT", "T_MIN_PART_INT", "T_MAX_PART_DATE", - "T_MIN_PART_DATE", "T_PART_COUNT", "T_PART_LOC", "T_TRIM", - "T_SUBSTRING", "T_SYSDATE", "T_HIVE", "T_HOST", "L_FILE", - "L_D_STRING", "L_DEC", "T_TRUE", "T_FALSE", "T_DIR", - "T_FILE", "T_FILES", "T_NEW", "T_PWD", "T_SESSIONS", - "T_SUBDIR" ]; +var symbolicNames = [ null, "T_ACTION", "T_ADD2", "T_ALL", "T_ALLOCATE", + "T_ALTER", "T_AND", "T_ANSI_NULLS", "T_ANSI_PADDING", + "T_AS", "T_ASC", "T_ASSOCIATE", "T_AT", "T_AUTO_INCREMENT", + "T_AVG", "T_BATCHSIZE", "T_BEGIN", "T_BETWEEN", "T_BIGINT", + "T_BINARY_DOUBLE", "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", "T_BYTE", "T_CALL", + "T_CALLER", "T_CASCADE", "T_CASE", "T_CASESPECIFIC", + "T_CAST", "T_CHAR", "T_CHARACTER", "T_CHARSET", "T_CLIENT", + "T_CLOSE", "T_CLUSTERED", "T_CMP", "T_COLLECT", "T_COLLECTION", + "T_COLUMN", "T_COMMENT", "T_CONSTANT", "T_COMMIT", + "T_COMPRESS", "T_CONCAT", "T_CONDITION", "T_CONSTRAINT", + "T_CONTINUE", "T_COPY", "T_COUNT", "T_COUNT_BIG", + "T_CREATE", "T_CREATION", "T_CREATOR", "T_CS", "T_CURRENT", + "T_CURRENT_SCHEMA", "T_CURSOR", "T_DATABASE", "T_DATA", + "T_DATE", "T_DATETIME", "T_DAY", "T_DAYS", "T_DEC", + "T_DECIMAL", "T_DECLARE", "T_DEFAULT", "T_DEFERRED", + "T_DEFINED", "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", "T_DESCRIBE", + "T_DIAGNOSTICS", "T_DIR", "T_DIRECTORY", "T_DISTINCT", + "T_DISTRIBUTE", "T_DO", "T_DOUBLE", "T_DROP", "T_DYNAMIC", + "T_ELSE", "T_ELSEIF", "T_ELSIF", "T_ENABLE", "T_END", + "T_ENGINE", "T_ESCAPED", "T_EXCEPT", "T_EXEC", "T_EXECUTE", + "T_EXCEPTION", "T_EXCLUSIVE", "T_EXISTS", "T_EXIT", + "T_FALLBACK", "T_FALSE", "T_FETCH", "T_FIELDS", "T_FILE", + "T_FILES", "T_FLOAT", "T_FOR", "T_FOREIGN", "T_FORMAT", + "T_FOUND", "T_FROM", "T_FULL", "T_FUNCTION", "T_GET", + "T_GLOBAL", "T_GO", "T_GRANT", "T_GROUP", "T_HANDLER", + "T_HASH", "T_HAVING", "T_HDFS", "T_HIVE", "T_HOST", + "T_IDENTITY", "T_IF", "T_IGNORE", "T_IMMEDIATE", "T_IN", + "T_INCLUDE", "T_INDEX", "T_INITRANS", "T_INNER", "T_INOUT", + "T_INSERT", "T_INT", "T_INT2", "T_INT4", "T_INT8", + "T_INTEGER", "T_INTERSECT", "T_INTERVAL", "T_INTO", + "T_INVOKER", "T_IS", "T_ISOPEN", "T_ITEMS", "T_JOIN", + "T_KEEP", "T_KEY", "T_KEYS", "T_LANGUAGE", "T_LEAVE", + "T_LEFT", "T_LIKE", "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", "T_LOCKS", + "T_LOG", "T_LOGGED", "T_LOGGING", "T_LOOP", "T_MAP", + "T_MATCHED", "T_MAX", "T_MAXTRANS", "T_MERGE", "T_MESSAGE_TEXT", + "T_MICROSECOND", "T_MICROSECONDS", "T_MIN", "T_MULTISET", + "T_NCHAR", "T_NEW", "T_NVARCHAR", "T_NO", "T_NOCOUNT", + "T_NOCOMPRESS", "T_NOLOGGING", "T_NONE", "T_NOT", + "T_NOTFOUND", "T_NULL", "T_NUMERIC", "T_NUMBER", "T_OBJECT", + "T_OFF", "T_ON", "T_ONLY", "T_OPEN", "T_OR", "T_ORDER", + "T_OUT", "T_OUTER", "T_OVER", "T_OVERWRITE", "T_OWNER", + "T_PACKAGE", "T_PARTITION", "T_PCTFREE", "T_PCTUSED", + "T_PLS_INTEGER", "T_PRECISION", "T_PRESERVE", "T_PRIMARY", + "T_PRINT", "T_PROC", "T_PROCEDURE", "T_QUALIFY", "T_QUERY_BAND", + "T_QUIT", "T_QUOTED_IDENTIFIER", "T_RAISE", "T_REAL", + "T_REFERENCES", "T_REGEXP", "T_REPLACE", "T_RESIGNAL", + "T_RESTRICT", "T_RESULT", "T_RESULT_SET_LOCATOR", + "T_RETURN", "T_RETURNS", "T_REVERSE", "T_RIGHT", "T_RLIKE", + "T_ROLE", "T_ROLLBACK", "T_ROW", "T_ROWS", "T_ROWTYPE", + "T_ROW_COUNT", "T_RR", "T_RS", "T_PWD", "T_TRIM", + "T_SCHEMA", "T_SECOND", "T_SECONDS", "T_SECURITY", + "T_SEGMENT", "T_SEL", "T_SELECT", "T_SET", "T_SESSION", + "T_SESSIONS", "T_SETS", "T_SHARE", "T_SIGNAL", "T_SIMPLE_DOUBLE", + "T_SIMPLE_FLOAT", "T_SIMPLE_INTEGER", "T_SMALLDATETIME", + "T_SMALLINT", "T_SQL", "T_SQLEXCEPTION", "T_SQLINSERT", + "T_SQLSTATE", "T_SQLWARNING", "T_STATS", "T_STATISTICS", + "T_STEP", "T_STORAGE", "T_STORED", "T_STRING", "T_SUBDIR", + "T_SUBSTRING", "T_SUM", "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", "T_TERMINATED", + "T_TEXTIMAGE_ON", "T_THEN", "T_TIMESTAMP", "T_TINYINT", + "T_TITLE", "T_TO", "T_TOP", "T_TRANSACTION", "T_TRUE", + "T_TRUNCATE", "T_TYPE", "T_UNION", "T_UNIQUE", "T_UPDATE", + "T_UR", "T_USE", "T_USING", "T_VALUE", "T_VALUES", + "T_VAR", "T_VARCHAR", "T_VARCHAR2", "T_VARYING", "T_VOLATILE", + "T_WHEN", "T_WHERE", "T_WHILE", "T_WITH", "T_WITHOUT", + "T_WORK", "T_XACT_ABORT", "T_XML", "T_YES", "T_ACTIVITY_COUNT", + "T_CUME_DIST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", "T_FIRST_VALUE", + "T_LAG", "T_LAST_VALUE", "T_LEAD", "T_MAX_PART_STRING", + "T_MIN_PART_STRING", "T_MAX_PART_INT", "T_MIN_PART_INT", + "T_MAX_PART_DATE", "T_MIN_PART_DATE", "T_PART_COUNT", + "T_PART_LOC", "T_RANK", "T_ROW_NUMBER", "T_STDEV", + "T_SYSDATE", "T_VARIANCE", "T_USER", "T_ADD", "T_COLON", + "T_COMMA", "T_PIPE", "T_DIV", "T_DOT", "T_DOT2", "T_EQUAL", + "T_EQUAL2", "T_SHARP", "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", "T_LESS", "T_LESSEQUAL", + "T_MUL", "T_PRECENT", "T_CALLS", "T_OPEN_B", "T_OPEN_P", + "T_OPEN_SB", "T_CLOSE_B", "T_CLOSE_P", "T_CLOSE_SB", + "T_SEMICOLON", "T_SUB", "L_ID", "L_S_STRING", "L_D_STRING", + "L_INT", "L_DEC", "L_WS", "L_M_COMMENT", "L_S_COMMENT", + "L_FILE", "L_LABEL" ]; var ruleNames = [ "program", "block", "begin_end_block", "single_block_stmt", "block_end", "proc_block", "stmt", "semicolon_stmt", @@ -2589,626 +2630,631 @@ var ruleNames = [ "program", "block", "begin_end_block", "single_block_stmt", "string", "int_number", "dec_number", "bool_literal", "null_const", "non_reserved_words" ]; -function HiveSqlParser (input) { +function HiveSql (input) { antlr4.Parser.call(this, input); this._interp = new antlr4.atn.ParserATNSimulator(this, atn, decisionsToDFA, sharedContextCache); this.ruleNames = ruleNames; this.literalNames = literalNames; this.symbolicNames = symbolicNames; + + this._input = input; + return this; } -HiveSqlParser.prototype = Object.create(antlr4.Parser.prototype); -HiveSqlParser.prototype.constructor = HiveSqlParser; +HiveSql.prototype = Object.create(antlr4.Parser.prototype); +HiveSql.prototype.constructor = HiveSql; -Object.defineProperty(HiveSqlParser.prototype, "atn", { +Object.defineProperty(HiveSql.prototype, "atn", { get : function() { return atn; } }); -HiveSqlParser.EOF = antlr4.Token.EOF; -HiveSqlParser.T__0 = 1; -HiveSqlParser.T__1 = 2; -HiveSqlParser.T__2 = 3; -HiveSqlParser.T__3 = 4; -HiveSqlParser.T__4 = 5; -HiveSqlParser.T__5 = 6; -HiveSqlParser.T__6 = 7; -HiveSqlParser.T__7 = 8; -HiveSqlParser.T__8 = 9; -HiveSqlParser.T__9 = 10; -HiveSqlParser.T_GO = 11; -HiveSqlParser.T_BEGIN = 12; -HiveSqlParser.T_SEMICOLON = 13; -HiveSqlParser.T_END = 14; -HiveSqlParser.T_EXCEPTION = 15; -HiveSqlParser.T_WHEN = 16; -HiveSqlParser.L_ID = 17; -HiveSqlParser.T_THEN = 18; -HiveSqlParser.T_NULL = 19; -HiveSqlParser.T_SET = 20; -HiveSqlParser.T_COMMA = 21; -HiveSqlParser.T_COLON = 22; -HiveSqlParser.T_EQUAL = 23; -HiveSqlParser.T_OPEN_P = 24; -HiveSqlParser.T_CLOSE_P = 25; -HiveSqlParser.T_ALLOCATE = 26; -HiveSqlParser.T_CURSOR = 27; -HiveSqlParser.T_FOR = 28; -HiveSqlParser.T_RESULT = 29; -HiveSqlParser.T_PROCEDURE = 30; -HiveSqlParser.T_ASSOCIATE = 31; -HiveSqlParser.T_LOCATOR = 32; -HiveSqlParser.T_LOCATORS = 33; -HiveSqlParser.T_WITH = 34; -HiveSqlParser.T_TRANSACTION = 35; -HiveSqlParser.T_BREAK = 36; -HiveSqlParser.T_CALL = 37; -HiveSqlParser.T_DECLARE = 38; -HiveSqlParser.T_AS = 39; -HiveSqlParser.T_CONSTANT = 40; -HiveSqlParser.T_CONDITION = 41; -HiveSqlParser.T_IS = 42; -HiveSqlParser.T_RETURN = 43; -HiveSqlParser.T_ONLY = 44; -HiveSqlParser.T_TO = 45; -HiveSqlParser.T_CALLER = 46; -HiveSqlParser.T_CLIENT = 47; -HiveSqlParser.T_WITHOUT = 48; -HiveSqlParser.T_CONTINUE = 49; -HiveSqlParser.T_EXIT = 50; -HiveSqlParser.T_HANDLER = 51; -HiveSqlParser.T_SQLEXCEPTION = 52; -HiveSqlParser.T_SQLWARNING = 53; -HiveSqlParser.T_NOT = 54; -HiveSqlParser.T_FOUND = 55; -HiveSqlParser.T_GLOBAL = 56; -HiveSqlParser.T_TEMPORARY = 57; -HiveSqlParser.T_TABLE = 58; -HiveSqlParser.T_CREATE = 59; -HiveSqlParser.T_IF = 60; -HiveSqlParser.T_EXISTS = 61; -HiveSqlParser.T_LOCAL = 62; -HiveSqlParser.T_MULTISET = 63; -HiveSqlParser.T_VOLATILE = 64; -HiveSqlParser.T_LIKE = 65; -HiveSqlParser.T_CONSTRAINT = 66; -HiveSqlParser.T_PRIMARY = 67; -HiveSqlParser.T_KEY = 68; -HiveSqlParser.T_UNIQUE = 69; -HiveSqlParser.T_REFERENCES = 70; -HiveSqlParser.T_IDENTITY = 71; -HiveSqlParser.L_INT = 72; -HiveSqlParser.T_AUTO_INCREMENT = 73; -HiveSqlParser.T_ENABLE = 74; -HiveSqlParser.T_CLUSTERED = 75; -HiveSqlParser.T_ASC = 76; -HiveSqlParser.T_DESC = 77; -HiveSqlParser.T_FOREIGN = 78; -HiveSqlParser.T_ON = 79; -HiveSqlParser.T_UPDATE = 80; -HiveSqlParser.T_DELETE = 81; -HiveSqlParser.T_NO = 82; -HiveSqlParser.T_ACTION = 83; -HiveSqlParser.T_RESTRICT = 84; -HiveSqlParser.T_DEFAULT = 85; -HiveSqlParser.T_CASCADE = 86; -HiveSqlParser.T_LOG = 87; -HiveSqlParser.T_FALLBACK = 88; -HiveSqlParser.T_COMMIT = 89; -HiveSqlParser.T_PRESERVE = 90; -HiveSqlParser.T_ROWS = 91; -HiveSqlParser.T_SEGMENT = 92; -HiveSqlParser.T_CREATION = 93; -HiveSqlParser.T_IMMEDIATE = 94; -HiveSqlParser.T_DEFERRED = 95; -HiveSqlParser.T_PCTFREE = 96; -HiveSqlParser.T_PCTUSED = 97; -HiveSqlParser.T_INITRANS = 98; -HiveSqlParser.T_MAXTRANS = 99; -HiveSqlParser.T_NOCOMPRESS = 100; -HiveSqlParser.T_LOGGING = 101; -HiveSqlParser.T_NOLOGGING = 102; -HiveSqlParser.T_STORAGE = 103; -HiveSqlParser.T_TABLESPACE = 104; -HiveSqlParser.T_INDEX = 105; -HiveSqlParser.T_IN = 106; -HiveSqlParser.T_REPLACE = 107; -HiveSqlParser.T_DISTRIBUTE = 108; -HiveSqlParser.T_BY = 109; -HiveSqlParser.T_HASH = 110; -HiveSqlParser.T_LOGGED = 111; -HiveSqlParser.T_COMPRESS = 112; -HiveSqlParser.T_YES = 113; -HiveSqlParser.T_DEFINITION = 114; -HiveSqlParser.T_DROP = 115; -HiveSqlParser.T_DATA = 116; -HiveSqlParser.T_STORED = 117; -HiveSqlParser.T_ROW = 118; -HiveSqlParser.T_FORMAT = 119; -HiveSqlParser.T_DELIMITED = 120; -HiveSqlParser.T_FIELDS = 121; -HiveSqlParser.T_TERMINATED = 122; -HiveSqlParser.T_ESCAPED = 123; -HiveSqlParser.T_COLLECTION = 124; -HiveSqlParser.T_ITEMS = 125; -HiveSqlParser.T_MAP = 126; -HiveSqlParser.T_KEYS = 127; -HiveSqlParser.T_LINES = 128; -HiveSqlParser.T_DEFINED = 129; -HiveSqlParser.T_TEXTIMAGE_ON = 130; -HiveSqlParser.T_COMMENT = 131; -HiveSqlParser.T_CHARACTER = 132; -HiveSqlParser.T_CHARSET = 133; -HiveSqlParser.T_ENGINE = 134; -HiveSqlParser.T_ALTER = 135; -HiveSqlParser.T_ADD2 = 136; -HiveSqlParser.T_CHAR = 137; -HiveSqlParser.T_BIGINT = 138; -HiveSqlParser.T_BINARY_DOUBLE = 139; -HiveSqlParser.T_BINARY_FLOAT = 140; -HiveSqlParser.T_BINARY_INTEGER = 141; -HiveSqlParser.T_BIT = 142; -HiveSqlParser.T_DATE = 143; -HiveSqlParser.T_DATETIME = 144; -HiveSqlParser.T_DEC = 145; -HiveSqlParser.T_DECIMAL = 146; -HiveSqlParser.T_DOUBLE = 147; -HiveSqlParser.T_PRECISION = 148; -HiveSqlParser.T_FLOAT = 149; -HiveSqlParser.T_INT = 150; -HiveSqlParser.T_INT2 = 151; -HiveSqlParser.T_INT4 = 152; -HiveSqlParser.T_INT8 = 153; -HiveSqlParser.T_INTEGER = 154; -HiveSqlParser.T_NCHAR = 155; -HiveSqlParser.T_NVARCHAR = 156; -HiveSqlParser.T_NUMBER = 157; -HiveSqlParser.T_NUMERIC = 158; -HiveSqlParser.T_PLS_INTEGER = 159; -HiveSqlParser.T_REAL = 160; -HiveSqlParser.T_RESULT_SET_LOCATOR = 161; -HiveSqlParser.T_VARYING = 162; -HiveSqlParser.T_SIMPLE_FLOAT = 163; -HiveSqlParser.T_SIMPLE_DOUBLE = 164; -HiveSqlParser.T_SIMPLE_INTEGER = 165; -HiveSqlParser.T_SMALLINT = 166; -HiveSqlParser.T_SMALLDATETIME = 167; -HiveSqlParser.T_STRING = 168; -HiveSqlParser.T_SYS_REFCURSOR = 169; -HiveSqlParser.T_TIMESTAMP = 170; -HiveSqlParser.T_TINYINT = 171; -HiveSqlParser.T_VARCHAR = 172; -HiveSqlParser.T_VARCHAR2 = 173; -HiveSqlParser.T_XML = 174; -HiveSqlParser.T_TYPE = 175; -HiveSqlParser.T_ROWTYPE = 176; -HiveSqlParser.T_MAX = 177; -HiveSqlParser.T_BYTE = 178; -HiveSqlParser.T_CASESPECIFIC = 179; -HiveSqlParser.T_CS = 180; -HiveSqlParser.T_DATABASE = 181; -HiveSqlParser.T_SCHEMA = 182; -HiveSqlParser.T_LOCATION = 183; -HiveSqlParser.T_OR = 184; -HiveSqlParser.T_FUNCTION = 185; -HiveSqlParser.T_RETURNS = 186; -HiveSqlParser.T_PACKAGE = 187; -HiveSqlParser.T_PROC = 188; -HiveSqlParser.T_BODY = 189; -HiveSqlParser.T_OUT = 190; -HiveSqlParser.T_INOUT = 191; -HiveSqlParser.T_LANGUAGE = 192; -HiveSqlParser.T_SQL = 193; -HiveSqlParser.T_SECURITY = 194; -HiveSqlParser.T_CREATOR = 195; -HiveSqlParser.T_DEFINER = 196; -HiveSqlParser.T_INVOKER = 197; -HiveSqlParser.T_OWNER = 198; -HiveSqlParser.T_DYNAMIC = 199; -HiveSqlParser.T_SETS = 200; -HiveSqlParser.T_EXEC = 201; -HiveSqlParser.T_EXECUTE = 202; -HiveSqlParser.T_INTO = 203; -HiveSqlParser.T_ELSE = 204; -HiveSqlParser.T_ELSIF = 205; -HiveSqlParser.T_ELSEIF = 206; -HiveSqlParser.T_INCLUDE = 207; -HiveSqlParser.T_INSERT = 208; -HiveSqlParser.T_OVERWRITE = 209; -HiveSqlParser.T_VALUES = 210; -HiveSqlParser.T_DIRECTORY = 211; -HiveSqlParser.T_GET = 212; -HiveSqlParser.T_DIAGNOSTICS = 213; -HiveSqlParser.T_MESSAGE_TEXT = 214; -HiveSqlParser.T_ROW_COUNT = 215; -HiveSqlParser.T_GRANT = 216; -HiveSqlParser.T_ROLE = 217; -HiveSqlParser.T_LEAVE = 218; -HiveSqlParser.T_OBJECT = 219; -HiveSqlParser.T_AT = 220; -HiveSqlParser.T_OPEN = 221; -HiveSqlParser.T_FETCH = 222; -HiveSqlParser.T_FROM = 223; -HiveSqlParser.T_COLLECT = 224; -HiveSqlParser.T_STATISTICS = 225; -HiveSqlParser.T_STATS = 226; -HiveSqlParser.T_COLUMN = 227; -HiveSqlParser.T_CLOSE = 228; -HiveSqlParser.T_CMP = 229; -HiveSqlParser.T_SUM = 230; -HiveSqlParser.T_COPY = 231; -HiveSqlParser.T_HDFS = 232; -HiveSqlParser.T_BATCHSIZE = 233; -HiveSqlParser.T_DELIMITER = 234; -HiveSqlParser.T_SQLINSERT = 235; -HiveSqlParser.T_IGNORE = 236; -HiveSqlParser.T_WORK = 237; -HiveSqlParser.T_PRINT = 238; -HiveSqlParser.T_QUIT = 239; -HiveSqlParser.T_RAISE = 240; -HiveSqlParser.T_RESIGNAL = 241; -HiveSqlParser.T_SQLSTATE = 242; -HiveSqlParser.T_VALUE = 243; -HiveSqlParser.T_ROLLBACK = 244; -HiveSqlParser.T_CURRENT = 245; -HiveSqlParser.T_CURRENT_SCHEMA = 246; -HiveSqlParser.T_ANSI_NULLS = 247; -HiveSqlParser.T_ANSI_PADDING = 248; -HiveSqlParser.T_NOCOUNT = 249; -HiveSqlParser.T_QUOTED_IDENTIFIER = 250; -HiveSqlParser.T_XACT_ABORT = 251; -HiveSqlParser.T_OFF = 252; -HiveSqlParser.T_QUERY_BAND = 253; -HiveSqlParser.T_NONE = 254; -HiveSqlParser.T_SESSION = 255; -HiveSqlParser.T_SIGNAL = 256; -HiveSqlParser.T_SUMMARY = 257; -HiveSqlParser.T_TOP = 258; -HiveSqlParser.T_LIMIT = 259; -HiveSqlParser.T_TRUNCATE = 260; -HiveSqlParser.T_USE = 261; -HiveSqlParser.T_WHILE = 262; -HiveSqlParser.T_DO = 263; -HiveSqlParser.T_LOOP = 264; -HiveSqlParser.T_REVERSE = 265; -HiveSqlParser.T_DOT2 = 266; -HiveSqlParser.T_STEP = 267; -HiveSqlParser.L_LABEL = 268; -HiveSqlParser.T_LESS = 269; -HiveSqlParser.T_GREATER = 270; -HiveSqlParser.T_USING = 271; -HiveSqlParser.T_UNION = 272; -HiveSqlParser.T_ALL = 273; -HiveSqlParser.T_EXCEPT = 274; -HiveSqlParser.T_INTERSECT = 275; -HiveSqlParser.T_SELECT = 276; -HiveSqlParser.T_SEL = 277; -HiveSqlParser.T_DISTINCT = 278; -HiveSqlParser.T_TITLE = 279; -HiveSqlParser.L_S_STRING = 280; -HiveSqlParser.T_INNER = 281; -HiveSqlParser.T_JOIN = 282; -HiveSqlParser.T_LEFT = 283; -HiveSqlParser.T_RIGHT = 284; -HiveSqlParser.T_FULL = 285; -HiveSqlParser.T_OUTER = 286; -HiveSqlParser.T_WHERE = 287; -HiveSqlParser.T_GROUP = 288; -HiveSqlParser.T_HAVING = 289; -HiveSqlParser.T_QUALIFY = 290; -HiveSqlParser.T_ORDER = 291; -HiveSqlParser.T_RR = 292; -HiveSqlParser.T_RS = 293; -HiveSqlParser.T_UR = 294; -HiveSqlParser.T_AND = 295; -HiveSqlParser.T_KEEP = 296; -HiveSqlParser.T_EXCLUSIVE = 297; -HiveSqlParser.T_SHARE = 298; -HiveSqlParser.T_LOCKS = 299; -HiveSqlParser.T_MERGE = 300; -HiveSqlParser.T_MATCHED = 301; -HiveSqlParser.T_DESCRIBE = 302; -HiveSqlParser.T_BETWEEN = 303; -HiveSqlParser.T_EQUAL2 = 304; -HiveSqlParser.T_NOTEQUAL = 305; -HiveSqlParser.T_NOTEQUAL2 = 306; -HiveSqlParser.T_LESSEQUAL = 307; -HiveSqlParser.T_GREATEREQUAL = 308; -HiveSqlParser.T_RLIKE = 309; -HiveSqlParser.T_REGEXP = 310; -HiveSqlParser.T_MUL = 311; -HiveSqlParser.T_DIV = 312; -HiveSqlParser.T_ADD = 313; -HiveSqlParser.T_SUB = 314; -HiveSqlParser.T_INTERVAL = 315; -HiveSqlParser.T_DAY = 316; -HiveSqlParser.T_DAYS = 317; -HiveSqlParser.T_MICROSECOND = 318; -HiveSqlParser.T_MICROSECONDS = 319; -HiveSqlParser.T_SECOND = 320; -HiveSqlParser.T_SECONDS = 321; -HiveSqlParser.T_PIPE = 322; -HiveSqlParser.T_CONCAT = 323; -HiveSqlParser.T_CASE = 324; -HiveSqlParser.T_ISOPEN = 325; -HiveSqlParser.T_NOTFOUND = 326; -HiveSqlParser.T_AVG = 327; -HiveSqlParser.T_COUNT = 328; -HiveSqlParser.T_COUNT_BIG = 329; -HiveSqlParser.T_CUME_DIST = 330; -HiveSqlParser.T_DENSE_RANK = 331; -HiveSqlParser.T_FIRST_VALUE = 332; -HiveSqlParser.T_LAG = 333; -HiveSqlParser.T_LAST_VALUE = 334; -HiveSqlParser.T_LEAD = 335; -HiveSqlParser.T_MIN = 336; -HiveSqlParser.T_RANK = 337; -HiveSqlParser.T_ROW_NUMBER = 338; -HiveSqlParser.T_STDEV = 339; -HiveSqlParser.T_VAR = 340; -HiveSqlParser.T_VARIANCE = 341; -HiveSqlParser.T_OVER = 342; -HiveSqlParser.T_PARTITION = 343; -HiveSqlParser.T_ACTIVITY_COUNT = 344; -HiveSqlParser.T_CAST = 345; -HiveSqlParser.T_CURRENT_DATE = 346; -HiveSqlParser.T_CURRENT_TIMESTAMP = 347; -HiveSqlParser.T_CURRENT_USER = 348; -HiveSqlParser.T_USER = 349; -HiveSqlParser.T_MAX_PART_STRING = 350; -HiveSqlParser.T_MIN_PART_STRING = 351; -HiveSqlParser.T_MAX_PART_INT = 352; -HiveSqlParser.T_MIN_PART_INT = 353; -HiveSqlParser.T_MAX_PART_DATE = 354; -HiveSqlParser.T_MIN_PART_DATE = 355; -HiveSqlParser.T_PART_COUNT = 356; -HiveSqlParser.T_PART_LOC = 357; -HiveSqlParser.T_TRIM = 358; -HiveSqlParser.T_SUBSTRING = 359; -HiveSqlParser.T_SYSDATE = 360; -HiveSqlParser.T_HIVE = 361; -HiveSqlParser.T_HOST = 362; -HiveSqlParser.L_FILE = 363; -HiveSqlParser.L_D_STRING = 364; -HiveSqlParser.L_DEC = 365; -HiveSqlParser.T_TRUE = 366; -HiveSqlParser.T_FALSE = 367; -HiveSqlParser.T_DIR = 368; -HiveSqlParser.T_FILE = 369; -HiveSqlParser.T_FILES = 370; -HiveSqlParser.T_NEW = 371; -HiveSqlParser.T_PWD = 372; -HiveSqlParser.T_SESSIONS = 373; -HiveSqlParser.T_SUBDIR = 374; +HiveSql.EOF = antlr4.Token.EOF; +HiveSql.T_ACTION = 1; +HiveSql.T_ADD2 = 2; +HiveSql.T_ALL = 3; +HiveSql.T_ALLOCATE = 4; +HiveSql.T_ALTER = 5; +HiveSql.T_AND = 6; +HiveSql.T_ANSI_NULLS = 7; +HiveSql.T_ANSI_PADDING = 8; +HiveSql.T_AS = 9; +HiveSql.T_ASC = 10; +HiveSql.T_ASSOCIATE = 11; +HiveSql.T_AT = 12; +HiveSql.T_AUTO_INCREMENT = 13; +HiveSql.T_AVG = 14; +HiveSql.T_BATCHSIZE = 15; +HiveSql.T_BEGIN = 16; +HiveSql.T_BETWEEN = 17; +HiveSql.T_BIGINT = 18; +HiveSql.T_BINARY_DOUBLE = 19; +HiveSql.T_BINARY_FLOAT = 20; +HiveSql.T_BINARY_INTEGER = 21; +HiveSql.T_BIT = 22; +HiveSql.T_BODY = 23; +HiveSql.T_BREAK = 24; +HiveSql.T_BY = 25; +HiveSql.T_BYTE = 26; +HiveSql.T_CALL = 27; +HiveSql.T_CALLER = 28; +HiveSql.T_CASCADE = 29; +HiveSql.T_CASE = 30; +HiveSql.T_CASESPECIFIC = 31; +HiveSql.T_CAST = 32; +HiveSql.T_CHAR = 33; +HiveSql.T_CHARACTER = 34; +HiveSql.T_CHARSET = 35; +HiveSql.T_CLIENT = 36; +HiveSql.T_CLOSE = 37; +HiveSql.T_CLUSTERED = 38; +HiveSql.T_CMP = 39; +HiveSql.T_COLLECT = 40; +HiveSql.T_COLLECTION = 41; +HiveSql.T_COLUMN = 42; +HiveSql.T_COMMENT = 43; +HiveSql.T_CONSTANT = 44; +HiveSql.T_COMMIT = 45; +HiveSql.T_COMPRESS = 46; +HiveSql.T_CONCAT = 47; +HiveSql.T_CONDITION = 48; +HiveSql.T_CONSTRAINT = 49; +HiveSql.T_CONTINUE = 50; +HiveSql.T_COPY = 51; +HiveSql.T_COUNT = 52; +HiveSql.T_COUNT_BIG = 53; +HiveSql.T_CREATE = 54; +HiveSql.T_CREATION = 55; +HiveSql.T_CREATOR = 56; +HiveSql.T_CS = 57; +HiveSql.T_CURRENT = 58; +HiveSql.T_CURRENT_SCHEMA = 59; +HiveSql.T_CURSOR = 60; +HiveSql.T_DATABASE = 61; +HiveSql.T_DATA = 62; +HiveSql.T_DATE = 63; +HiveSql.T_DATETIME = 64; +HiveSql.T_DAY = 65; +HiveSql.T_DAYS = 66; +HiveSql.T_DEC = 67; +HiveSql.T_DECIMAL = 68; +HiveSql.T_DECLARE = 69; +HiveSql.T_DEFAULT = 70; +HiveSql.T_DEFERRED = 71; +HiveSql.T_DEFINED = 72; +HiveSql.T_DEFINER = 73; +HiveSql.T_DEFINITION = 74; +HiveSql.T_DELETE = 75; +HiveSql.T_DELIMITED = 76; +HiveSql.T_DELIMITER = 77; +HiveSql.T_DESC = 78; +HiveSql.T_DESCRIBE = 79; +HiveSql.T_DIAGNOSTICS = 80; +HiveSql.T_DIR = 81; +HiveSql.T_DIRECTORY = 82; +HiveSql.T_DISTINCT = 83; +HiveSql.T_DISTRIBUTE = 84; +HiveSql.T_DO = 85; +HiveSql.T_DOUBLE = 86; +HiveSql.T_DROP = 87; +HiveSql.T_DYNAMIC = 88; +HiveSql.T_ELSE = 89; +HiveSql.T_ELSEIF = 90; +HiveSql.T_ELSIF = 91; +HiveSql.T_ENABLE = 92; +HiveSql.T_END = 93; +HiveSql.T_ENGINE = 94; +HiveSql.T_ESCAPED = 95; +HiveSql.T_EXCEPT = 96; +HiveSql.T_EXEC = 97; +HiveSql.T_EXECUTE = 98; +HiveSql.T_EXCEPTION = 99; +HiveSql.T_EXCLUSIVE = 100; +HiveSql.T_EXISTS = 101; +HiveSql.T_EXIT = 102; +HiveSql.T_FALLBACK = 103; +HiveSql.T_FALSE = 104; +HiveSql.T_FETCH = 105; +HiveSql.T_FIELDS = 106; +HiveSql.T_FILE = 107; +HiveSql.T_FILES = 108; +HiveSql.T_FLOAT = 109; +HiveSql.T_FOR = 110; +HiveSql.T_FOREIGN = 111; +HiveSql.T_FORMAT = 112; +HiveSql.T_FOUND = 113; +HiveSql.T_FROM = 114; +HiveSql.T_FULL = 115; +HiveSql.T_FUNCTION = 116; +HiveSql.T_GET = 117; +HiveSql.T_GLOBAL = 118; +HiveSql.T_GO = 119; +HiveSql.T_GRANT = 120; +HiveSql.T_GROUP = 121; +HiveSql.T_HANDLER = 122; +HiveSql.T_HASH = 123; +HiveSql.T_HAVING = 124; +HiveSql.T_HDFS = 125; +HiveSql.T_HIVE = 126; +HiveSql.T_HOST = 127; +HiveSql.T_IDENTITY = 128; +HiveSql.T_IF = 129; +HiveSql.T_IGNORE = 130; +HiveSql.T_IMMEDIATE = 131; +HiveSql.T_IN = 132; +HiveSql.T_INCLUDE = 133; +HiveSql.T_INDEX = 134; +HiveSql.T_INITRANS = 135; +HiveSql.T_INNER = 136; +HiveSql.T_INOUT = 137; +HiveSql.T_INSERT = 138; +HiveSql.T_INT = 139; +HiveSql.T_INT2 = 140; +HiveSql.T_INT4 = 141; +HiveSql.T_INT8 = 142; +HiveSql.T_INTEGER = 143; +HiveSql.T_INTERSECT = 144; +HiveSql.T_INTERVAL = 145; +HiveSql.T_INTO = 146; +HiveSql.T_INVOKER = 147; +HiveSql.T_IS = 148; +HiveSql.T_ISOPEN = 149; +HiveSql.T_ITEMS = 150; +HiveSql.T_JOIN = 151; +HiveSql.T_KEEP = 152; +HiveSql.T_KEY = 153; +HiveSql.T_KEYS = 154; +HiveSql.T_LANGUAGE = 155; +HiveSql.T_LEAVE = 156; +HiveSql.T_LEFT = 157; +HiveSql.T_LIKE = 158; +HiveSql.T_LIMIT = 159; +HiveSql.T_LINES = 160; +HiveSql.T_LOCAL = 161; +HiveSql.T_LOCATION = 162; +HiveSql.T_LOCATOR = 163; +HiveSql.T_LOCATORS = 164; +HiveSql.T_LOCKS = 165; +HiveSql.T_LOG = 166; +HiveSql.T_LOGGED = 167; +HiveSql.T_LOGGING = 168; +HiveSql.T_LOOP = 169; +HiveSql.T_MAP = 170; +HiveSql.T_MATCHED = 171; +HiveSql.T_MAX = 172; +HiveSql.T_MAXTRANS = 173; +HiveSql.T_MERGE = 174; +HiveSql.T_MESSAGE_TEXT = 175; +HiveSql.T_MICROSECOND = 176; +HiveSql.T_MICROSECONDS = 177; +HiveSql.T_MIN = 178; +HiveSql.T_MULTISET = 179; +HiveSql.T_NCHAR = 180; +HiveSql.T_NEW = 181; +HiveSql.T_NVARCHAR = 182; +HiveSql.T_NO = 183; +HiveSql.T_NOCOUNT = 184; +HiveSql.T_NOCOMPRESS = 185; +HiveSql.T_NOLOGGING = 186; +HiveSql.T_NONE = 187; +HiveSql.T_NOT = 188; +HiveSql.T_NOTFOUND = 189; +HiveSql.T_NULL = 190; +HiveSql.T_NUMERIC = 191; +HiveSql.T_NUMBER = 192; +HiveSql.T_OBJECT = 193; +HiveSql.T_OFF = 194; +HiveSql.T_ON = 195; +HiveSql.T_ONLY = 196; +HiveSql.T_OPEN = 197; +HiveSql.T_OR = 198; +HiveSql.T_ORDER = 199; +HiveSql.T_OUT = 200; +HiveSql.T_OUTER = 201; +HiveSql.T_OVER = 202; +HiveSql.T_OVERWRITE = 203; +HiveSql.T_OWNER = 204; +HiveSql.T_PACKAGE = 205; +HiveSql.T_PARTITION = 206; +HiveSql.T_PCTFREE = 207; +HiveSql.T_PCTUSED = 208; +HiveSql.T_PLS_INTEGER = 209; +HiveSql.T_PRECISION = 210; +HiveSql.T_PRESERVE = 211; +HiveSql.T_PRIMARY = 212; +HiveSql.T_PRINT = 213; +HiveSql.T_PROC = 214; +HiveSql.T_PROCEDURE = 215; +HiveSql.T_QUALIFY = 216; +HiveSql.T_QUERY_BAND = 217; +HiveSql.T_QUIT = 218; +HiveSql.T_QUOTED_IDENTIFIER = 219; +HiveSql.T_RAISE = 220; +HiveSql.T_REAL = 221; +HiveSql.T_REFERENCES = 222; +HiveSql.T_REGEXP = 223; +HiveSql.T_REPLACE = 224; +HiveSql.T_RESIGNAL = 225; +HiveSql.T_RESTRICT = 226; +HiveSql.T_RESULT = 227; +HiveSql.T_RESULT_SET_LOCATOR = 228; +HiveSql.T_RETURN = 229; +HiveSql.T_RETURNS = 230; +HiveSql.T_REVERSE = 231; +HiveSql.T_RIGHT = 232; +HiveSql.T_RLIKE = 233; +HiveSql.T_ROLE = 234; +HiveSql.T_ROLLBACK = 235; +HiveSql.T_ROW = 236; +HiveSql.T_ROWS = 237; +HiveSql.T_ROWTYPE = 238; +HiveSql.T_ROW_COUNT = 239; +HiveSql.T_RR = 240; +HiveSql.T_RS = 241; +HiveSql.T_PWD = 242; +HiveSql.T_TRIM = 243; +HiveSql.T_SCHEMA = 244; +HiveSql.T_SECOND = 245; +HiveSql.T_SECONDS = 246; +HiveSql.T_SECURITY = 247; +HiveSql.T_SEGMENT = 248; +HiveSql.T_SEL = 249; +HiveSql.T_SELECT = 250; +HiveSql.T_SET = 251; +HiveSql.T_SESSION = 252; +HiveSql.T_SESSIONS = 253; +HiveSql.T_SETS = 254; +HiveSql.T_SHARE = 255; +HiveSql.T_SIGNAL = 256; +HiveSql.T_SIMPLE_DOUBLE = 257; +HiveSql.T_SIMPLE_FLOAT = 258; +HiveSql.T_SIMPLE_INTEGER = 259; +HiveSql.T_SMALLDATETIME = 260; +HiveSql.T_SMALLINT = 261; +HiveSql.T_SQL = 262; +HiveSql.T_SQLEXCEPTION = 263; +HiveSql.T_SQLINSERT = 264; +HiveSql.T_SQLSTATE = 265; +HiveSql.T_SQLWARNING = 266; +HiveSql.T_STATS = 267; +HiveSql.T_STATISTICS = 268; +HiveSql.T_STEP = 269; +HiveSql.T_STORAGE = 270; +HiveSql.T_STORED = 271; +HiveSql.T_STRING = 272; +HiveSql.T_SUBDIR = 273; +HiveSql.T_SUBSTRING = 274; +HiveSql.T_SUM = 275; +HiveSql.T_SUMMARY = 276; +HiveSql.T_SYS_REFCURSOR = 277; +HiveSql.T_TABLE = 278; +HiveSql.T_TABLESPACE = 279; +HiveSql.T_TEMPORARY = 280; +HiveSql.T_TERMINATED = 281; +HiveSql.T_TEXTIMAGE_ON = 282; +HiveSql.T_THEN = 283; +HiveSql.T_TIMESTAMP = 284; +HiveSql.T_TINYINT = 285; +HiveSql.T_TITLE = 286; +HiveSql.T_TO = 287; +HiveSql.T_TOP = 288; +HiveSql.T_TRANSACTION = 289; +HiveSql.T_TRUE = 290; +HiveSql.T_TRUNCATE = 291; +HiveSql.T_TYPE = 292; +HiveSql.T_UNION = 293; +HiveSql.T_UNIQUE = 294; +HiveSql.T_UPDATE = 295; +HiveSql.T_UR = 296; +HiveSql.T_USE = 297; +HiveSql.T_USING = 298; +HiveSql.T_VALUE = 299; +HiveSql.T_VALUES = 300; +HiveSql.T_VAR = 301; +HiveSql.T_VARCHAR = 302; +HiveSql.T_VARCHAR2 = 303; +HiveSql.T_VARYING = 304; +HiveSql.T_VOLATILE = 305; +HiveSql.T_WHEN = 306; +HiveSql.T_WHERE = 307; +HiveSql.T_WHILE = 308; +HiveSql.T_WITH = 309; +HiveSql.T_WITHOUT = 310; +HiveSql.T_WORK = 311; +HiveSql.T_XACT_ABORT = 312; +HiveSql.T_XML = 313; +HiveSql.T_YES = 314; +HiveSql.T_ACTIVITY_COUNT = 315; +HiveSql.T_CUME_DIST = 316; +HiveSql.T_CURRENT_DATE = 317; +HiveSql.T_CURRENT_TIMESTAMP = 318; +HiveSql.T_CURRENT_USER = 319; +HiveSql.T_DENSE_RANK = 320; +HiveSql.T_FIRST_VALUE = 321; +HiveSql.T_LAG = 322; +HiveSql.T_LAST_VALUE = 323; +HiveSql.T_LEAD = 324; +HiveSql.T_MAX_PART_STRING = 325; +HiveSql.T_MIN_PART_STRING = 326; +HiveSql.T_MAX_PART_INT = 327; +HiveSql.T_MIN_PART_INT = 328; +HiveSql.T_MAX_PART_DATE = 329; +HiveSql.T_MIN_PART_DATE = 330; +HiveSql.T_PART_COUNT = 331; +HiveSql.T_PART_LOC = 332; +HiveSql.T_RANK = 333; +HiveSql.T_ROW_NUMBER = 334; +HiveSql.T_STDEV = 335; +HiveSql.T_SYSDATE = 336; +HiveSql.T_VARIANCE = 337; +HiveSql.T_USER = 338; +HiveSql.T_ADD = 339; +HiveSql.T_COLON = 340; +HiveSql.T_COMMA = 341; +HiveSql.T_PIPE = 342; +HiveSql.T_DIV = 343; +HiveSql.T_DOT = 344; +HiveSql.T_DOT2 = 345; +HiveSql.T_EQUAL = 346; +HiveSql.T_EQUAL2 = 347; +HiveSql.T_SHARP = 348; +HiveSql.T_NOTE = 349; +HiveSql.T_NOTEQUAL = 350; +HiveSql.T_NOTEQUAL2 = 351; +HiveSql.T_GREATER = 352; +HiveSql.T_GREATEREQUAL = 353; +HiveSql.T_LESS = 354; +HiveSql.T_LESSEQUAL = 355; +HiveSql.T_MUL = 356; +HiveSql.T_PRECENT = 357; +HiveSql.T_CALLS = 358; +HiveSql.T_OPEN_B = 359; +HiveSql.T_OPEN_P = 360; +HiveSql.T_OPEN_SB = 361; +HiveSql.T_CLOSE_B = 362; +HiveSql.T_CLOSE_P = 363; +HiveSql.T_CLOSE_SB = 364; +HiveSql.T_SEMICOLON = 365; +HiveSql.T_SUB = 366; +HiveSql.L_ID = 367; +HiveSql.L_S_STRING = 368; +HiveSql.L_D_STRING = 369; +HiveSql.L_INT = 370; +HiveSql.L_DEC = 371; +HiveSql.L_WS = 372; +HiveSql.L_M_COMMENT = 373; +HiveSql.L_S_COMMENT = 374; +HiveSql.L_FILE = 375; +HiveSql.L_LABEL = 376; -HiveSqlParser.RULE_program = 0; -HiveSqlParser.RULE_block = 1; -HiveSqlParser.RULE_begin_end_block = 2; -HiveSqlParser.RULE_single_block_stmt = 3; -HiveSqlParser.RULE_block_end = 4; -HiveSqlParser.RULE_proc_block = 5; -HiveSqlParser.RULE_stmt = 6; -HiveSqlParser.RULE_semicolon_stmt = 7; -HiveSqlParser.RULE_exception_block = 8; -HiveSqlParser.RULE_exception_block_item = 9; -HiveSqlParser.RULE_null_stmt = 10; -HiveSqlParser.RULE_expr_stmt = 11; -HiveSqlParser.RULE_assignment_stmt = 12; -HiveSqlParser.RULE_assignment_stmt_item = 13; -HiveSqlParser.RULE_assignment_stmt_single_item = 14; -HiveSqlParser.RULE_assignment_stmt_multiple_item = 15; -HiveSqlParser.RULE_assignment_stmt_select_item = 16; -HiveSqlParser.RULE_allocate_cursor_stmt = 17; -HiveSqlParser.RULE_associate_locator_stmt = 18; -HiveSqlParser.RULE_begin_transaction_stmt = 19; -HiveSqlParser.RULE_break_stmt = 20; -HiveSqlParser.RULE_call_stmt = 21; -HiveSqlParser.RULE_declare_stmt = 22; -HiveSqlParser.RULE_declare_block = 23; -HiveSqlParser.RULE_declare_block_inplace = 24; -HiveSqlParser.RULE_declare_stmt_item = 25; -HiveSqlParser.RULE_declare_var_item = 26; -HiveSqlParser.RULE_declare_condition_item = 27; -HiveSqlParser.RULE_declare_cursor_item = 28; -HiveSqlParser.RULE_cursor_with_return = 29; -HiveSqlParser.RULE_cursor_without_return = 30; -HiveSqlParser.RULE_declare_handler_item = 31; -HiveSqlParser.RULE_declare_temporary_table_item = 32; -HiveSqlParser.RULE_create_table_stmt = 33; -HiveSqlParser.RULE_create_local_temp_table_stmt = 34; -HiveSqlParser.RULE_create_table_definition = 35; -HiveSqlParser.RULE_create_table_columns = 36; -HiveSqlParser.RULE_create_table_columns_item = 37; -HiveSqlParser.RULE_column_name = 38; -HiveSqlParser.RULE_create_table_column_inline_cons = 39; -HiveSqlParser.RULE_create_table_column_cons = 40; -HiveSqlParser.RULE_create_table_fk_action = 41; -HiveSqlParser.RULE_create_table_preoptions = 42; -HiveSqlParser.RULE_create_table_preoptions_item = 43; -HiveSqlParser.RULE_create_table_preoptions_td_item = 44; -HiveSqlParser.RULE_create_table_options = 45; -HiveSqlParser.RULE_create_table_options_item = 46; -HiveSqlParser.RULE_create_table_options_ora_item = 47; -HiveSqlParser.RULE_create_table_options_db2_item = 48; -HiveSqlParser.RULE_create_table_options_td_item = 49; -HiveSqlParser.RULE_create_table_options_hive_item = 50; -HiveSqlParser.RULE_create_table_hive_row_format = 51; -HiveSqlParser.RULE_create_table_hive_row_format_fields = 52; -HiveSqlParser.RULE_create_table_options_mssql_item = 53; -HiveSqlParser.RULE_create_table_options_mysql_item = 54; -HiveSqlParser.RULE_alter_table_stmt = 55; -HiveSqlParser.RULE_alter_table_item = 56; -HiveSqlParser.RULE_alter_table_add_constraint = 57; -HiveSqlParser.RULE_alter_table_add_constraint_item = 58; -HiveSqlParser.RULE_dtype = 59; -HiveSqlParser.RULE_dtype_len = 60; -HiveSqlParser.RULE_dtype_attr = 61; -HiveSqlParser.RULE_dtype_default = 62; -HiveSqlParser.RULE_create_database_stmt = 63; -HiveSqlParser.RULE_create_database_option = 64; -HiveSqlParser.RULE_create_function_stmt = 65; -HiveSqlParser.RULE_create_function_return = 66; -HiveSqlParser.RULE_create_package_stmt = 67; -HiveSqlParser.RULE_package_spec = 68; -HiveSqlParser.RULE_package_spec_item = 69; -HiveSqlParser.RULE_create_package_body_stmt = 70; -HiveSqlParser.RULE_package_body = 71; -HiveSqlParser.RULE_package_body_item = 72; -HiveSqlParser.RULE_create_procedure_stmt = 73; -HiveSqlParser.RULE_create_routine_params = 74; -HiveSqlParser.RULE_create_routine_param_item = 75; -HiveSqlParser.RULE_create_routine_options = 76; -HiveSqlParser.RULE_create_routine_option = 77; -HiveSqlParser.RULE_drop_stmt = 78; -HiveSqlParser.RULE_end_transaction_stmt = 79; -HiveSqlParser.RULE_exec_stmt = 80; -HiveSqlParser.RULE_if_stmt = 81; -HiveSqlParser.RULE_if_plsql_stmt = 82; -HiveSqlParser.RULE_if_tsql_stmt = 83; -HiveSqlParser.RULE_if_bteq_stmt = 84; -HiveSqlParser.RULE_elseif_block = 85; -HiveSqlParser.RULE_else_block = 86; -HiveSqlParser.RULE_include_stmt = 87; -HiveSqlParser.RULE_insert_stmt = 88; -HiveSqlParser.RULE_insert_stmt_cols = 89; -HiveSqlParser.RULE_insert_stmt_rows = 90; -HiveSqlParser.RULE_insert_stmt_row = 91; -HiveSqlParser.RULE_insert_directory_stmt = 92; -HiveSqlParser.RULE_exit_stmt = 93; -HiveSqlParser.RULE_get_diag_stmt = 94; -HiveSqlParser.RULE_get_diag_stmt_item = 95; -HiveSqlParser.RULE_get_diag_stmt_exception_item = 96; -HiveSqlParser.RULE_get_diag_stmt_rowcount_item = 97; -HiveSqlParser.RULE_grant_stmt = 98; -HiveSqlParser.RULE_grant_stmt_item = 99; -HiveSqlParser.RULE_leave_stmt = 100; -HiveSqlParser.RULE_map_object_stmt = 101; -HiveSqlParser.RULE_open_stmt = 102; -HiveSqlParser.RULE_fetch_stmt = 103; -HiveSqlParser.RULE_collect_stats_stmt = 104; -HiveSqlParser.RULE_collect_stats_clause = 105; -HiveSqlParser.RULE_close_stmt = 106; -HiveSqlParser.RULE_cmp_stmt = 107; -HiveSqlParser.RULE_cmp_source = 108; -HiveSqlParser.RULE_copy_from_local_stmt = 109; -HiveSqlParser.RULE_copy_stmt = 110; -HiveSqlParser.RULE_copy_source = 111; -HiveSqlParser.RULE_copy_target = 112; -HiveSqlParser.RULE_copy_option = 113; -HiveSqlParser.RULE_copy_file_option = 114; -HiveSqlParser.RULE_commit_stmt = 115; -HiveSqlParser.RULE_create_index_stmt = 116; -HiveSqlParser.RULE_create_index_col = 117; -HiveSqlParser.RULE_index_storage_clause = 118; -HiveSqlParser.RULE_index_mssql_storage_clause = 119; -HiveSqlParser.RULE_print_stmt = 120; -HiveSqlParser.RULE_quit_stmt = 121; -HiveSqlParser.RULE_raise_stmt = 122; -HiveSqlParser.RULE_resignal_stmt = 123; -HiveSqlParser.RULE_return_stmt = 124; -HiveSqlParser.RULE_rollback_stmt = 125; -HiveSqlParser.RULE_set_session_option = 126; -HiveSqlParser.RULE_set_current_schema_option = 127; -HiveSqlParser.RULE_set_mssql_session_option = 128; -HiveSqlParser.RULE_set_teradata_session_option = 129; -HiveSqlParser.RULE_signal_stmt = 130; -HiveSqlParser.RULE_summary_stmt = 131; -HiveSqlParser.RULE_truncate_stmt = 132; -HiveSqlParser.RULE_use_stmt = 133; -HiveSqlParser.RULE_values_into_stmt = 134; -HiveSqlParser.RULE_while_stmt = 135; -HiveSqlParser.RULE_for_cursor_stmt = 136; -HiveSqlParser.RULE_for_range_stmt = 137; -HiveSqlParser.RULE_label = 138; -HiveSqlParser.RULE_using_clause = 139; -HiveSqlParser.RULE_select_stmt = 140; -HiveSqlParser.RULE_cte_select_stmt = 141; -HiveSqlParser.RULE_cte_select_stmt_item = 142; -HiveSqlParser.RULE_cte_select_cols = 143; -HiveSqlParser.RULE_fullselect_stmt = 144; -HiveSqlParser.RULE_fullselect_stmt_item = 145; -HiveSqlParser.RULE_fullselect_set_clause = 146; -HiveSqlParser.RULE_subselect_stmt = 147; -HiveSqlParser.RULE_select_list = 148; -HiveSqlParser.RULE_select_list_set = 149; -HiveSqlParser.RULE_select_list_limit = 150; -HiveSqlParser.RULE_select_list_item = 151; -HiveSqlParser.RULE_select_list_alias = 152; -HiveSqlParser.RULE_select_list_asterisk = 153; -HiveSqlParser.RULE_into_clause = 154; -HiveSqlParser.RULE_from_clause = 155; -HiveSqlParser.RULE_from_table_clause = 156; -HiveSqlParser.RULE_from_table_name_clause = 157; -HiveSqlParser.RULE_from_subselect_clause = 158; -HiveSqlParser.RULE_from_join_clause = 159; -HiveSqlParser.RULE_from_join_type_clause = 160; -HiveSqlParser.RULE_from_table_values_clause = 161; -HiveSqlParser.RULE_from_table_values_row = 162; -HiveSqlParser.RULE_from_alias_clause = 163; -HiveSqlParser.RULE_table_name = 164; -HiveSqlParser.RULE_where_clause = 165; -HiveSqlParser.RULE_group_by_clause = 166; -HiveSqlParser.RULE_having_clause = 167; -HiveSqlParser.RULE_qualify_clause = 168; -HiveSqlParser.RULE_order_by_clause = 169; -HiveSqlParser.RULE_select_options = 170; -HiveSqlParser.RULE_select_options_item = 171; -HiveSqlParser.RULE_update_stmt = 172; -HiveSqlParser.RULE_update_assignment = 173; -HiveSqlParser.RULE_update_table = 174; -HiveSqlParser.RULE_update_upsert = 175; -HiveSqlParser.RULE_merge_stmt = 176; -HiveSqlParser.RULE_merge_table = 177; -HiveSqlParser.RULE_merge_condition = 178; -HiveSqlParser.RULE_merge_action = 179; -HiveSqlParser.RULE_delete_stmt = 180; -HiveSqlParser.RULE_delete_alias = 181; -HiveSqlParser.RULE_describe_stmt = 182; -HiveSqlParser.RULE_bool_expr = 183; -HiveSqlParser.RULE_bool_expr_atom = 184; -HiveSqlParser.RULE_bool_expr_unary = 185; -HiveSqlParser.RULE_bool_expr_single_in = 186; -HiveSqlParser.RULE_bool_expr_multi_in = 187; -HiveSqlParser.RULE_bool_expr_binary = 188; -HiveSqlParser.RULE_bool_expr_logical_operator = 189; -HiveSqlParser.RULE_bool_expr_binary_operator = 190; -HiveSqlParser.RULE_expr = 191; -HiveSqlParser.RULE_expr_atom = 192; -HiveSqlParser.RULE_expr_interval = 193; -HiveSqlParser.RULE_interval_item = 194; -HiveSqlParser.RULE_expr_concat = 195; -HiveSqlParser.RULE_expr_concat_item = 196; -HiveSqlParser.RULE_expr_case = 197; -HiveSqlParser.RULE_expr_case_simple = 198; -HiveSqlParser.RULE_expr_case_searched = 199; -HiveSqlParser.RULE_expr_cursor_attribute = 200; -HiveSqlParser.RULE_expr_agg_window_func = 201; -HiveSqlParser.RULE_expr_func_all_distinct = 202; -HiveSqlParser.RULE_expr_func_over_clause = 203; -HiveSqlParser.RULE_expr_func_partition_by_clause = 204; -HiveSqlParser.RULE_expr_spec_func = 205; -HiveSqlParser.RULE_expr_func = 206; -HiveSqlParser.RULE_expr_func_params = 207; -HiveSqlParser.RULE_func_param = 208; -HiveSqlParser.RULE_expr_select = 209; -HiveSqlParser.RULE_expr_file = 210; -HiveSqlParser.RULE_hive = 211; -HiveSqlParser.RULE_hive_item = 212; -HiveSqlParser.RULE_host = 213; -HiveSqlParser.RULE_host_cmd = 214; -HiveSqlParser.RULE_host_stmt = 215; -HiveSqlParser.RULE_file_name = 216; -HiveSqlParser.RULE_date_literal = 217; -HiveSqlParser.RULE_timestamp_literal = 218; -HiveSqlParser.RULE_ident = 219; -HiveSqlParser.RULE_string = 220; -HiveSqlParser.RULE_int_number = 221; -HiveSqlParser.RULE_dec_number = 222; -HiveSqlParser.RULE_bool_literal = 223; -HiveSqlParser.RULE_null_const = 224; -HiveSqlParser.RULE_non_reserved_words = 225; +HiveSql.RULE_program = 0; +HiveSql.RULE_block = 1; +HiveSql.RULE_begin_end_block = 2; +HiveSql.RULE_single_block_stmt = 3; +HiveSql.RULE_block_end = 4; +HiveSql.RULE_proc_block = 5; +HiveSql.RULE_stmt = 6; +HiveSql.RULE_semicolon_stmt = 7; +HiveSql.RULE_exception_block = 8; +HiveSql.RULE_exception_block_item = 9; +HiveSql.RULE_null_stmt = 10; +HiveSql.RULE_expr_stmt = 11; +HiveSql.RULE_assignment_stmt = 12; +HiveSql.RULE_assignment_stmt_item = 13; +HiveSql.RULE_assignment_stmt_single_item = 14; +HiveSql.RULE_assignment_stmt_multiple_item = 15; +HiveSql.RULE_assignment_stmt_select_item = 16; +HiveSql.RULE_allocate_cursor_stmt = 17; +HiveSql.RULE_associate_locator_stmt = 18; +HiveSql.RULE_begin_transaction_stmt = 19; +HiveSql.RULE_break_stmt = 20; +HiveSql.RULE_call_stmt = 21; +HiveSql.RULE_declare_stmt = 22; +HiveSql.RULE_declare_block = 23; +HiveSql.RULE_declare_block_inplace = 24; +HiveSql.RULE_declare_stmt_item = 25; +HiveSql.RULE_declare_var_item = 26; +HiveSql.RULE_declare_condition_item = 27; +HiveSql.RULE_declare_cursor_item = 28; +HiveSql.RULE_cursor_with_return = 29; +HiveSql.RULE_cursor_without_return = 30; +HiveSql.RULE_declare_handler_item = 31; +HiveSql.RULE_declare_temporary_table_item = 32; +HiveSql.RULE_create_table_stmt = 33; +HiveSql.RULE_create_local_temp_table_stmt = 34; +HiveSql.RULE_create_table_definition = 35; +HiveSql.RULE_create_table_columns = 36; +HiveSql.RULE_create_table_columns_item = 37; +HiveSql.RULE_column_name = 38; +HiveSql.RULE_create_table_column_inline_cons = 39; +HiveSql.RULE_create_table_column_cons = 40; +HiveSql.RULE_create_table_fk_action = 41; +HiveSql.RULE_create_table_preoptions = 42; +HiveSql.RULE_create_table_preoptions_item = 43; +HiveSql.RULE_create_table_preoptions_td_item = 44; +HiveSql.RULE_create_table_options = 45; +HiveSql.RULE_create_table_options_item = 46; +HiveSql.RULE_create_table_options_ora_item = 47; +HiveSql.RULE_create_table_options_db2_item = 48; +HiveSql.RULE_create_table_options_td_item = 49; +HiveSql.RULE_create_table_options_hive_item = 50; +HiveSql.RULE_create_table_hive_row_format = 51; +HiveSql.RULE_create_table_hive_row_format_fields = 52; +HiveSql.RULE_create_table_options_mssql_item = 53; +HiveSql.RULE_create_table_options_mysql_item = 54; +HiveSql.RULE_alter_table_stmt = 55; +HiveSql.RULE_alter_table_item = 56; +HiveSql.RULE_alter_table_add_constraint = 57; +HiveSql.RULE_alter_table_add_constraint_item = 58; +HiveSql.RULE_dtype = 59; +HiveSql.RULE_dtype_len = 60; +HiveSql.RULE_dtype_attr = 61; +HiveSql.RULE_dtype_default = 62; +HiveSql.RULE_create_database_stmt = 63; +HiveSql.RULE_create_database_option = 64; +HiveSql.RULE_create_function_stmt = 65; +HiveSql.RULE_create_function_return = 66; +HiveSql.RULE_create_package_stmt = 67; +HiveSql.RULE_package_spec = 68; +HiveSql.RULE_package_spec_item = 69; +HiveSql.RULE_create_package_body_stmt = 70; +HiveSql.RULE_package_body = 71; +HiveSql.RULE_package_body_item = 72; +HiveSql.RULE_create_procedure_stmt = 73; +HiveSql.RULE_create_routine_params = 74; +HiveSql.RULE_create_routine_param_item = 75; +HiveSql.RULE_create_routine_options = 76; +HiveSql.RULE_create_routine_option = 77; +HiveSql.RULE_drop_stmt = 78; +HiveSql.RULE_end_transaction_stmt = 79; +HiveSql.RULE_exec_stmt = 80; +HiveSql.RULE_if_stmt = 81; +HiveSql.RULE_if_plsql_stmt = 82; +HiveSql.RULE_if_tsql_stmt = 83; +HiveSql.RULE_if_bteq_stmt = 84; +HiveSql.RULE_elseif_block = 85; +HiveSql.RULE_else_block = 86; +HiveSql.RULE_include_stmt = 87; +HiveSql.RULE_insert_stmt = 88; +HiveSql.RULE_insert_stmt_cols = 89; +HiveSql.RULE_insert_stmt_rows = 90; +HiveSql.RULE_insert_stmt_row = 91; +HiveSql.RULE_insert_directory_stmt = 92; +HiveSql.RULE_exit_stmt = 93; +HiveSql.RULE_get_diag_stmt = 94; +HiveSql.RULE_get_diag_stmt_item = 95; +HiveSql.RULE_get_diag_stmt_exception_item = 96; +HiveSql.RULE_get_diag_stmt_rowcount_item = 97; +HiveSql.RULE_grant_stmt = 98; +HiveSql.RULE_grant_stmt_item = 99; +HiveSql.RULE_leave_stmt = 100; +HiveSql.RULE_map_object_stmt = 101; +HiveSql.RULE_open_stmt = 102; +HiveSql.RULE_fetch_stmt = 103; +HiveSql.RULE_collect_stats_stmt = 104; +HiveSql.RULE_collect_stats_clause = 105; +HiveSql.RULE_close_stmt = 106; +HiveSql.RULE_cmp_stmt = 107; +HiveSql.RULE_cmp_source = 108; +HiveSql.RULE_copy_from_local_stmt = 109; +HiveSql.RULE_copy_stmt = 110; +HiveSql.RULE_copy_source = 111; +HiveSql.RULE_copy_target = 112; +HiveSql.RULE_copy_option = 113; +HiveSql.RULE_copy_file_option = 114; +HiveSql.RULE_commit_stmt = 115; +HiveSql.RULE_create_index_stmt = 116; +HiveSql.RULE_create_index_col = 117; +HiveSql.RULE_index_storage_clause = 118; +HiveSql.RULE_index_mssql_storage_clause = 119; +HiveSql.RULE_print_stmt = 120; +HiveSql.RULE_quit_stmt = 121; +HiveSql.RULE_raise_stmt = 122; +HiveSql.RULE_resignal_stmt = 123; +HiveSql.RULE_return_stmt = 124; +HiveSql.RULE_rollback_stmt = 125; +HiveSql.RULE_set_session_option = 126; +HiveSql.RULE_set_current_schema_option = 127; +HiveSql.RULE_set_mssql_session_option = 128; +HiveSql.RULE_set_teradata_session_option = 129; +HiveSql.RULE_signal_stmt = 130; +HiveSql.RULE_summary_stmt = 131; +HiveSql.RULE_truncate_stmt = 132; +HiveSql.RULE_use_stmt = 133; +HiveSql.RULE_values_into_stmt = 134; +HiveSql.RULE_while_stmt = 135; +HiveSql.RULE_for_cursor_stmt = 136; +HiveSql.RULE_for_range_stmt = 137; +HiveSql.RULE_label = 138; +HiveSql.RULE_using_clause = 139; +HiveSql.RULE_select_stmt = 140; +HiveSql.RULE_cte_select_stmt = 141; +HiveSql.RULE_cte_select_stmt_item = 142; +HiveSql.RULE_cte_select_cols = 143; +HiveSql.RULE_fullselect_stmt = 144; +HiveSql.RULE_fullselect_stmt_item = 145; +HiveSql.RULE_fullselect_set_clause = 146; +HiveSql.RULE_subselect_stmt = 147; +HiveSql.RULE_select_list = 148; +HiveSql.RULE_select_list_set = 149; +HiveSql.RULE_select_list_limit = 150; +HiveSql.RULE_select_list_item = 151; +HiveSql.RULE_select_list_alias = 152; +HiveSql.RULE_select_list_asterisk = 153; +HiveSql.RULE_into_clause = 154; +HiveSql.RULE_from_clause = 155; +HiveSql.RULE_from_table_clause = 156; +HiveSql.RULE_from_table_name_clause = 157; +HiveSql.RULE_from_subselect_clause = 158; +HiveSql.RULE_from_join_clause = 159; +HiveSql.RULE_from_join_type_clause = 160; +HiveSql.RULE_from_table_values_clause = 161; +HiveSql.RULE_from_table_values_row = 162; +HiveSql.RULE_from_alias_clause = 163; +HiveSql.RULE_table_name = 164; +HiveSql.RULE_where_clause = 165; +HiveSql.RULE_group_by_clause = 166; +HiveSql.RULE_having_clause = 167; +HiveSql.RULE_qualify_clause = 168; +HiveSql.RULE_order_by_clause = 169; +HiveSql.RULE_select_options = 170; +HiveSql.RULE_select_options_item = 171; +HiveSql.RULE_update_stmt = 172; +HiveSql.RULE_update_assignment = 173; +HiveSql.RULE_update_table = 174; +HiveSql.RULE_update_upsert = 175; +HiveSql.RULE_merge_stmt = 176; +HiveSql.RULE_merge_table = 177; +HiveSql.RULE_merge_condition = 178; +HiveSql.RULE_merge_action = 179; +HiveSql.RULE_delete_stmt = 180; +HiveSql.RULE_delete_alias = 181; +HiveSql.RULE_describe_stmt = 182; +HiveSql.RULE_bool_expr = 183; +HiveSql.RULE_bool_expr_atom = 184; +HiveSql.RULE_bool_expr_unary = 185; +HiveSql.RULE_bool_expr_single_in = 186; +HiveSql.RULE_bool_expr_multi_in = 187; +HiveSql.RULE_bool_expr_binary = 188; +HiveSql.RULE_bool_expr_logical_operator = 189; +HiveSql.RULE_bool_expr_binary_operator = 190; +HiveSql.RULE_expr = 191; +HiveSql.RULE_expr_atom = 192; +HiveSql.RULE_expr_interval = 193; +HiveSql.RULE_interval_item = 194; +HiveSql.RULE_expr_concat = 195; +HiveSql.RULE_expr_concat_item = 196; +HiveSql.RULE_expr_case = 197; +HiveSql.RULE_expr_case_simple = 198; +HiveSql.RULE_expr_case_searched = 199; +HiveSql.RULE_expr_cursor_attribute = 200; +HiveSql.RULE_expr_agg_window_func = 201; +HiveSql.RULE_expr_func_all_distinct = 202; +HiveSql.RULE_expr_func_over_clause = 203; +HiveSql.RULE_expr_func_partition_by_clause = 204; +HiveSql.RULE_expr_spec_func = 205; +HiveSql.RULE_expr_func = 206; +HiveSql.RULE_expr_func_params = 207; +HiveSql.RULE_func_param = 208; +HiveSql.RULE_expr_select = 209; +HiveSql.RULE_expr_file = 210; +HiveSql.RULE_hive = 211; +HiveSql.RULE_hive_item = 212; +HiveSql.RULE_host = 213; +HiveSql.RULE_host_cmd = 214; +HiveSql.RULE_host_stmt = 215; +HiveSql.RULE_file_name = 216; +HiveSql.RULE_date_literal = 217; +HiveSql.RULE_timestamp_literal = 218; +HiveSql.RULE_ident = 219; +HiveSql.RULE_string = 220; +HiveSql.RULE_int_number = 221; +HiveSql.RULE_dec_number = 222; +HiveSql.RULE_bool_literal = 223; +HiveSql.RULE_null_const = 224; +HiveSql.RULE_non_reserved_words = 225; function ProgramContext(parser, parent, invokingState) { @@ -3220,7 +3266,7 @@ function ProgramContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_program; + this.ruleIndex = HiveSql.RULE_program; return this; } @@ -3232,7 +3278,7 @@ ProgramContext.prototype.block = function() { }; ProgramContext.prototype.EOF = function() { - return this.getToken(HiveSqlParser.EOF, 0); + return this.getToken(HiveSql.EOF, 0); }; ProgramContext.prototype.enterRule = function(listener) { @@ -3258,18 +3304,18 @@ ProgramContext.prototype.accept = function(visitor) { -HiveSqlParser.ProgramContext = ProgramContext; +HiveSql.ProgramContext = ProgramContext; -HiveSqlParser.prototype.program = function() { +HiveSql.prototype.program = function() { var localctx = new ProgramContext(this, this._ctx, this.state); - this.enterRule(localctx, 0, HiveSqlParser.RULE_program); + this.enterRule(localctx, 0, HiveSql.RULE_program); try { this.enterOuterAlt(localctx, 1); this.state = 452; this.block(); this.state = 453; - this.match(HiveSqlParser.EOF); + this.match(HiveSql.EOF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -3294,7 +3340,7 @@ function BlockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_block; + this.ruleIndex = HiveSql.RULE_block; return this; } @@ -3328,9 +3374,9 @@ BlockContext.prototype.T_GO = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_GO); + return this.getTokens(HiveSql.T_GO); } else { - return this.getToken(HiveSqlParser.T_GO, i); + return this.getToken(HiveSql.T_GO, i); } }; @@ -3358,12 +3404,12 @@ BlockContext.prototype.accept = function(visitor) { -HiveSqlParser.BlockContext = BlockContext; +HiveSql.BlockContext = BlockContext; -HiveSqlParser.prototype.block = function() { +HiveSql.prototype.block = function() { var localctx = new BlockContext(this, this._ctx, this.state); - this.enterRule(localctx, 2, HiveSqlParser.RULE_block); + this.enterRule(localctx, 2, HiveSql.RULE_block); try { this.enterOuterAlt(localctx, 1); this.state = 462; @@ -3392,7 +3438,7 @@ HiveSqlParser.prototype.block = function() { var la_ = this._interp.adaptivePredict(this._input,1,this._ctx); if(la_===1) { this.state = 459; - this.match(HiveSqlParser.T_GO); + this.match(HiveSql.T_GO); } break; @@ -3427,7 +3473,7 @@ function Begin_end_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_begin_end_block; + this.ruleIndex = HiveSql.RULE_begin_end_block; return this; } @@ -3435,7 +3481,7 @@ Begin_end_blockContext.prototype = Object.create(antlr4.ParserRuleContext.protot Begin_end_blockContext.prototype.constructor = Begin_end_blockContext; Begin_end_blockContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Begin_end_blockContext.prototype.block = function() { @@ -3477,25 +3523,25 @@ Begin_end_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Begin_end_blockContext = Begin_end_blockContext; +HiveSql.Begin_end_blockContext = Begin_end_blockContext; -HiveSqlParser.prototype.begin_end_block = function() { +HiveSql.prototype.begin_end_block = function() { var localctx = new Begin_end_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 4, HiveSqlParser.RULE_begin_end_block); + this.enterRule(localctx, 4, HiveSql.RULE_begin_end_block); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 467; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DECLARE) { + if(_la===HiveSql.T_DECLARE) { this.state = 466; this.declare_block(); } this.state = 469; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 470; this.block(); this.state = 472; @@ -3532,7 +3578,7 @@ function Single_block_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_single_block_stmt; + this.ruleIndex = HiveSql.RULE_single_block_stmt; return this; } @@ -3540,7 +3586,7 @@ Single_block_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Single_block_stmtContext.prototype.constructor = Single_block_stmtContext; Single_block_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Single_block_stmtContext.prototype.block = function() { @@ -3560,7 +3606,7 @@ Single_block_stmtContext.prototype.stmt = function() { }; Single_block_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Single_block_stmtContext.prototype.enterRule = function(listener) { @@ -3586,12 +3632,12 @@ Single_block_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Single_block_stmtContext = Single_block_stmtContext; +HiveSql.Single_block_stmtContext = Single_block_stmtContext; -HiveSqlParser.prototype.single_block_stmt = function() { +HiveSql.prototype.single_block_stmt = function() { var localctx = new Single_block_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 6, HiveSqlParser.RULE_single_block_stmt); + this.enterRule(localctx, 6, HiveSql.RULE_single_block_stmt); try { this.state = 487; this._errHandler.sync(this); @@ -3600,7 +3646,7 @@ HiveSqlParser.prototype.single_block_stmt = function() { case 1: this.enterOuterAlt(localctx, 1); this.state = 476; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 477; this.block(); this.state = 479; @@ -3624,7 +3670,7 @@ HiveSqlParser.prototype.single_block_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,6,this._ctx); if(la_===1) { this.state = 484; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } break; @@ -3654,7 +3700,7 @@ function Block_endContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_block_end; + this.ruleIndex = HiveSql.RULE_block_end; return this; } @@ -3662,7 +3708,7 @@ Block_endContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Block_endContext.prototype.constructor = Block_endContext; Block_endContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Block_endContext.prototype.enterRule = function(listener) { @@ -3688,20 +3734,20 @@ Block_endContext.prototype.accept = function(visitor) { -HiveSqlParser.Block_endContext = Block_endContext; +HiveSql.Block_endContext = Block_endContext; -HiveSqlParser.prototype.block_end = function() { +HiveSql.prototype.block_end = function() { var localctx = new Block_endContext(this, this._ctx, this.state); - this.enterRule(localctx, 8, HiveSqlParser.RULE_block_end); + this.enterRule(localctx, 8, HiveSql.RULE_block_end); try { this.enterOuterAlt(localctx, 1); this.state = 489; - if (!( !this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(2).getText().equalsIgnoreCase(\"TRANSACTION\")"); + if (!( !this._input.LT(2).text.toUpperCase() === "TRANSACTION")) { + throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(2).text.toUpperCase() === \"TRANSACTION\""); } this.state = 490; - this.match(HiveSqlParser.T_END); + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -3726,7 +3772,7 @@ function Proc_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_proc_block; + this.ruleIndex = HiveSql.RULE_proc_block; return this; } @@ -3749,7 +3795,7 @@ Proc_blockContext.prototype.stmt = function(i) { }; Proc_blockContext.prototype.T_GO = function() { - return this.getToken(HiveSqlParser.T_GO, 0); + return this.getToken(HiveSql.T_GO, 0); }; Proc_blockContext.prototype.enterRule = function(listener) { @@ -3775,12 +3821,12 @@ Proc_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Proc_blockContext = Proc_blockContext; +HiveSql.Proc_blockContext = Proc_blockContext; -HiveSqlParser.prototype.proc_block = function() { +HiveSql.prototype.proc_block = function() { var localctx = new Proc_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 10, HiveSqlParser.RULE_proc_block); + this.enterRule(localctx, 10, HiveSql.RULE_proc_block); try { this.state = 501; this._errHandler.sync(this); @@ -3815,7 +3861,7 @@ HiveSqlParser.prototype.proc_block = function() { var la_ = this._interp.adaptivePredict(this._input,9,this._ctx); if(la_===1) { this.state = 498; - this.match(HiveSqlParser.T_GO); + this.match(HiveSql.T_GO); } break; @@ -3845,7 +3891,7 @@ function StmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_stmt; + this.ruleIndex = HiveSql.RULE_stmt; return this; } @@ -4119,12 +4165,12 @@ StmtContext.prototype.accept = function(visitor) { -HiveSqlParser.StmtContext = StmtContext; +HiveSql.StmtContext = StmtContext; -HiveSqlParser.prototype.stmt = function() { +HiveSql.prototype.stmt = function() { var localctx = new StmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 12, HiveSqlParser.RULE_stmt); + this.enterRule(localctx, 12, HiveSql.RULE_stmt); try { this.state = 564; this._errHandler.sync(this); @@ -4521,7 +4567,7 @@ function Semicolon_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_semicolon_stmt; + this.ruleIndex = HiveSql.RULE_semicolon_stmt; return this; } @@ -4529,7 +4575,19 @@ Semicolon_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Semicolon_stmtContext.prototype.constructor = Semicolon_stmtContext; Semicolon_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); +}; + +Semicolon_stmtContext.prototype.T_CALLS = function() { + return this.getToken(HiveSql.T_CALLS, 0); +}; + +Semicolon_stmtContext.prototype.T_SHARP = function() { + return this.getToken(HiveSql.T_SHARP, 0); +}; + +Semicolon_stmtContext.prototype.T_DIV = function() { + return this.getToken(HiveSql.T_DIV, 0); }; Semicolon_stmtContext.prototype.enterRule = function(listener) { @@ -4555,18 +4613,18 @@ Semicolon_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Semicolon_stmtContext = Semicolon_stmtContext; +HiveSql.Semicolon_stmtContext = Semicolon_stmtContext; -HiveSqlParser.prototype.semicolon_stmt = function() { +HiveSql.prototype.semicolon_stmt = function() { var localctx = new Semicolon_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 14, HiveSqlParser.RULE_semicolon_stmt); + this.enterRule(localctx, 14, HiveSql.RULE_semicolon_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 566; _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__0) | (1 << HiveSqlParser.T__1) | (1 << HiveSqlParser.T__2) | (1 << HiveSqlParser.T_SEMICOLON))) !== 0))) { + if(!(((((_la - 343)) & ~0x1f) == 0 && ((1 << (_la - 343)) & ((1 << (HiveSql.T_DIV - 343)) | (1 << (HiveSql.T_SHARP - 343)) | (1 << (HiveSql.T_CALLS - 343)) | (1 << (HiveSql.T_SEMICOLON - 343)))) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -4597,7 +4655,7 @@ function Exception_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exception_block; + this.ruleIndex = HiveSql.RULE_exception_block; return this; } @@ -4605,7 +4663,7 @@ Exception_blockContext.prototype = Object.create(antlr4.ParserRuleContext.protot Exception_blockContext.prototype.constructor = Exception_blockContext; Exception_blockContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Exception_blockContext.prototype.exception_block_item = function(i) { @@ -4642,16 +4700,16 @@ Exception_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Exception_blockContext = Exception_blockContext; +HiveSql.Exception_blockContext = Exception_blockContext; -HiveSqlParser.prototype.exception_block = function() { +HiveSql.prototype.exception_block = function() { var localctx = new Exception_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 16, HiveSqlParser.RULE_exception_block); + this.enterRule(localctx, 16, HiveSql.RULE_exception_block); try { this.enterOuterAlt(localctx, 1); this.state = 568; - this.match(HiveSqlParser.T_EXCEPTION); + this.match(HiveSql.T_EXCEPTION); this.state = 570; this._errHandler.sync(this); var _alt = 1; @@ -4692,7 +4750,7 @@ function Exception_block_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exception_block_item; + this.ruleIndex = HiveSql.RULE_exception_block_item; return this; } @@ -4704,19 +4762,19 @@ Exception_block_itemContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; Exception_block_itemContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Exception_block_itemContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Exception_block_itemContext.prototype.block = function() { @@ -4724,7 +4782,7 @@ Exception_block_itemContext.prototype.block = function() { }; Exception_block_itemContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Exception_block_itemContext.prototype.enterRule = function(listener) { @@ -4750,26 +4808,26 @@ Exception_block_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Exception_block_itemContext = Exception_block_itemContext; +HiveSql.Exception_block_itemContext = Exception_block_itemContext; -HiveSqlParser.prototype.exception_block_item = function() { +HiveSql.prototype.exception_block_item = function() { var localctx = new Exception_block_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 18, HiveSqlParser.RULE_exception_block_item); + this.enterRule(localctx, 18, HiveSql.RULE_exception_block_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 574; - this.match(HiveSqlParser.T_WHEN); + this.match(HiveSql.T_WHEN); this.state = 575; - this.match(HiveSqlParser.L_ID); + this.match(HiveSql.L_ID); this.state = 576; - this.match(HiveSqlParser.T_THEN); + this.match(HiveSql.T_THEN); this.state = 577; this.block(); this.state = 578; _la = this._input.LA(1); - if(_la<=0 || _la===HiveSqlParser.T_END || _la===HiveSqlParser.T_WHEN) { + if(_la<=0 || _la===HiveSql.T_END || _la===HiveSql.T_WHEN) { this._errHandler.recoverInline(this); } else { @@ -4800,7 +4858,7 @@ function Null_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_null_stmt; + this.ruleIndex = HiveSql.RULE_null_stmt; return this; } @@ -4808,7 +4866,7 @@ Null_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Null_stmtContext.prototype.constructor = Null_stmtContext; Null_stmtContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Null_stmtContext.prototype.enterRule = function(listener) { @@ -4834,16 +4892,16 @@ Null_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Null_stmtContext = Null_stmtContext; +HiveSql.Null_stmtContext = Null_stmtContext; -HiveSqlParser.prototype.null_stmt = function() { +HiveSql.prototype.null_stmt = function() { var localctx = new Null_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 20, HiveSqlParser.RULE_null_stmt); + this.enterRule(localctx, 20, HiveSql.RULE_null_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 580; - this.match(HiveSqlParser.T_NULL); + this.match(HiveSql.T_NULL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -4868,7 +4926,7 @@ function Expr_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_stmt; + this.ruleIndex = HiveSql.RULE_expr_stmt; return this; } @@ -4902,17 +4960,17 @@ Expr_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_stmtContext = Expr_stmtContext; +HiveSql.Expr_stmtContext = Expr_stmtContext; -HiveSqlParser.prototype.expr_stmt = function() { +HiveSql.prototype.expr_stmt = function() { var localctx = new Expr_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 22, HiveSqlParser.RULE_expr_stmt); + this.enterRule(localctx, 22, HiveSql.RULE_expr_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 582; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("GO"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"GO\")"); + if (!( this._input.LT(1).text.toUpperCase() !== "GO")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"GO\""); } this.state = 583; this.expr(0); @@ -4940,7 +4998,7 @@ function Assignment_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt; + this.ruleIndex = HiveSql.RULE_assignment_stmt; return this; } @@ -4948,7 +5006,7 @@ Assignment_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Assignment_stmtContext.prototype.constructor = Assignment_stmtContext; Assignment_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Assignment_stmtContext.prototype.set_session_option = function() { @@ -4971,9 +5029,9 @@ Assignment_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -5001,12 +5059,12 @@ Assignment_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmtContext = Assignment_stmtContext; +HiveSql.Assignment_stmtContext = Assignment_stmtContext; -HiveSqlParser.prototype.assignment_stmt = function() { +HiveSql.prototype.assignment_stmt = function() { var localctx = new Assignment_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 24, HiveSqlParser.RULE_assignment_stmt); + this.enterRule(localctx, 24, HiveSql.RULE_assignment_stmt); try { this.state = 598; this._errHandler.sync(this); @@ -5015,7 +5073,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { case 1: this.enterOuterAlt(localctx, 1); this.state = 585; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); this.state = 586; this.set_session_option(); break; @@ -5027,7 +5085,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,13,this._ctx); if(la_===1) { this.state = 587; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); } this.state = 590; @@ -5038,7 +5096,7 @@ HiveSqlParser.prototype.assignment_stmt = function() { while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 591; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 592; this.assignment_stmt_item(); } @@ -5074,7 +5132,7 @@ function Assignment_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_item; return this; } @@ -5116,12 +5174,12 @@ Assignment_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_itemContext = Assignment_stmt_itemContext; +HiveSql.Assignment_stmt_itemContext = Assignment_stmt_itemContext; -HiveSqlParser.prototype.assignment_stmt_item = function() { +HiveSql.prototype.assignment_stmt_item = function() { var localctx = new Assignment_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 26, HiveSqlParser.RULE_assignment_stmt_item); + this.enterRule(localctx, 26, HiveSql.RULE_assignment_stmt_item); try { this.state = 603; this._errHandler.sync(this); @@ -5170,7 +5228,7 @@ function Assignment_stmt_single_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_single_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_single_item; return this; } @@ -5182,7 +5240,7 @@ Assignment_stmt_single_itemContext.prototype.ident = function() { }; Assignment_stmt_single_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_single_itemContext.prototype.expr = function() { @@ -5190,15 +5248,15 @@ Assignment_stmt_single_itemContext.prototype.expr = function() { }; Assignment_stmt_single_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_single_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Assignment_stmt_single_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Assignment_stmt_single_itemContext.prototype.enterRule = function(listener) { @@ -5224,371 +5282,370 @@ Assignment_stmt_single_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_single_itemContext = Assignment_stmt_single_itemContext; +HiveSql.Assignment_stmt_single_itemContext = Assignment_stmt_single_itemContext; -HiveSqlParser.prototype.assignment_stmt_single_item = function() { +HiveSql.prototype.assignment_stmt_single_item = function() { var localctx = new Assignment_stmt_single_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 28, HiveSqlParser.RULE_assignment_stmt_single_item); + this.enterRule(localctx, 28, HiveSql.RULE_assignment_stmt_single_item); var _la = 0; // Token type try { this.state = 621; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: this.enterOuterAlt(localctx, 1); this.state = 605; this.ident(); this.state = 607; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 606; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 609; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 610; this.expr(0); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.enterOuterAlt(localctx, 2); this.state = 612; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 613; this.ident(); this.state = 614; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 616; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 615; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 618; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 619; this.expr(0); break; @@ -5619,7 +5676,7 @@ function Assignment_stmt_multiple_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_multiple_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_multiple_item; return this; } @@ -5631,9 +5688,9 @@ Assignment_stmt_multiple_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -5654,15 +5711,15 @@ Assignment_stmt_multiple_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Assignment_stmt_multiple_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_multiple_itemContext.prototype.expr = function(i) { @@ -5681,15 +5738,15 @@ Assignment_stmt_multiple_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Assignment_stmt_multiple_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_multiple_itemContext.prototype.enterRule = function(listener) { @@ -5715,25 +5772,25 @@ Assignment_stmt_multiple_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_multiple_itemContext = Assignment_stmt_multiple_itemContext; +HiveSql.Assignment_stmt_multiple_itemContext = Assignment_stmt_multiple_itemContext; -HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { +HiveSql.prototype.assignment_stmt_multiple_item = function() { var localctx = new Assignment_stmt_multiple_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 30, HiveSqlParser.RULE_assignment_stmt_multiple_item); + this.enterRule(localctx, 30, HiveSql.RULE_assignment_stmt_multiple_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 623; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 624; this.ident(); this.state = 629; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 625; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 626; this.ident(); this.state = 631; @@ -5741,27 +5798,27 @@ HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { _la = this._input.LA(1); } this.state = 632; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 634; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 633; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 636; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 637; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 638; this.expr(0); this.state = 643; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 639; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 640; this.expr(0); this.state = 645; @@ -5769,7 +5826,7 @@ HiveSqlParser.prototype.assignment_stmt_multiple_item = function() { _la = this._input.LA(1); } this.state = 646; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -5794,7 +5851,7 @@ function Assignment_stmt_select_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_assignment_stmt_select_item; + this.ruleIndex = HiveSql.RULE_assignment_stmt_select_item; return this; } @@ -5802,7 +5859,7 @@ Assignment_stmt_select_itemContext.prototype = Object.create(antlr4.ParserRuleCo Assignment_stmt_select_itemContext.prototype.constructor = Assignment_stmt_select_itemContext; Assignment_stmt_select_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Assignment_stmt_select_itemContext.prototype.T_OPEN_P = function(i) { @@ -5810,9 +5867,9 @@ Assignment_stmt_select_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -5826,9 +5883,9 @@ Assignment_stmt_select_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; @@ -5845,7 +5902,7 @@ Assignment_stmt_select_itemContext.prototype.ident = function(i) { }; Assignment_stmt_select_itemContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Assignment_stmt_select_itemContext.prototype.T_COMMA = function(i) { @@ -5853,9 +5910,9 @@ Assignment_stmt_select_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -5883,352 +5940,351 @@ Assignment_stmt_select_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Assignment_stmt_select_itemContext = Assignment_stmt_select_itemContext; +HiveSql.Assignment_stmt_select_itemContext = Assignment_stmt_select_itemContext; -HiveSqlParser.prototype.assignment_stmt_select_item = function() { +HiveSql.prototype.assignment_stmt_select_item = function() { var localctx = new Assignment_stmt_select_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 32, HiveSqlParser.RULE_assignment_stmt_select_item); + this.enterRule(localctx, 32, HiveSql.RULE_assignment_stmt_select_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 660; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: this.state = 648; this.ident(); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.state = 649; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 650; this.ident(); this.state = 655; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 651; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 652; this.ident(); this.state = 657; @@ -6236,7 +6292,7 @@ HiveSqlParser.prototype.assignment_stmt_select_item = function() { _la = this._input.LA(1); } this.state = 658; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); @@ -6244,19 +6300,19 @@ HiveSqlParser.prototype.assignment_stmt_select_item = function() { this.state = 663; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { + if(_la===HiveSql.T_COLON) { this.state = 662; - this.match(HiveSqlParser.T_COLON); + this.match(HiveSql.T_COLON); } this.state = 665; - this.match(HiveSqlParser.T_EQUAL); + this.match(HiveSql.T_EQUAL); this.state = 666; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 667; this.select_stmt(); this.state = 668; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6281,7 +6337,7 @@ function Allocate_cursor_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_allocate_cursor_stmt; + this.ruleIndex = HiveSql.RULE_allocate_cursor_stmt; return this; } @@ -6289,7 +6345,7 @@ Allocate_cursor_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Allocate_cursor_stmtContext.prototype.constructor = Allocate_cursor_stmtContext; Allocate_cursor_stmtContext.prototype.T_ALLOCATE = function() { - return this.getToken(HiveSqlParser.T_ALLOCATE, 0); + return this.getToken(HiveSql.T_ALLOCATE, 0); }; Allocate_cursor_stmtContext.prototype.ident = function(i) { @@ -6304,23 +6360,23 @@ Allocate_cursor_stmtContext.prototype.ident = function(i) { }; Allocate_cursor_stmtContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Allocate_cursor_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Allocate_cursor_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Allocate_cursor_stmtContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Allocate_cursor_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Allocate_cursor_stmtContext.prototype.enterRule = function(listener) { @@ -6346,34 +6402,34 @@ Allocate_cursor_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Allocate_cursor_stmtContext = Allocate_cursor_stmtContext; +HiveSql.Allocate_cursor_stmtContext = Allocate_cursor_stmtContext; -HiveSqlParser.prototype.allocate_cursor_stmt = function() { +HiveSql.prototype.allocate_cursor_stmt = function() { var localctx = new Allocate_cursor_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 34, HiveSqlParser.RULE_allocate_cursor_stmt); + this.enterRule(localctx, 34, HiveSql.RULE_allocate_cursor_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 670; - this.match(HiveSqlParser.T_ALLOCATE); + this.match(HiveSql.T_ALLOCATE); this.state = 671; this.ident(); this.state = 672; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); this.state = 673; - this.match(HiveSqlParser.T_FOR); + this.match(HiveSql.T_FOR); this.state = 677; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_RESULT: + case HiveSql.T_RESULT: this.state = 674; - this.match(HiveSqlParser.T_RESULT); + this.match(HiveSql.T_RESULT); this.state = 675; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); break; - case HiveSqlParser.T_PROCEDURE: + case HiveSql.T_PROCEDURE: this.state = 676; - this.match(HiveSqlParser.T_PROCEDURE); + this.match(HiveSql.T_PROCEDURE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -6404,7 +6460,7 @@ function Associate_locator_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_associate_locator_stmt; + this.ruleIndex = HiveSql.RULE_associate_locator_stmt; return this; } @@ -6412,11 +6468,11 @@ Associate_locator_stmtContext.prototype = Object.create(antlr4.ParserRuleContext Associate_locator_stmtContext.prototype.constructor = Associate_locator_stmtContext; Associate_locator_stmtContext.prototype.T_ASSOCIATE = function() { - return this.getToken(HiveSqlParser.T_ASSOCIATE, 0); + return this.getToken(HiveSql.T_ASSOCIATE, 0); }; Associate_locator_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Associate_locator_stmtContext.prototype.ident = function(i) { @@ -6431,31 +6487,31 @@ Associate_locator_stmtContext.prototype.ident = function(i) { }; Associate_locator_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Associate_locator_stmtContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Associate_locator_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Associate_locator_stmtContext.prototype.T_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_LOCATOR, 0); + return this.getToken(HiveSql.T_LOCATOR, 0); }; Associate_locator_stmtContext.prototype.T_LOCATORS = function() { - return this.getToken(HiveSqlParser.T_LOCATORS, 0); + return this.getToken(HiveSql.T_LOCATORS, 0); }; Associate_locator_stmtContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Associate_locator_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Associate_locator_stmtContext.prototype.T_COMMA = function(i) { @@ -6463,9 +6519,9 @@ Associate_locator_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -6493,30 +6549,30 @@ Associate_locator_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Associate_locator_stmtContext = Associate_locator_stmtContext; +HiveSql.Associate_locator_stmtContext = Associate_locator_stmtContext; -HiveSqlParser.prototype.associate_locator_stmt = function() { +HiveSql.prototype.associate_locator_stmt = function() { var localctx = new Associate_locator_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 36, HiveSqlParser.RULE_associate_locator_stmt); + this.enterRule(localctx, 36, HiveSql.RULE_associate_locator_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 681; - this.match(HiveSqlParser.T_ASSOCIATE); + this.match(HiveSql.T_ASSOCIATE); this.state = 684; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_RESULT) { + if(_la===HiveSql.T_RESULT) { this.state = 682; - this.match(HiveSqlParser.T_RESULT); + this.match(HiveSql.T_RESULT); this.state = 683; - this.match(HiveSqlParser.T_SET); + this.match(HiveSql.T_SET); } this.state = 686; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOCATOR || _la===HiveSqlParser.T_LOCATORS)) { + if(!(_la===HiveSql.T_LOCATOR || _la===HiveSql.T_LOCATORS)) { this._errHandler.recoverInline(this); } else { @@ -6524,15 +6580,15 @@ HiveSqlParser.prototype.associate_locator_stmt = function() { this.consume(); } this.state = 687; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 688; this.ident(); this.state = 693; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 689; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 690; this.ident(); this.state = 695; @@ -6540,11 +6596,11 @@ HiveSqlParser.prototype.associate_locator_stmt = function() { _la = this._input.LA(1); } this.state = 696; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); this.state = 697; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_WITH); this.state = 698; - this.match(HiveSqlParser.T_PROCEDURE); + this.match(HiveSql.T_PROCEDURE); this.state = 699; this.ident(); } catch (re) { @@ -6571,7 +6627,7 @@ function Begin_transaction_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_begin_transaction_stmt; + this.ruleIndex = HiveSql.RULE_begin_transaction_stmt; return this; } @@ -6579,11 +6635,11 @@ Begin_transaction_stmtContext.prototype = Object.create(antlr4.ParserRuleContext Begin_transaction_stmtContext.prototype.constructor = Begin_transaction_stmtContext; Begin_transaction_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Begin_transaction_stmtContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Begin_transaction_stmtContext.prototype.enterRule = function(listener) { @@ -6609,18 +6665,18 @@ Begin_transaction_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Begin_transaction_stmtContext = Begin_transaction_stmtContext; +HiveSql.Begin_transaction_stmtContext = Begin_transaction_stmtContext; -HiveSqlParser.prototype.begin_transaction_stmt = function() { +HiveSql.prototype.begin_transaction_stmt = function() { var localctx = new Begin_transaction_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 38, HiveSqlParser.RULE_begin_transaction_stmt); + this.enterRule(localctx, 38, HiveSql.RULE_begin_transaction_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 701; - this.match(HiveSqlParser.T_BEGIN); + this.match(HiveSql.T_BEGIN); this.state = 702; - this.match(HiveSqlParser.T_TRANSACTION); + this.match(HiveSql.T_TRANSACTION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6645,7 +6701,7 @@ function Break_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_break_stmt; + this.ruleIndex = HiveSql.RULE_break_stmt; return this; } @@ -6653,7 +6709,7 @@ Break_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Break_stmtContext.prototype.constructor = Break_stmtContext; Break_stmtContext.prototype.T_BREAK = function() { - return this.getToken(HiveSqlParser.T_BREAK, 0); + return this.getToken(HiveSql.T_BREAK, 0); }; Break_stmtContext.prototype.enterRule = function(listener) { @@ -6679,16 +6735,16 @@ Break_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Break_stmtContext = Break_stmtContext; +HiveSql.Break_stmtContext = Break_stmtContext; -HiveSqlParser.prototype.break_stmt = function() { +HiveSql.prototype.break_stmt = function() { var localctx = new Break_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 40, HiveSqlParser.RULE_break_stmt); + this.enterRule(localctx, 40, HiveSql.RULE_break_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 704; - this.match(HiveSqlParser.T_BREAK); + this.match(HiveSql.T_BREAK); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -6713,7 +6769,7 @@ function Call_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_call_stmt; + this.ruleIndex = HiveSql.RULE_call_stmt; return this; } @@ -6721,7 +6777,7 @@ Call_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Call_stmtContext.prototype.constructor = Call_stmtContext; Call_stmtContext.prototype.T_CALL = function() { - return this.getToken(HiveSqlParser.T_CALL, 0); + return this.getToken(HiveSql.T_CALL, 0); }; Call_stmtContext.prototype.ident = function() { @@ -6729,11 +6785,11 @@ Call_stmtContext.prototype.ident = function() { }; Call_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Call_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Call_stmtContext.prototype.expr_func_params = function() { @@ -6763,16 +6819,16 @@ Call_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Call_stmtContext = Call_stmtContext; +HiveSql.Call_stmtContext = Call_stmtContext; -HiveSqlParser.prototype.call_stmt = function() { +HiveSql.prototype.call_stmt = function() { var localctx = new Call_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 42, HiveSqlParser.RULE_call_stmt); + this.enterRule(localctx, 42, HiveSql.RULE_call_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 706; - this.match(HiveSqlParser.T_CALL); + this.match(HiveSql.T_CALL); this.state = 707; this.ident(); this.state = 714; @@ -6780,7 +6836,7 @@ HiveSqlParser.prototype.call_stmt = function() { var la_ = this._interp.adaptivePredict(this._input,30,this._ctx); if(la_===1) { this.state = 708; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 710; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,29,this._ctx); @@ -6790,7 +6846,7 @@ HiveSqlParser.prototype.call_stmt = function() { } this.state = 712; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); } else if(la_===2) { this.state = 713; @@ -6821,7 +6877,7 @@ function Declare_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_stmt; + this.ruleIndex = HiveSql.RULE_declare_stmt; return this; } @@ -6829,7 +6885,7 @@ Declare_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Declare_stmtContext.prototype.constructor = Declare_stmtContext; Declare_stmtContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Declare_stmtContext.prototype.declare_stmt_item = function(i) { @@ -6848,9 +6904,9 @@ Declare_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -6878,16 +6934,16 @@ Declare_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_stmtContext = Declare_stmtContext; +HiveSql.Declare_stmtContext = Declare_stmtContext; -HiveSqlParser.prototype.declare_stmt = function() { +HiveSql.prototype.declare_stmt = function() { var localctx = new Declare_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 44, HiveSqlParser.RULE_declare_stmt); + this.enterRule(localctx, 44, HiveSql.RULE_declare_stmt); try { this.enterOuterAlt(localctx, 1); this.state = 716; - this.match(HiveSqlParser.T_DECLARE); + this.match(HiveSql.T_DECLARE); this.state = 717; this.declare_stmt_item(); this.state = 722; @@ -6896,7 +6952,7 @@ HiveSqlParser.prototype.declare_stmt = function() { while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { this.state = 718; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 719; this.declare_stmt_item(); } @@ -6929,7 +6985,7 @@ function Declare_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_block; + this.ruleIndex = HiveSql.RULE_declare_block; return this; } @@ -6937,7 +6993,7 @@ Declare_blockContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Declare_blockContext.prototype.constructor = Declare_blockContext; Declare_blockContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Declare_blockContext.prototype.declare_stmt_item = function(i) { @@ -6956,9 +7012,9 @@ Declare_blockContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -6986,20 +7042,20 @@ Declare_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_blockContext = Declare_blockContext; +HiveSql.Declare_blockContext = Declare_blockContext; -HiveSqlParser.prototype.declare_block = function() { +HiveSql.prototype.declare_block = function() { var localctx = new Declare_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 46, HiveSqlParser.RULE_declare_block); + this.enterRule(localctx, 46, HiveSql.RULE_declare_block); try { this.enterOuterAlt(localctx, 1); this.state = 725; - this.match(HiveSqlParser.T_DECLARE); + this.match(HiveSql.T_DECLARE); this.state = 726; this.declare_stmt_item(); this.state = 727; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); this.state = 733; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,32,this._ctx) @@ -7008,7 +7064,7 @@ HiveSqlParser.prototype.declare_block = function() { this.state = 728; this.declare_stmt_item(); this.state = 729; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } this.state = 735; this._errHandler.sync(this); @@ -7039,7 +7095,7 @@ function Declare_block_inplaceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_block_inplace; + this.ruleIndex = HiveSql.RULE_declare_block_inplace; return this; } @@ -7062,9 +7118,9 @@ Declare_block_inplaceContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -7092,18 +7148,18 @@ Declare_block_inplaceContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_block_inplaceContext = Declare_block_inplaceContext; +HiveSql.Declare_block_inplaceContext = Declare_block_inplaceContext; -HiveSqlParser.prototype.declare_block_inplace = function() { +HiveSql.prototype.declare_block_inplace = function() { var localctx = new Declare_block_inplaceContext(this, this._ctx, this.state); - this.enterRule(localctx, 48, HiveSqlParser.RULE_declare_block_inplace); + this.enterRule(localctx, 48, HiveSql.RULE_declare_block_inplace); try { this.enterOuterAlt(localctx, 1); this.state = 736; this.declare_stmt_item(); this.state = 737; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); this.state = 743; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,33,this._ctx) @@ -7112,7 +7168,7 @@ HiveSqlParser.prototype.declare_block_inplace = function() { this.state = 738; this.declare_stmt_item(); this.state = 739; - this.match(HiveSqlParser.T_SEMICOLON); + this.match(HiveSql.T_SEMICOLON); } this.state = 745; this._errHandler.sync(this); @@ -7143,7 +7199,7 @@ function Declare_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_stmt_item; + this.ruleIndex = HiveSql.RULE_declare_stmt_item; return this; } @@ -7193,12 +7249,12 @@ Declare_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_stmt_itemContext = Declare_stmt_itemContext; +HiveSql.Declare_stmt_itemContext = Declare_stmt_itemContext; -HiveSqlParser.prototype.declare_stmt_item = function() { +HiveSql.prototype.declare_stmt_item = function() { var localctx = new Declare_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 50, HiveSqlParser.RULE_declare_stmt_item); + this.enterRule(localctx, 50, HiveSql.RULE_declare_stmt_item); try { this.state = 751; this._errHandler.sync(this); @@ -7259,7 +7315,7 @@ function Declare_var_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_var_item; + this.ruleIndex = HiveSql.RULE_declare_var_item; return this; } @@ -7286,15 +7342,15 @@ Declare_var_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Declare_var_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Declare_var_itemContext.prototype.dtype_len = function() { @@ -7317,7 +7373,7 @@ Declare_var_itemContext.prototype.dtype_default = function() { }; Declare_var_itemContext.prototype.T_CONSTANT = function() { - return this.getToken(HiveSqlParser.T_CONSTANT, 0); + return this.getToken(HiveSql.T_CONSTANT, 0); }; Declare_var_itemContext.prototype.enterRule = function(listener) { @@ -7343,12 +7399,12 @@ Declare_var_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_var_itemContext = Declare_var_itemContext; +HiveSql.Declare_var_itemContext = Declare_var_itemContext; -HiveSqlParser.prototype.declare_var_item = function() { +HiveSql.prototype.declare_var_item = function() { var localctx = new Declare_var_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 52, HiveSqlParser.RULE_declare_var_item); + this.enterRule(localctx, 52, HiveSql.RULE_declare_var_item); var _la = 0; // Token type try { this.state = 788; @@ -7362,9 +7418,9 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 758; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { this.state = 754; - this.match(HiveSqlParser.T_COMMA); + this.match(HiveSql.T_COMMA); this.state = 755; this.ident(); this.state = 760; @@ -7376,7 +7432,7 @@ HiveSqlParser.prototype.declare_var_item = function() { var la_ = this._interp.adaptivePredict(this._input,36,this._ctx); if(la_===1) { this.state = 761; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 764; @@ -7417,13 +7473,13 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 777; this.ident(); this.state = 778; - this.match(HiveSqlParser.T_CONSTANT); + this.match(HiveSql.T_CONSTANT); this.state = 780; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,40,this._ctx); if(la_===1) { this.state = 779; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 782; @@ -7431,7 +7487,7 @@ HiveSqlParser.prototype.declare_var_item = function() { this.state = 784; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { + if(_la===HiveSql.T_OPEN_P) { this.state = 783; this.dtype_len(); } @@ -7465,7 +7521,7 @@ function Declare_condition_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_condition_item; + this.ruleIndex = HiveSql.RULE_declare_condition_item; return this; } @@ -7477,7 +7533,7 @@ Declare_condition_itemContext.prototype.ident = function() { }; Declare_condition_itemContext.prototype.T_CONDITION = function() { - return this.getToken(HiveSqlParser.T_CONDITION, 0); + return this.getToken(HiveSql.T_CONDITION, 0); }; Declare_condition_itemContext.prototype.enterRule = function(listener) { @@ -7503,18 +7559,18 @@ Declare_condition_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_condition_itemContext = Declare_condition_itemContext; +HiveSql.Declare_condition_itemContext = Declare_condition_itemContext; -HiveSqlParser.prototype.declare_condition_item = function() { +HiveSql.prototype.declare_condition_item = function() { var localctx = new Declare_condition_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 54, HiveSqlParser.RULE_declare_condition_item); + this.enterRule(localctx, 54, HiveSql.RULE_declare_condition_item); try { this.enterOuterAlt(localctx, 1); this.state = 790; this.ident(); this.state = 791; - this.match(HiveSqlParser.T_CONDITION); + this.match(HiveSql.T_CONDITION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -7539,7 +7595,7 @@ function Declare_cursor_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_cursor_item; + this.ruleIndex = HiveSql.RULE_declare_cursor_item; return this; } @@ -7547,19 +7603,19 @@ Declare_cursor_itemContext.prototype = Object.create(antlr4.ParserRuleContext.pr Declare_cursor_itemContext.prototype.constructor = Declare_cursor_itemContext; Declare_cursor_itemContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Declare_cursor_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Declare_cursor_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Declare_cursor_itemContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Declare_cursor_itemContext.prototype.ident = function() { @@ -7605,12 +7661,12 @@ Declare_cursor_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_cursor_itemContext = Declare_cursor_itemContext; +HiveSql.Declare_cursor_itemContext = Declare_cursor_itemContext; -HiveSqlParser.prototype.declare_cursor_item = function() { +HiveSql.prototype.declare_cursor_item = function() { var localctx = new Declare_cursor_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 56, HiveSqlParser.RULE_declare_cursor_item); + this.enterRule(localctx, 56, HiveSql.RULE_declare_cursor_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); @@ -7620,7 +7676,7 @@ HiveSqlParser.prototype.declare_cursor_item = function() { switch(la_) { case 1: this.state = 793; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); this.state = 794; this.ident(); break; @@ -7629,31 +7685,31 @@ HiveSqlParser.prototype.declare_cursor_item = function() { this.state = 795; this.ident(); this.state = 796; - this.match(HiveSqlParser.T_CURSOR); + this.match(HiveSql.T_CURSOR); break; } this.state = 802; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.state = 800; this.cursor_with_return(); break; - case HiveSqlParser.T_WITHOUT: + case HiveSql.T_WITHOUT: this.state = 801; this.cursor_without_return(); break; - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_IS: + case HiveSql.T_AS: + case HiveSql.T_FOR: + case HiveSql.T_IS: break; default: break; } this.state = 804; _la = this._input.LA(1); - if(!(((((_la - 28)) & ~0x1f) == 0 && ((1 << (_la - 28)) & ((1 << (HiveSqlParser.T_FOR - 28)) | (1 << (HiveSqlParser.T_AS - 28)) | (1 << (HiveSqlParser.T_IS - 28)))) !== 0))) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_FOR || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -7699,7 +7755,7 @@ function Cursor_with_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cursor_with_return; + this.ruleIndex = HiveSql.RULE_cursor_with_return; return this; } @@ -7707,27 +7763,27 @@ Cursor_with_returnContext.prototype = Object.create(antlr4.ParserRuleContext.pro Cursor_with_returnContext.prototype.constructor = Cursor_with_returnContext; Cursor_with_returnContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Cursor_with_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Cursor_with_returnContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Cursor_with_returnContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Cursor_with_returnContext.prototype.T_CALLER = function() { - return this.getToken(HiveSqlParser.T_CALLER, 0); + return this.getToken(HiveSql.T_CALLER, 0); }; Cursor_with_returnContext.prototype.T_CLIENT = function() { - return this.getToken(HiveSqlParser.T_CLIENT, 0); + return this.getToken(HiveSql.T_CLIENT, 0); }; Cursor_with_returnContext.prototype.enterRule = function(listener) { @@ -7753,36 +7809,36 @@ Cursor_with_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Cursor_with_returnContext = Cursor_with_returnContext; +HiveSql.Cursor_with_returnContext = Cursor_with_returnContext; -HiveSqlParser.prototype.cursor_with_return = function() { +HiveSql.prototype.cursor_with_return = function() { var localctx = new Cursor_with_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 58, HiveSqlParser.RULE_cursor_with_return); + this.enterRule(localctx, 58, HiveSql.RULE_cursor_with_return); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 809; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_WITH); this.state = 810; - this.match(HiveSqlParser.T_RETURN); + this.match(HiveSql.T_RETURN); this.state = 812; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ONLY) { + if(_la===HiveSql.T_ONLY) { this.state = 811; - this.match(HiveSqlParser.T_ONLY); + this.match(HiveSql.T_ONLY); } this.state = 816; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_TO) { + if(_la===HiveSql.T_TO) { this.state = 814; - this.match(HiveSqlParser.T_TO); + this.match(HiveSql.T_TO); this.state = 815; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CALLER || _la===HiveSqlParser.T_CLIENT)) { + if(!(_la===HiveSql.T_CALLER || _la===HiveSql.T_CLIENT)) { this._errHandler.recoverInline(this); } else { @@ -7815,7 +7871,7 @@ function Cursor_without_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cursor_without_return; + this.ruleIndex = HiveSql.RULE_cursor_without_return; return this; } @@ -7823,11 +7879,11 @@ Cursor_without_returnContext.prototype = Object.create(antlr4.ParserRuleContext. Cursor_without_returnContext.prototype.constructor = Cursor_without_returnContext; Cursor_without_returnContext.prototype.T_WITHOUT = function() { - return this.getToken(HiveSqlParser.T_WITHOUT, 0); + return this.getToken(HiveSql.T_WITHOUT, 0); }; Cursor_without_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Cursor_without_returnContext.prototype.enterRule = function(listener) { @@ -7853,18 +7909,18 @@ Cursor_without_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Cursor_without_returnContext = Cursor_without_returnContext; +HiveSql.Cursor_without_returnContext = Cursor_without_returnContext; -HiveSqlParser.prototype.cursor_without_return = function() { +HiveSql.prototype.cursor_without_return = function() { var localctx = new Cursor_without_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 60, HiveSqlParser.RULE_cursor_without_return); + this.enterRule(localctx, 60, HiveSql.RULE_cursor_without_return); try { this.enterOuterAlt(localctx, 1); this.state = 818; - this.match(HiveSqlParser.T_WITHOUT); + this.match(HiveSql.T_WITHOUT); this.state = 819; - this.match(HiveSqlParser.T_RETURN); + this.match(HiveSql.T_RETURN); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -7889,7 +7945,7 @@ function Declare_handler_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_handler_item; + this.ruleIndex = HiveSql.RULE_declare_handler_item; return this; } @@ -7897,11 +7953,11 @@ Declare_handler_itemContext.prototype = Object.create(antlr4.ParserRuleContext.p Declare_handler_itemContext.prototype.constructor = Declare_handler_itemContext; Declare_handler_itemContext.prototype.T_HANDLER = function() { - return this.getToken(HiveSqlParser.T_HANDLER, 0); + return this.getToken(HiveSql.T_HANDLER, 0); }; Declare_handler_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Declare_handler_itemContext.prototype.single_block_stmt = function() { @@ -7909,27 +7965,27 @@ Declare_handler_itemContext.prototype.single_block_stmt = function() { }; Declare_handler_itemContext.prototype.T_CONTINUE = function() { - return this.getToken(HiveSqlParser.T_CONTINUE, 0); + return this.getToken(HiveSql.T_CONTINUE, 0); }; Declare_handler_itemContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Declare_handler_itemContext.prototype.T_SQLEXCEPTION = function() { - return this.getToken(HiveSqlParser.T_SQLEXCEPTION, 0); + return this.getToken(HiveSql.T_SQLEXCEPTION, 0); }; Declare_handler_itemContext.prototype.T_SQLWARNING = function() { - return this.getToken(HiveSqlParser.T_SQLWARNING, 0); + return this.getToken(HiveSql.T_SQLWARNING, 0); }; Declare_handler_itemContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Declare_handler_itemContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Declare_handler_itemContext.prototype.ident = function() { @@ -7959,18 +8015,18 @@ Declare_handler_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_handler_itemContext = Declare_handler_itemContext; +HiveSql.Declare_handler_itemContext = Declare_handler_itemContext; -HiveSqlParser.prototype.declare_handler_item = function() { +HiveSql.prototype.declare_handler_item = function() { var localctx = new Declare_handler_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 62, HiveSqlParser.RULE_declare_handler_item); + this.enterRule(localctx, 62, HiveSql.RULE_declare_handler_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 821; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CONTINUE || _la===HiveSqlParser.T_EXIT)) { + if(!(_la===HiveSql.T_CONTINUE || _la===HiveSql.T_EXIT)) { this._errHandler.recoverInline(this); } else { @@ -7978,28 +8034,28 @@ HiveSqlParser.prototype.declare_handler_item = function() { this.consume(); } this.state = 822; - this.match(HiveSqlParser.T_HANDLER); + this.match(HiveSql.T_HANDLER); this.state = 823; - this.match(HiveSqlParser.T_FOR); + this.match(HiveSql.T_FOR); this.state = 829; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,48,this._ctx); switch(la_) { case 1: this.state = 824; - this.match(HiveSqlParser.T_SQLEXCEPTION); + this.match(HiveSql.T_SQLEXCEPTION); break; case 2: this.state = 825; - this.match(HiveSqlParser.T_SQLWARNING); + this.match(HiveSql.T_SQLWARNING); break; case 3: this.state = 826; - this.match(HiveSqlParser.T_NOT); + this.match(HiveSql.T_NOT); this.state = 827; - this.match(HiveSqlParser.T_FOUND); + this.match(HiveSql.T_FOUND); break; case 4: @@ -8034,7 +8090,7 @@ function Declare_temporary_table_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_declare_temporary_table_item; + this.ruleIndex = HiveSql.RULE_declare_temporary_table_item; return this; } @@ -8042,11 +8098,11 @@ Declare_temporary_table_itemContext.prototype = Object.create(antlr4.ParserRuleC Declare_temporary_table_itemContext.prototype.constructor = Declare_temporary_table_itemContext; Declare_temporary_table_itemContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Declare_temporary_table_itemContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Declare_temporary_table_itemContext.prototype.ident = function() { @@ -8058,7 +8114,7 @@ Declare_temporary_table_itemContext.prototype.create_table_definition = function }; Declare_temporary_table_itemContext.prototype.T_GLOBAL = function() { - return this.getToken(HiveSqlParser.T_GLOBAL, 0); + return this.getToken(HiveSql.T_GLOBAL, 0); }; Declare_temporary_table_itemContext.prototype.create_table_preoptions = function() { @@ -8088,33 +8144,33 @@ Declare_temporary_table_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Declare_temporary_table_itemContext = Declare_temporary_table_itemContext; +HiveSql.Declare_temporary_table_itemContext = Declare_temporary_table_itemContext; -HiveSqlParser.prototype.declare_temporary_table_item = function() { +HiveSql.prototype.declare_temporary_table_item = function() { var localctx = new Declare_temporary_table_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 64, HiveSqlParser.RULE_declare_temporary_table_item); + this.enterRule(localctx, 64, HiveSql.RULE_declare_temporary_table_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 834; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_GLOBAL) { + if(_la===HiveSql.T_GLOBAL) { this.state = 833; - this.match(HiveSqlParser.T_GLOBAL); + this.match(HiveSql.T_GLOBAL); } this.state = 836; - this.match(HiveSqlParser.T_TEMPORARY); + this.match(HiveSql.T_TEMPORARY); this.state = 837; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 838; this.ident(); this.state = 840; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 839; this.create_table_preoptions(); } @@ -8145,7 +8201,7 @@ function Create_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_stmt; + this.ruleIndex = HiveSql.RULE_create_table_stmt; return this; } @@ -8153,11 +8209,11 @@ Create_table_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Create_table_stmtContext.prototype.constructor = Create_table_stmtContext; Create_table_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Create_table_stmtContext.prototype.table_name = function() { @@ -8169,15 +8225,15 @@ Create_table_stmtContext.prototype.create_table_definition = function() { }; Create_table_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Create_table_stmtContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Create_table_stmtContext.prototype.create_table_preoptions = function() { @@ -8207,29 +8263,29 @@ Create_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_stmtContext = Create_table_stmtContext; +HiveSql.Create_table_stmtContext = Create_table_stmtContext; -HiveSqlParser.prototype.create_table_stmt = function() { +HiveSql.prototype.create_table_stmt = function() { var localctx = new Create_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 66, HiveSqlParser.RULE_create_table_stmt); + this.enterRule(localctx, 66, HiveSql.RULE_create_table_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 844; - this.match(HiveSqlParser.T_CREATE); + this.match(HiveSql.T_CREATE); this.state = 845; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 849; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,51,this._ctx); if(la_===1) { this.state = 846; - this.match(HiveSqlParser.T_IF); + this.match(HiveSql.T_IF); this.state = 847; - this.match(HiveSqlParser.T_NOT); + this.match(HiveSql.T_NOT); this.state = 848; - this.match(HiveSqlParser.T_EXISTS); + this.match(HiveSql.T_EXISTS); } this.state = 851; @@ -8237,7 +8293,7 @@ HiveSqlParser.prototype.create_table_stmt = function() { this.state = 853; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 852; this.create_table_preoptions(); } @@ -8268,7 +8324,7 @@ function Create_local_temp_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_local_temp_table_stmt; + this.ruleIndex = HiveSql.RULE_create_local_temp_table_stmt; return this; } @@ -8276,11 +8332,11 @@ Create_local_temp_table_stmtContext.prototype = Object.create(antlr4.ParserRuleC Create_local_temp_table_stmtContext.prototype.constructor = Create_local_temp_table_stmtContext; Create_local_temp_table_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_local_temp_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Create_local_temp_table_stmtContext.prototype.ident = function() { @@ -8292,15 +8348,15 @@ Create_local_temp_table_stmtContext.prototype.create_table_definition = function }; Create_local_temp_table_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Create_local_temp_table_stmtContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Create_local_temp_table_stmtContext.prototype.T_VOLATILE = function() { - return this.getToken(HiveSqlParser.T_VOLATILE, 0); + return this.getToken(HiveSql.T_VOLATILE, 0); }; Create_local_temp_table_stmtContext.prototype.create_table_preoptions = function() { @@ -8308,11 +8364,11 @@ Create_local_temp_table_stmtContext.prototype.create_table_preoptions = function }; Create_local_temp_table_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_local_temp_table_stmtContext.prototype.T_MULTISET = function() { - return this.getToken(HiveSqlParser.T_MULTISET, 0); + return this.getToken(HiveSql.T_MULTISET, 0); }; Create_local_temp_table_stmtContext.prototype.enterRule = function(listener) { @@ -8338,36 +8394,36 @@ Create_local_temp_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_local_temp_table_stmtContext = Create_local_temp_table_stmtContext; +HiveSql.Create_local_temp_table_stmtContext = Create_local_temp_table_stmtContext; -HiveSqlParser.prototype.create_local_temp_table_stmt = function() { +HiveSql.prototype.create_local_temp_table_stmt = function() { var localctx = new Create_local_temp_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 68, HiveSqlParser.RULE_create_local_temp_table_stmt); + this.enterRule(localctx, 68, HiveSql.RULE_create_local_temp_table_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); this.state = 857; - this.match(HiveSqlParser.T_CREATE); + this.match(HiveSql.T_CREATE); this.state = 864; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LOCAL: + case HiveSql.T_LOCAL: this.state = 858; - this.match(HiveSqlParser.T_LOCAL); + this.match(HiveSql.T_LOCAL); this.state = 859; - this.match(HiveSqlParser.T_TEMPORARY); + this.match(HiveSql.T_TEMPORARY); break; - case HiveSqlParser.T_SET: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: + case HiveSql.T_MULTISET: + case HiveSql.T_SET: + case HiveSql.T_VOLATILE: this.state = 861; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_SET || _la===HiveSqlParser.T_MULTISET) { + if(_la===HiveSql.T_MULTISET || _la===HiveSql.T_SET) { this.state = 860; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_SET || _la===HiveSqlParser.T_MULTISET)) { + if(!(_la===HiveSql.T_MULTISET || _la===HiveSql.T_SET)) { this._errHandler.recoverInline(this); } else { @@ -8377,19 +8433,19 @@ HiveSqlParser.prototype.create_local_temp_table_stmt = function() { } this.state = 863; - this.match(HiveSqlParser.T_VOLATILE); + this.match(HiveSql.T_VOLATILE); break; default: throw new antlr4.error.NoViableAltException(this); } this.state = 866; - this.match(HiveSqlParser.T_TABLE); + this.match(HiveSql.T_TABLE); this.state = 867; this.ident(); this.state = 869; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW) { + if(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA) { this.state = 868; this.create_table_preoptions(); } @@ -8420,7 +8476,7 @@ function Create_table_definitionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_definition; + this.ruleIndex = HiveSql.RULE_create_table_definition; return this; } @@ -8428,7 +8484,7 @@ Create_table_definitionContext.prototype = Object.create(antlr4.ParserRuleContex Create_table_definitionContext.prototype.constructor = Create_table_definitionContext; Create_table_definitionContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_definitionContext.prototype.select_stmt = function() { @@ -8436,27 +8492,19 @@ Create_table_definitionContext.prototype.select_stmt = function() { }; Create_table_definitionContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_definitionContext.prototype.create_table_columns = function() { return this.getTypedRuleContext(Create_table_columnsContext,0); }; -Create_table_definitionContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); -}; - -Create_table_definitionContext.prototype.table_name = function() { - return this.getTypedRuleContext(Table_nameContext,0); -}; - Create_table_definitionContext.prototype.create_table_options = function() { return this.getTypedRuleContext(Create_table_optionsContext,0); }; Create_table_definitionContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_definitionContext.prototype.enterRule = function(listener) { @@ -8482,16 +8530,16 @@ Create_table_definitionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_definitionContext = Create_table_definitionContext; +HiveSql.Create_table_definitionContext = Create_table_definitionContext; -HiveSqlParser.prototype.create_table_definition = function() { +HiveSql.prototype.create_table_definition = function() { var localctx = new Create_table_definitionContext(this, this._ctx, this.state); - this.enterRule(localctx, 70, HiveSqlParser.RULE_create_table_definition); + this.enterRule(localctx, 70, HiveSql.RULE_create_table_definition); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 890; + this.state = 888; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,58,this._ctx); switch(la_) { @@ -8499,26 +8547,26 @@ HiveSqlParser.prototype.create_table_definition = function() { this.state = 874; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AS) { + if(_la===HiveSql.T_AS) { this.state = 873; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 876; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 877; this.select_stmt(); this.state = 878; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; case 2: this.state = 881; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AS) { + if(_la===HiveSql.T_AS) { this.state = 880; - this.match(HiveSqlParser.T_AS); + this.match(HiveSql.T_AS); } this.state = 883; @@ -8527,26 +8575,19 @@ HiveSqlParser.prototype.create_table_definition = function() { case 3: this.state = 884; - this.match(HiveSqlParser.T_OPEN_P); + this.match(HiveSql.T_OPEN_P); this.state = 885; this.create_table_columns(); this.state = 886; - this.match(HiveSqlParser.T_CLOSE_P); - break; - - case 4: - this.state = 888; - this.match(HiveSqlParser.T_LIKE); - this.state = 889; - this.table_name(); + this.match(HiveSql.T_CLOSE_P); break; } - this.state = 893; + this.state = 891; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,59,this._ctx); if(la_===1) { - this.state = 892; + this.state = 890; this.create_table_options(); } @@ -8574,7 +8615,7 @@ function Create_table_columnsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_columns; + this.ruleIndex = HiveSql.RULE_create_table_columns; return this; } @@ -8597,9 +8638,9 @@ Create_table_columnsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -8627,26 +8668,26 @@ Create_table_columnsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_columnsContext = Create_table_columnsContext; +HiveSql.Create_table_columnsContext = Create_table_columnsContext; -HiveSqlParser.prototype.create_table_columns = function() { +HiveSql.prototype.create_table_columns = function() { var localctx = new Create_table_columnsContext(this, this._ctx, this.state); - this.enterRule(localctx, 72, HiveSqlParser.RULE_create_table_columns); + this.enterRule(localctx, 72, HiveSql.RULE_create_table_columns); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 895; + this.state = 893; this.create_table_columns_item(); - this.state = 900; + this.state = 898; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 896; - this.match(HiveSqlParser.T_COMMA); - this.state = 897; + while(_la===HiveSql.T_COMMA) { + this.state = 894; + this.match(HiveSql.T_COMMA); + this.state = 895; this.create_table_columns_item(); - this.state = 902; + this.state = 900; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -8674,7 +8715,7 @@ function Create_table_columns_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_columns_item; + this.ruleIndex = HiveSql.RULE_create_table_columns_item; return this; } @@ -8720,7 +8761,7 @@ Create_table_columns_itemContext.prototype.create_table_column_cons = function() }; Create_table_columns_itemContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Create_table_columns_itemContext.prototype.ident = function() { @@ -8750,52 +8791,52 @@ Create_table_columns_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_columns_itemContext = Create_table_columns_itemContext; +HiveSql.Create_table_columns_itemContext = Create_table_columns_itemContext; -HiveSqlParser.prototype.create_table_columns_item = function() { +HiveSql.prototype.create_table_columns_item = function() { var localctx = new Create_table_columns_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 74, HiveSqlParser.RULE_create_table_columns_item); + this.enterRule(localctx, 74, HiveSql.RULE_create_table_columns_item); var _la = 0; // Token type try { - this.state = 925; + this.state = 923; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,65,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 903; + this.state = 901; this.column_name(); - this.state = 904; + this.state = 902; this.dtype(); - this.state = 906; + this.state = 904; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 905; + if(_la===HiveSql.T_OPEN_P) { + this.state = 903; this.dtype_len(); } - this.state = 911; + this.state = 909; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,62,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 908; + this.state = 906; this.dtype_attr(); } - this.state = 913; + this.state = 911; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,62,this._ctx); } - this.state = 917; + this.state = 915; this._errHandler.sync(this); _la = this._input.LA(1); - while(((((_la - 19)) & ~0x1f) == 0 && ((1 << (_la - 19)) & ((1 << (HiveSqlParser.T_NULL - 19)) | (1 << (HiveSqlParser.T_COLON - 19)) | (1 << (HiveSqlParser.T_EQUAL - 19)) | (1 << (HiveSqlParser.T_WITH - 19)))) !== 0) || ((((_la - 54)) & ~0x1f) == 0 && ((1 << (_la - 54)) & ((1 << (HiveSqlParser.T_NOT - 54)) | (1 << (HiveSqlParser.T_PRIMARY - 54)) | (1 << (HiveSqlParser.T_UNIQUE - 54)) | (1 << (HiveSqlParser.T_REFERENCES - 54)) | (1 << (HiveSqlParser.T_IDENTITY - 54)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 54)) | (1 << (HiveSqlParser.T_ENABLE - 54)) | (1 << (HiveSqlParser.T_DEFAULT - 54)))) !== 0)) { - this.state = 914; + while(_la===HiveSql.T_AUTO_INCREMENT || _la===HiveSql.T_DEFAULT || _la===HiveSql.T_ENABLE || _la===HiveSql.T_IDENTITY || ((((_la - 188)) & ~0x1f) == 0 && ((1 << (_la - 188)) & ((1 << (HiveSql.T_NOT - 188)) | (1 << (HiveSql.T_NULL - 188)) | (1 << (HiveSql.T_PRIMARY - 188)))) !== 0) || _la===HiveSql.T_REFERENCES || _la===HiveSql.T_UNIQUE || _la===HiveSql.T_WITH || _la===HiveSql.T_COLON || _la===HiveSql.T_EQUAL) { + this.state = 912; this.create_table_column_inline_cons(); - this.state = 919; + this.state = 917; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -8803,17 +8844,17 @@ HiveSqlParser.prototype.create_table_columns_item = function() { case 2: this.enterOuterAlt(localctx, 2); - this.state = 922; + this.state = 920; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CONSTRAINT) { - this.state = 920; - this.match(HiveSqlParser.T_CONSTRAINT); - this.state = 921; + if(_la===HiveSql.T_CONSTRAINT) { + this.state = 918; + this.match(HiveSql.T_CONSTRAINT); + this.state = 919; this.ident(); } - this.state = 924; + this.state = 922; this.create_table_column_cons(); break; @@ -8842,7 +8883,7 @@ function Column_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_column_name; + this.ruleIndex = HiveSql.RULE_column_name; return this; } @@ -8876,15 +8917,15 @@ Column_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.Column_nameContext = Column_nameContext; +HiveSql.Column_nameContext = Column_nameContext; -HiveSqlParser.prototype.column_name = function() { +HiveSql.prototype.column_name = function() { var localctx = new Column_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 76, HiveSqlParser.RULE_column_name); + this.enterRule(localctx, 76, HiveSql.RULE_column_name); try { this.enterOuterAlt(localctx, 1); - this.state = 927; + this.state = 925; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -8910,7 +8951,7 @@ function Create_table_column_inline_consContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_column_inline_cons; + this.ruleIndex = HiveSql.RULE_create_table_column_inline_cons; return this; } @@ -8922,27 +8963,27 @@ Create_table_column_inline_consContext.prototype.dtype_default = function() { }; Create_table_column_inline_consContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_column_inline_consContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_column_inline_consContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_column_inline_consContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Create_table_column_inline_consContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_table_column_inline_consContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Create_table_column_inline_consContext.prototype.table_name = function() { @@ -8950,7 +8991,7 @@ Create_table_column_inline_consContext.prototype.table_name = function() { }; Create_table_column_inline_consContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_column_inline_consContext.prototype.ident = function() { @@ -8958,7 +8999,7 @@ Create_table_column_inline_consContext.prototype.ident = function() { }; Create_table_column_inline_consContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_column_inline_consContext.prototype.create_table_fk_action = function(i) { @@ -8973,7 +9014,7 @@ Create_table_column_inline_consContext.prototype.create_table_fk_action = functi }; Create_table_column_inline_consContext.prototype.T_IDENTITY = function() { - return this.getToken(HiveSqlParser.T_IDENTITY, 0); + return this.getToken(HiveSql.T_IDENTITY, 0); }; Create_table_column_inline_consContext.prototype.L_INT = function(i) { @@ -8981,9 +9022,9 @@ Create_table_column_inline_consContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; @@ -8993,19 +9034,19 @@ Create_table_column_inline_consContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_column_inline_consContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Create_table_column_inline_consContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Create_table_column_inline_consContext.prototype.enterRule = function(listener) { @@ -9031,106 +9072,106 @@ Create_table_column_inline_consContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_column_inline_consContext = Create_table_column_inline_consContext; +HiveSql.Create_table_column_inline_consContext = Create_table_column_inline_consContext; -HiveSqlParser.prototype.create_table_column_inline_cons = function() { +HiveSql.prototype.create_table_column_inline_cons = function() { var localctx = new Create_table_column_inline_consContext(this, this._ctx, this.state); - this.enterRule(localctx, 78, HiveSqlParser.RULE_create_table_column_inline_cons); + this.enterRule(localctx, 78, HiveSql.RULE_create_table_column_inline_cons); var _la = 0; // Token type try { - this.state = 961; + this.state = 959; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COLON: - case HiveSqlParser.T_EQUAL: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: + case HiveSql.T_WITH: + case HiveSql.T_COLON: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 929; + this.state = 927; this.dtype_default(); break; - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_NOT: + case HiveSql.T_NOT: + case HiveSql.T_NULL: this.enterOuterAlt(localctx, 2); - this.state = 931; + this.state = 929; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 930; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 928; + this.match(HiveSql.T_NOT); } - this.state = 933; - this.match(HiveSqlParser.T_NULL); + this.state = 931; + this.match(HiveSql.T_NULL); break; - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 3); - this.state = 934; - this.match(HiveSqlParser.T_PRIMARY); - this.state = 935; - this.match(HiveSqlParser.T_KEY); + this.state = 932; + this.match(HiveSql.T_PRIMARY); + this.state = 933; + this.match(HiveSql.T_KEY); break; - case HiveSqlParser.T_UNIQUE: + case HiveSql.T_UNIQUE: this.enterOuterAlt(localctx, 4); - this.state = 936; - this.match(HiveSqlParser.T_UNIQUE); + this.state = 934; + this.match(HiveSql.T_UNIQUE); break; - case HiveSqlParser.T_REFERENCES: + case HiveSql.T_REFERENCES: this.enterOuterAlt(localctx, 5); - this.state = 937; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 938; + this.state = 935; + this.match(HiveSql.T_REFERENCES); + this.state = 936; this.table_name(); - this.state = 939; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 940; + this.state = 937; + this.match(HiveSql.T_OPEN_P); + this.state = 938; this.ident(); - this.state = 941; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 945; + this.state = 939; + this.match(HiveSql.T_CLOSE_P); + this.state = 943; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ON) { - this.state = 942; + while(_la===HiveSql.T_ON) { + this.state = 940; this.create_table_fk_action(); - this.state = 947; + this.state = 945; this._errHandler.sync(this); _la = this._input.LA(1); } break; - case HiveSqlParser.T_IDENTITY: + case HiveSql.T_IDENTITY: this.enterOuterAlt(localctx, 6); + this.state = 946; + this.match(HiveSql.T_IDENTITY); + this.state = 947; + this.match(HiveSql.T_OPEN_P); this.state = 948; - this.match(HiveSqlParser.T_IDENTITY); - this.state = 949; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 950; - this.match(HiveSqlParser.L_INT); - this.state = 955; + this.match(HiveSql.L_INT); + this.state = 953; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 951; - this.match(HiveSqlParser.T_COMMA); - this.state = 952; - this.match(HiveSqlParser.L_INT); - this.state = 957; + while(_la===HiveSql.T_COMMA) { + this.state = 949; + this.match(HiveSql.T_COMMA); + this.state = 950; + this.match(HiveSql.L_INT); + this.state = 955; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 958; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 956; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_AUTO_INCREMENT: + case HiveSql.T_AUTO_INCREMENT: this.enterOuterAlt(localctx, 7); - this.state = 959; - this.match(HiveSqlParser.T_AUTO_INCREMENT); + this.state = 957; + this.match(HiveSql.T_AUTO_INCREMENT); break; - case HiveSqlParser.T_ENABLE: + case HiveSql.T_ENABLE: this.enterOuterAlt(localctx, 8); - this.state = 960; - this.match(HiveSqlParser.T_ENABLE); + this.state = 958; + this.match(HiveSql.T_ENABLE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -9159,7 +9200,7 @@ function Create_table_column_consContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_column_cons; + this.ruleIndex = HiveSql.RULE_create_table_column_cons; return this; } @@ -9167,11 +9208,11 @@ Create_table_column_consContext.prototype = Object.create(antlr4.ParserRuleConte Create_table_column_consContext.prototype.constructor = Create_table_column_consContext; Create_table_column_consContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_column_consContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Create_table_column_consContext.prototype.T_OPEN_P = function(i) { @@ -9179,9 +9220,9 @@ Create_table_column_consContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -9202,15 +9243,15 @@ Create_table_column_consContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Create_table_column_consContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Create_table_column_consContext.prototype.T_COMMA = function(i) { @@ -9218,15 +9259,15 @@ Create_table_column_consContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_column_consContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Create_table_column_consContext.prototype.index_storage_clause = function() { @@ -9238,9 +9279,9 @@ Create_table_column_consContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -9250,19 +9291,19 @@ Create_table_column_consContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; Create_table_column_consContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Create_table_column_consContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Create_table_column_consContext.prototype.table_name = function() { @@ -9303,42 +9344,42 @@ Create_table_column_consContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_column_consContext = Create_table_column_consContext; +HiveSql.Create_table_column_consContext = Create_table_column_consContext; -HiveSqlParser.prototype.create_table_column_cons = function() { +HiveSql.prototype.create_table_column_cons = function() { var localctx = new Create_table_column_consContext(this, this._ctx, this.state); - this.enterRule(localctx, 80, HiveSqlParser.RULE_create_table_column_cons); + this.enterRule(localctx, 80, HiveSql.RULE_create_table_column_cons); var _la = 0; // Token type try { - this.state = 1020; + this.state = 1018; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 1); - this.state = 963; - this.match(HiveSqlParser.T_PRIMARY); + this.state = 961; + this.match(HiveSql.T_PRIMARY); + this.state = 962; + this.match(HiveSql.T_KEY); this.state = 964; - this.match(HiveSqlParser.T_KEY); - this.state = 966; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLUSTERED) { - this.state = 965; - this.match(HiveSqlParser.T_CLUSTERED); + if(_la===HiveSql.T_CLUSTERED) { + this.state = 963; + this.match(HiveSql.T_CLUSTERED); } - this.state = 968; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 969; + this.state = 966; + this.match(HiveSql.T_OPEN_P); + this.state = 967; this.ident(); - this.state = 971; + this.state = 969; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 970; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 968; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -9347,21 +9388,21 @@ HiveSqlParser.prototype.create_table_column_cons = function() { } } - this.state = 980; + this.state = 978; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 973; - this.match(HiveSqlParser.T_COMMA); - this.state = 974; + while(_la===HiveSql.T_COMMA) { + this.state = 971; + this.match(HiveSql.T_COMMA); + this.state = 972; this.ident(); - this.state = 976; + this.state = 974; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 975; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 973; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -9370,82 +9411,82 @@ HiveSqlParser.prototype.create_table_column_cons = function() { } } - this.state = 982; + this.state = 980; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 981; + this.match(HiveSql.T_CLOSE_P); this.state = 983; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 985; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ENABLE) { - this.state = 984; - this.match(HiveSqlParser.T_ENABLE); + if(_la===HiveSql.T_ENABLE) { + this.state = 982; + this.match(HiveSql.T_ENABLE); } - this.state = 988; + this.state = 986; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 987; + if(_la===HiveSql.T_WITH) { + this.state = 985; this.index_storage_clause(); } break; - case HiveSqlParser.T_FOREIGN: + case HiveSql.T_FOREIGN: this.enterOuterAlt(localctx, 2); + this.state = 988; + this.match(HiveSql.T_FOREIGN); + this.state = 989; + this.match(HiveSql.T_KEY); this.state = 990; - this.match(HiveSqlParser.T_FOREIGN); + this.match(HiveSql.T_OPEN_P); this.state = 991; - this.match(HiveSqlParser.T_KEY); - this.state = 992; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 993; this.ident(); - this.state = 998; + this.state = 996; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 994; - this.match(HiveSqlParser.T_COMMA); - this.state = 995; + while(_la===HiveSql.T_COMMA) { + this.state = 992; + this.match(HiveSql.T_COMMA); + this.state = 993; this.ident(); - this.state = 1000; + this.state = 998; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 999; + this.match(HiveSql.T_CLOSE_P); + this.state = 1000; + this.match(HiveSql.T_REFERENCES); this.state = 1001; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1002; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 1003; this.table_name(); - this.state = 1004; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1005; + this.state = 1002; + this.match(HiveSql.T_OPEN_P); + this.state = 1003; this.ident(); - this.state = 1010; + this.state = 1008; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1006; - this.match(HiveSqlParser.T_COMMA); - this.state = 1007; + while(_la===HiveSql.T_COMMA) { + this.state = 1004; + this.match(HiveSql.T_COMMA); + this.state = 1005; this.ident(); - this.state = 1012; + this.state = 1010; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1013; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1017; + this.state = 1011; + this.match(HiveSql.T_CLOSE_P); + this.state = 1015; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ON) { - this.state = 1014; + while(_la===HiveSql.T_ON) { + this.state = 1012; this.create_table_fk_action(); - this.state = 1019; + this.state = 1017; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -9477,7 +9518,7 @@ function Create_table_fk_actionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_fk_action; + this.ruleIndex = HiveSql.RULE_create_table_fk_action; return this; } @@ -9485,43 +9526,43 @@ Create_table_fk_actionContext.prototype = Object.create(antlr4.ParserRuleContext Create_table_fk_actionContext.prototype.constructor = Create_table_fk_actionContext; Create_table_fk_actionContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_fk_actionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Create_table_fk_actionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Create_table_fk_actionContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_fk_actionContext.prototype.T_ACTION = function() { - return this.getToken(HiveSqlParser.T_ACTION, 0); + return this.getToken(HiveSql.T_ACTION, 0); }; Create_table_fk_actionContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Create_table_fk_actionContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_table_fk_actionContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_fk_actionContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Create_table_fk_actionContext.prototype.T_CASCADE = function() { - return this.getToken(HiveSqlParser.T_CASCADE, 0); + return this.getToken(HiveSql.T_CASCADE, 0); }; Create_table_fk_actionContext.prototype.enterRule = function(listener) { @@ -9547,59 +9588,59 @@ Create_table_fk_actionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_fk_actionContext = Create_table_fk_actionContext; +HiveSql.Create_table_fk_actionContext = Create_table_fk_actionContext; -HiveSqlParser.prototype.create_table_fk_action = function() { +HiveSql.prototype.create_table_fk_action = function() { var localctx = new Create_table_fk_actionContext(this, this._ctx, this.state); - this.enterRule(localctx, 82, HiveSqlParser.RULE_create_table_fk_action); + this.enterRule(localctx, 82, HiveSql.RULE_create_table_fk_action); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1022; - this.match(HiveSqlParser.T_ON); - this.state = 1023; + this.state = 1020; + this.match(HiveSql.T_ON); + this.state = 1021; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_UPDATE || _la===HiveSqlParser.T_DELETE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_UPDATE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1032; + this.state = 1030; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,80,this._ctx); switch(la_) { case 1: - this.state = 1024; - this.match(HiveSqlParser.T_NO); - this.state = 1025; - this.match(HiveSqlParser.T_ACTION); + this.state = 1022; + this.match(HiveSql.T_NO); + this.state = 1023; + this.match(HiveSql.T_ACTION); break; case 2: - this.state = 1026; - this.match(HiveSqlParser.T_RESTRICT); + this.state = 1024; + this.match(HiveSql.T_RESTRICT); break; case 3: - this.state = 1027; - this.match(HiveSqlParser.T_SET); - this.state = 1028; - this.match(HiveSqlParser.T_NULL); + this.state = 1025; + this.match(HiveSql.T_SET); + this.state = 1026; + this.match(HiveSql.T_NULL); break; case 4: - this.state = 1029; - this.match(HiveSqlParser.T_SET); - this.state = 1030; - this.match(HiveSqlParser.T_DEFAULT); + this.state = 1027; + this.match(HiveSql.T_SET); + this.state = 1028; + this.match(HiveSql.T_DEFAULT); break; case 5: - this.state = 1031; - this.match(HiveSqlParser.T_CASCADE); + this.state = 1029; + this.match(HiveSql.T_CASCADE); break; } @@ -9627,7 +9668,7 @@ function Create_table_preoptionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions; + this.ruleIndex = HiveSql.RULE_create_table_preoptions; return this; } @@ -9668,25 +9709,25 @@ Create_table_preoptionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptionsContext = Create_table_preoptionsContext; +HiveSql.Create_table_preoptionsContext = Create_table_preoptionsContext; -HiveSqlParser.prototype.create_table_preoptions = function() { +HiveSql.prototype.create_table_preoptions = function() { var localctx = new Create_table_preoptionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 84, HiveSqlParser.RULE_create_table_preoptions); + this.enterRule(localctx, 84, HiveSql.RULE_create_table_preoptions); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1035; + this.state = 1033; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 1034; + this.state = 1032; this.create_table_preoptions_item(); - this.state = 1037; + this.state = 1035; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_COMMA || _la===HiveSqlParser.T_STORED || _la===HiveSqlParser.T_ROW); + } while(_la===HiveSql.T_ROW || _la===HiveSql.T_STORED || _la===HiveSql.T_COMMA); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -9711,7 +9752,7 @@ function Create_table_preoptions_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions_item; + this.ruleIndex = HiveSql.RULE_create_table_preoptions_item; return this; } @@ -9719,7 +9760,7 @@ Create_table_preoptions_itemContext.prototype = Object.create(antlr4.ParserRuleC Create_table_preoptions_itemContext.prototype.constructor = Create_table_preoptions_itemContext; Create_table_preoptions_itemContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Create_table_preoptions_itemContext.prototype.create_table_preoptions_td_item = function() { @@ -9753,27 +9794,27 @@ Create_table_preoptions_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptions_itemContext = Create_table_preoptions_itemContext; +HiveSql.Create_table_preoptions_itemContext = Create_table_preoptions_itemContext; -HiveSqlParser.prototype.create_table_preoptions_item = function() { +HiveSql.prototype.create_table_preoptions_item = function() { var localctx = new Create_table_preoptions_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 86, HiveSqlParser.RULE_create_table_preoptions_item); + this.enterRule(localctx, 86, HiveSql.RULE_create_table_preoptions_item); try { - this.state = 1042; + this.state = 1040; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMA: + case HiveSql.T_COMMA: this.enterOuterAlt(localctx, 1); - this.state = 1039; - this.match(HiveSqlParser.T_COMMA); - this.state = 1040; + this.state = 1037; + this.match(HiveSql.T_COMMA); + this.state = 1038; this.create_table_preoptions_td_item(); break; - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: + case HiveSql.T_ROW: + case HiveSql.T_STORED: this.enterOuterAlt(localctx, 2); - this.state = 1041; + this.state = 1039; this.create_table_options_hive_item(); break; default: @@ -9803,7 +9844,7 @@ function Create_table_preoptions_td_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_preoptions_td_item; + this.ruleIndex = HiveSql.RULE_create_table_preoptions_td_item; return this; } @@ -9811,15 +9852,15 @@ Create_table_preoptions_td_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_preoptions_td_itemContext.prototype.constructor = Create_table_preoptions_td_itemContext; Create_table_preoptions_td_itemContext.prototype.T_LOG = function() { - return this.getToken(HiveSqlParser.T_LOG, 0); + return this.getToken(HiveSql.T_LOG, 0); }; Create_table_preoptions_td_itemContext.prototype.T_FALLBACK = function() { - return this.getToken(HiveSqlParser.T_FALLBACK, 0); + return this.getToken(HiveSql.T_FALLBACK, 0); }; Create_table_preoptions_td_itemContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_preoptions_td_itemContext.prototype.enterRule = function(listener) { @@ -9845,26 +9886,26 @@ Create_table_preoptions_td_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_preoptions_td_itemContext = Create_table_preoptions_td_itemContext; +HiveSql.Create_table_preoptions_td_itemContext = Create_table_preoptions_td_itemContext; -HiveSqlParser.prototype.create_table_preoptions_td_item = function() { +HiveSql.prototype.create_table_preoptions_td_item = function() { var localctx = new Create_table_preoptions_td_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 88, HiveSqlParser.RULE_create_table_preoptions_td_item); + this.enterRule(localctx, 88, HiveSql.RULE_create_table_preoptions_td_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1045; + this.state = 1043; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NO) { - this.state = 1044; - this.match(HiveSqlParser.T_NO); + if(_la===HiveSql.T_NO) { + this.state = 1042; + this.match(HiveSql.T_NO); } - this.state = 1047; + this.state = 1045; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOG || _la===HiveSqlParser.T_FALLBACK)) { + if(!(_la===HiveSql.T_FALLBACK || _la===HiveSql.T_LOG)) { this._errHandler.recoverInline(this); } else { @@ -9895,7 +9936,7 @@ function Create_table_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options; + this.ruleIndex = HiveSql.RULE_create_table_options; return this; } @@ -9936,27 +9977,27 @@ Create_table_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_optionsContext = Create_table_optionsContext; +HiveSql.Create_table_optionsContext = Create_table_optionsContext; -HiveSqlParser.prototype.create_table_options = function() { +HiveSql.prototype.create_table_options = function() { var localctx = new Create_table_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 90, HiveSqlParser.RULE_create_table_options); + this.enterRule(localctx, 90, HiveSql.RULE_create_table_options); try { this.enterOuterAlt(localctx, 1); - this.state = 1050; + this.state = 1048; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 1049; + this.state = 1047; this.create_table_options_item(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1052; + this.state = 1050; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,84, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -9984,7 +10025,7 @@ function Create_table_options_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_item; + this.ruleIndex = HiveSql.RULE_create_table_options_item; return this; } @@ -9992,23 +10033,23 @@ Create_table_options_itemContext.prototype = Object.create(antlr4.ParserRuleCont Create_table_options_itemContext.prototype.constructor = Create_table_options_itemContext; Create_table_options_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_itemContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Create_table_options_itemContext.prototype.T_ROWS = function() { - return this.getToken(HiveSqlParser.T_ROWS, 0); + return this.getToken(HiveSql.T_ROWS, 0); }; Create_table_options_itemContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Create_table_options_itemContext.prototype.T_PRESERVE = function() { - return this.getToken(HiveSqlParser.T_PRESERVE, 0); + return this.getToken(HiveSql.T_PRESERVE, 0); }; Create_table_options_itemContext.prototype.create_table_options_ora_item = function() { @@ -10058,70 +10099,70 @@ Create_table_options_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_itemContext = Create_table_options_itemContext; +HiveSql.Create_table_options_itemContext = Create_table_options_itemContext; -HiveSqlParser.prototype.create_table_options_item = function() { +HiveSql.prototype.create_table_options_item = function() { var localctx = new Create_table_options_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 92, HiveSqlParser.RULE_create_table_options_item); + this.enterRule(localctx, 92, HiveSql.RULE_create_table_options_item); var _la = 0; // Token type try { - this.state = 1064; + this.state = 1062; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,85,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); + this.state = 1052; + this.match(HiveSql.T_ON); + this.state = 1053; + this.match(HiveSql.T_COMMIT); this.state = 1054; - this.match(HiveSqlParser.T_ON); - this.state = 1055; - this.match(HiveSqlParser.T_COMMIT); - this.state = 1056; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DELETE || _la===HiveSqlParser.T_PRESERVE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_PRESERVE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1057; - this.match(HiveSqlParser.T_ROWS); + this.state = 1055; + this.match(HiveSql.T_ROWS); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1058; + this.state = 1056; this.create_table_options_ora_item(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1059; + this.state = 1057; this.create_table_options_db2_item(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1060; + this.state = 1058; this.create_table_options_td_item(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1061; + this.state = 1059; this.create_table_options_hive_item(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 1062; + this.state = 1060; this.create_table_options_mssql_item(); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 1063; + this.state = 1061; this.create_table_options_mysql_item(); break; @@ -10150,7 +10191,7 @@ function Create_table_options_ora_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_ora_item; + this.ruleIndex = HiveSql.RULE_create_table_options_ora_item; return this; } @@ -10158,19 +10199,19 @@ Create_table_options_ora_itemContext.prototype = Object.create(antlr4.ParserRule Create_table_options_ora_itemContext.prototype.constructor = Create_table_options_ora_itemContext; Create_table_options_ora_itemContext.prototype.T_SEGMENT = function() { - return this.getToken(HiveSqlParser.T_SEGMENT, 0); + return this.getToken(HiveSql.T_SEGMENT, 0); }; Create_table_options_ora_itemContext.prototype.T_CREATION = function() { - return this.getToken(HiveSqlParser.T_CREATION, 0); + return this.getToken(HiveSql.T_CREATION, 0); }; Create_table_options_ora_itemContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Create_table_options_ora_itemContext.prototype.T_DEFERRED = function() { - return this.getToken(HiveSqlParser.T_DEFERRED, 0); + return this.getToken(HiveSql.T_DEFERRED, 0); }; Create_table_options_ora_itemContext.prototype.L_INT = function(i) { @@ -10178,51 +10219,51 @@ Create_table_options_ora_itemContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; Create_table_options_ora_itemContext.prototype.T_PCTFREE = function() { - return this.getToken(HiveSqlParser.T_PCTFREE, 0); + return this.getToken(HiveSql.T_PCTFREE, 0); }; Create_table_options_ora_itemContext.prototype.T_PCTUSED = function() { - return this.getToken(HiveSqlParser.T_PCTUSED, 0); + return this.getToken(HiveSql.T_PCTUSED, 0); }; Create_table_options_ora_itemContext.prototype.T_INITRANS = function() { - return this.getToken(HiveSqlParser.T_INITRANS, 0); + return this.getToken(HiveSql.T_INITRANS, 0); }; Create_table_options_ora_itemContext.prototype.T_MAXTRANS = function() { - return this.getToken(HiveSqlParser.T_MAXTRANS, 0); + return this.getToken(HiveSql.T_MAXTRANS, 0); }; Create_table_options_ora_itemContext.prototype.T_NOCOMPRESS = function() { - return this.getToken(HiveSqlParser.T_NOCOMPRESS, 0); + return this.getToken(HiveSql.T_NOCOMPRESS, 0); }; Create_table_options_ora_itemContext.prototype.T_LOGGING = function() { - return this.getToken(HiveSqlParser.T_LOGGING, 0); + return this.getToken(HiveSql.T_LOGGING, 0); }; Create_table_options_ora_itemContext.prototype.T_NOLOGGING = function() { - return this.getToken(HiveSqlParser.T_NOLOGGING, 0); + return this.getToken(HiveSql.T_NOLOGGING, 0); }; Create_table_options_ora_itemContext.prototype.T_STORAGE = function() { - return this.getToken(HiveSqlParser.T_STORAGE, 0); + return this.getToken(HiveSql.T_STORAGE, 0); }; Create_table_options_ora_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_ora_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_ora_itemContext.prototype.ident = function(i) { @@ -10237,7 +10278,7 @@ Create_table_options_ora_itemContext.prototype.ident = function(i) { }; Create_table_options_ora_itemContext.prototype.T_TABLESPACE = function() { - return this.getToken(HiveSqlParser.T_TABLESPACE, 0); + return this.getToken(HiveSql.T_TABLESPACE, 0); }; Create_table_options_ora_itemContext.prototype.enterRule = function(listener) { @@ -10263,26 +10304,26 @@ Create_table_options_ora_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_ora_itemContext = Create_table_options_ora_itemContext; +HiveSql.Create_table_options_ora_itemContext = Create_table_options_ora_itemContext; -HiveSqlParser.prototype.create_table_options_ora_item = function() { +HiveSql.prototype.create_table_options_ora_item = function() { var localctx = new Create_table_options_ora_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 94, HiveSqlParser.RULE_create_table_options_ora_item); + this.enterRule(localctx, 94, HiveSql.RULE_create_table_options_ora_item); var _la = 0; // Token type try { - this.state = 1084; + this.state = 1082; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SEGMENT: + case HiveSql.T_SEGMENT: this.enterOuterAlt(localctx, 1); + this.state = 1064; + this.match(HiveSql.T_SEGMENT); + this.state = 1065; + this.match(HiveSql.T_CREATION); this.state = 1066; - this.match(HiveSqlParser.T_SEGMENT); - this.state = 1067; - this.match(HiveSqlParser.T_CREATION); - this.state = 1068; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_IMMEDIATE || _la===HiveSqlParser.T_DEFERRED)) { + if(!(_la===HiveSql.T_DEFERRED || _la===HiveSql.T_IMMEDIATE)) { this._errHandler.recoverInline(this); } else { @@ -10290,34 +10331,34 @@ HiveSqlParser.prototype.create_table_options_ora_item = function() { this.consume(); } break; - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: + case HiveSql.T_INITRANS: + case HiveSql.T_MAXTRANS: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: this.enterOuterAlt(localctx, 2); - this.state = 1069; + this.state = 1067; _la = this._input.LA(1); - if(!(((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)))) !== 0))) { + if(!(_la===HiveSql.T_INITRANS || _la===HiveSql.T_MAXTRANS || _la===HiveSql.T_PCTFREE || _la===HiveSql.T_PCTUSED)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1070; - this.match(HiveSqlParser.L_INT); + this.state = 1068; + this.match(HiveSql.L_INT); break; - case HiveSqlParser.T_NOCOMPRESS: + case HiveSql.T_NOCOMPRESS: this.enterOuterAlt(localctx, 3); - this.state = 1071; - this.match(HiveSqlParser.T_NOCOMPRESS); + this.state = 1069; + this.match(HiveSql.T_NOCOMPRESS); break; - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: + case HiveSql.T_LOGGING: + case HiveSql.T_NOLOGGING: this.enterOuterAlt(localctx, 4); - this.state = 1072; + this.state = 1070; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LOGGING || _la===HiveSqlParser.T_NOLOGGING)) { + if(!(_la===HiveSql.T_LOGGING || _la===HiveSql.T_NOLOGGING)) { this._errHandler.recoverInline(this); } else { @@ -10325,361 +10366,360 @@ HiveSqlParser.prototype.create_table_options_ora_item = function() { this.consume(); } break; - case HiveSqlParser.T_STORAGE: + case HiveSql.T_STORAGE: this.enterOuterAlt(localctx, 5); - this.state = 1073; - this.match(HiveSqlParser.T_STORAGE); - this.state = 1074; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1077; + this.state = 1071; + this.match(HiveSql.T_STORAGE); + this.state = 1072; + this.match(HiveSql.T_OPEN_P); + this.state = 1075; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 1077; + this.state = 1075; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1075; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1073; this.ident(); break; - case HiveSqlParser.L_INT: - this.state = 1076; - this.match(HiveSqlParser.L_INT); + case HiveSql.L_INT: + this.state = 1074; + this.match(HiveSql.L_INT); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1079; + this.state = 1077; this._errHandler.sync(this); _la = this._input.LA(1); - } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.L_INT - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)); - this.state = 1081; - this.match(HiveSqlParser.T_CLOSE_P); + } while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID || _la===HiveSql.L_INT); + this.state = 1079; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_TABLESPACE: + case HiveSql.T_TABLESPACE: this.enterOuterAlt(localctx, 6); - this.state = 1082; - this.match(HiveSqlParser.T_TABLESPACE); - this.state = 1083; + this.state = 1080; + this.match(HiveSql.T_TABLESPACE); + this.state = 1081; this.ident(); break; default: @@ -10709,7 +10749,7 @@ function Create_table_options_db2_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_db2_item; + this.ruleIndex = HiveSql.RULE_create_table_options_db2_item; return this; } @@ -10717,7 +10757,7 @@ Create_table_options_db2_itemContext.prototype = Object.create(antlr4.ParserRule Create_table_options_db2_itemContext.prototype.constructor = Create_table_options_db2_itemContext; Create_table_options_db2_itemContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Create_table_options_db2_itemContext.prototype.ident = function(i) { @@ -10732,35 +10772,35 @@ Create_table_options_db2_itemContext.prototype.ident = function(i) { }; Create_table_options_db2_itemContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_table_options_db2_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Create_table_options_db2_itemContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_table_options_db2_itemContext.prototype.T_DISTRIBUTE = function() { - return this.getToken(HiveSqlParser.T_DISTRIBUTE, 0); + return this.getToken(HiveSql.T_DISTRIBUTE, 0); }; Create_table_options_db2_itemContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Create_table_options_db2_itemContext.prototype.T_HASH = function() { - return this.getToken(HiveSqlParser.T_HASH, 0); + return this.getToken(HiveSql.T_HASH, 0); }; Create_table_options_db2_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_db2_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_db2_itemContext.prototype.T_COMMA = function(i) { @@ -10768,51 +10808,51 @@ Create_table_options_db2_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_options_db2_itemContext.prototype.T_LOGGED = function() { - return this.getToken(HiveSqlParser.T_LOGGED, 0); + return this.getToken(HiveSql.T_LOGGED, 0); }; Create_table_options_db2_itemContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_table_options_db2_itemContext.prototype.T_COMPRESS = function() { - return this.getToken(HiveSqlParser.T_COMPRESS, 0); + return this.getToken(HiveSql.T_COMPRESS, 0); }; Create_table_options_db2_itemContext.prototype.T_YES = function() { - return this.getToken(HiveSqlParser.T_YES, 0); + return this.getToken(HiveSql.T_YES, 0); }; Create_table_options_db2_itemContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Create_table_options_db2_itemContext.prototype.T_DEFINITION = function() { - return this.getToken(HiveSqlParser.T_DEFINITION, 0); + return this.getToken(HiveSql.T_DEFINITION, 0); }; Create_table_options_db2_itemContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Create_table_options_db2_itemContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Create_table_options_db2_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_db2_itemContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Create_table_options_db2_itemContext.prototype.enterRule = function(listener) { @@ -10838,91 +10878,91 @@ Create_table_options_db2_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_db2_itemContext = Create_table_options_db2_itemContext; +HiveSql.Create_table_options_db2_itemContext = Create_table_options_db2_itemContext; -HiveSqlParser.prototype.create_table_options_db2_item = function() { +HiveSql.prototype.create_table_options_db2_item = function() { var localctx = new Create_table_options_db2_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 96, HiveSqlParser.RULE_create_table_options_db2_item); + this.enterRule(localctx, 96, HiveSql.RULE_create_table_options_db2_item); var _la = 0; // Token type try { - this.state = 1119; + this.state = 1117; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,92,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1087; + this.state = 1085; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_INDEX) { - this.state = 1086; - this.match(HiveSqlParser.T_INDEX); + if(_la===HiveSql.T_INDEX) { + this.state = 1084; + this.match(HiveSql.T_INDEX); } - this.state = 1089; - this.match(HiveSqlParser.T_IN); - this.state = 1090; + this.state = 1087; + this.match(HiveSql.T_IN); + this.state = 1088; this.ident(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1091; - this.match(HiveSqlParser.T_WITH); - this.state = 1092; - this.match(HiveSqlParser.T_REPLACE); + this.state = 1089; + this.match(HiveSql.T_WITH); + this.state = 1090; + this.match(HiveSql.T_REPLACE); break; case 3: this.enterOuterAlt(localctx, 3); + this.state = 1091; + this.match(HiveSql.T_DISTRIBUTE); + this.state = 1092; + this.match(HiveSql.T_BY); this.state = 1093; - this.match(HiveSqlParser.T_DISTRIBUTE); + this.match(HiveSql.T_HASH); this.state = 1094; - this.match(HiveSqlParser.T_BY); + this.match(HiveSql.T_OPEN_P); this.state = 1095; - this.match(HiveSqlParser.T_HASH); - this.state = 1096; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1097; this.ident(); - this.state = 1102; + this.state = 1100; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1098; - this.match(HiveSqlParser.T_COMMA); - this.state = 1099; + while(_la===HiveSql.T_COMMA) { + this.state = 1096; + this.match(HiveSql.T_COMMA); + this.state = 1097; this.ident(); - this.state = 1104; + this.state = 1102; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1105; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1103; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1108; + this.state = 1106; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1107; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1105; + this.match(HiveSql.T_NOT); } - this.state = 1110; - this.match(HiveSqlParser.T_LOGGED); + this.state = 1108; + this.match(HiveSql.T_LOGGED); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1111; - this.match(HiveSqlParser.T_COMPRESS); - this.state = 1112; + this.state = 1109; + this.match(HiveSql.T_COMPRESS); + this.state = 1110; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_NO || _la===HiveSqlParser.T_YES)) { + if(!(_la===HiveSql.T_NO || _la===HiveSql.T_YES)) { this._errHandler.recoverInline(this); } else { @@ -10933,22 +10973,22 @@ HiveSqlParser.prototype.create_table_options_db2_item = function() { case 6: this.enterOuterAlt(localctx, 6); - this.state = 1113; - this.match(HiveSqlParser.T_DEFINITION); - this.state = 1114; - this.match(HiveSqlParser.T_ONLY); + this.state = 1111; + this.match(HiveSql.T_DEFINITION); + this.state = 1112; + this.match(HiveSql.T_ONLY); break; case 7: this.enterOuterAlt(localctx, 7); + this.state = 1113; + this.match(HiveSql.T_WITH); + this.state = 1114; + this.match(HiveSql.T_RESTRICT); this.state = 1115; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_ON); this.state = 1116; - this.match(HiveSqlParser.T_RESTRICT); - this.state = 1117; - this.match(HiveSqlParser.T_ON); - this.state = 1118; - this.match(HiveSqlParser.T_DROP); + this.match(HiveSql.T_DROP); break; } @@ -10976,7 +11016,7 @@ function Create_table_options_td_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_td_item; + this.ruleIndex = HiveSql.RULE_create_table_options_td_item; return this; } @@ -10984,15 +11024,15 @@ Create_table_options_td_itemContext.prototype = Object.create(antlr4.ParserRuleC Create_table_options_td_itemContext.prototype.constructor = Create_table_options_td_itemContext; Create_table_options_td_itemContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Create_table_options_td_itemContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_table_options_td_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_table_options_td_itemContext.prototype.ident = function(i) { @@ -11007,11 +11047,11 @@ Create_table_options_td_itemContext.prototype.ident = function(i) { }; Create_table_options_td_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_table_options_td_itemContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_table_options_td_itemContext.prototype.T_COMMA = function(i) { @@ -11019,19 +11059,19 @@ Create_table_options_td_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Create_table_options_td_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Create_table_options_td_itemContext.prototype.T_DATA = function() { - return this.getToken(HiveSqlParser.T_DATA, 0); + return this.getToken(HiveSql.T_DATA, 0); }; Create_table_options_td_itemContext.prototype.enterRule = function(listener) { @@ -11057,57 +11097,57 @@ Create_table_options_td_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_td_itemContext = Create_table_options_td_itemContext; +HiveSql.Create_table_options_td_itemContext = Create_table_options_td_itemContext; -HiveSqlParser.prototype.create_table_options_td_item = function() { +HiveSql.prototype.create_table_options_td_item = function() { var localctx = new Create_table_options_td_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 98, HiveSqlParser.RULE_create_table_options_td_item); + this.enterRule(localctx, 98, HiveSql.RULE_create_table_options_td_item); var _la = 0; // Token type try { - this.state = 1139; + this.state = 1137; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_UNIQUE: + case HiveSql.T_PRIMARY: + case HiveSql.T_UNIQUE: this.enterOuterAlt(localctx, 1); - this.state = 1122; + this.state = 1120; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UNIQUE) { - this.state = 1121; - this.match(HiveSqlParser.T_UNIQUE); + if(_la===HiveSql.T_UNIQUE) { + this.state = 1119; + this.match(HiveSql.T_UNIQUE); } + this.state = 1122; + this.match(HiveSql.T_PRIMARY); + this.state = 1123; + this.match(HiveSql.T_INDEX); this.state = 1124; - this.match(HiveSqlParser.T_PRIMARY); + this.match(HiveSql.T_OPEN_P); this.state = 1125; - this.match(HiveSqlParser.T_INDEX); - this.state = 1126; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1127; this.ident(); - this.state = 1132; + this.state = 1130; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1128; - this.match(HiveSqlParser.T_COMMA); - this.state = 1129; + while(_la===HiveSql.T_COMMA) { + this.state = 1126; + this.match(HiveSql.T_COMMA); + this.state = 1127; this.ident(); - this.state = 1134; + this.state = 1132; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1135; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1133; + this.match(HiveSql.T_CLOSE_P); break; - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 1137; - this.match(HiveSqlParser.T_WITH); - this.state = 1138; - this.match(HiveSqlParser.T_DATA); + this.state = 1135; + this.match(HiveSql.T_WITH); + this.state = 1136; + this.match(HiveSql.T_DATA); break; default: throw new antlr4.error.NoViableAltException(this); @@ -11136,7 +11176,7 @@ function Create_table_options_hive_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_hive_item; + this.ruleIndex = HiveSql.RULE_create_table_options_hive_item; return this; } @@ -11148,11 +11188,11 @@ Create_table_options_hive_itemContext.prototype.create_table_hive_row_format = f }; Create_table_options_hive_itemContext.prototype.T_STORED = function() { - return this.getToken(HiveSqlParser.T_STORED, 0); + return this.getToken(HiveSql.T_STORED, 0); }; Create_table_options_hive_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_options_hive_itemContext.prototype.ident = function() { @@ -11182,28 +11222,28 @@ Create_table_options_hive_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_hive_itemContext = Create_table_options_hive_itemContext; +HiveSql.Create_table_options_hive_itemContext = Create_table_options_hive_itemContext; -HiveSqlParser.prototype.create_table_options_hive_item = function() { +HiveSql.prototype.create_table_options_hive_item = function() { var localctx = new Create_table_options_hive_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 100, HiveSqlParser.RULE_create_table_options_hive_item); + this.enterRule(localctx, 100, HiveSql.RULE_create_table_options_hive_item); try { - this.state = 1145; + this.state = 1143; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_ROW: + case HiveSql.T_ROW: this.enterOuterAlt(localctx, 1); - this.state = 1141; + this.state = 1139; this.create_table_hive_row_format(); break; - case HiveSqlParser.T_STORED: + case HiveSql.T_STORED: this.enterOuterAlt(localctx, 2); + this.state = 1140; + this.match(HiveSql.T_STORED); + this.state = 1141; + this.match(HiveSql.T_AS); this.state = 1142; - this.match(HiveSqlParser.T_STORED); - this.state = 1143; - this.match(HiveSqlParser.T_AS); - this.state = 1144; this.ident(); break; default: @@ -11233,7 +11273,7 @@ function Create_table_hive_row_formatContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_hive_row_format; + this.ruleIndex = HiveSql.RULE_create_table_hive_row_format; return this; } @@ -11241,15 +11281,15 @@ Create_table_hive_row_formatContext.prototype = Object.create(antlr4.ParserRuleC Create_table_hive_row_formatContext.prototype.constructor = Create_table_hive_row_formatContext; Create_table_hive_row_formatContext.prototype.T_ROW = function() { - return this.getToken(HiveSqlParser.T_ROW, 0); + return this.getToken(HiveSql.T_ROW, 0); }; Create_table_hive_row_formatContext.prototype.T_FORMAT = function() { - return this.getToken(HiveSqlParser.T_FORMAT, 0); + return this.getToken(HiveSql.T_FORMAT, 0); }; Create_table_hive_row_formatContext.prototype.T_DELIMITED = function() { - return this.getToken(HiveSqlParser.T_DELIMITED, 0); + return this.getToken(HiveSql.T_DELIMITED, 0); }; Create_table_hive_row_formatContext.prototype.create_table_hive_row_format_fields = function(i) { @@ -11286,29 +11326,29 @@ Create_table_hive_row_formatContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_hive_row_formatContext = Create_table_hive_row_formatContext; +HiveSql.Create_table_hive_row_formatContext = Create_table_hive_row_formatContext; -HiveSqlParser.prototype.create_table_hive_row_format = function() { +HiveSql.prototype.create_table_hive_row_format = function() { var localctx = new Create_table_hive_row_formatContext(this, this._ctx, this.state); - this.enterRule(localctx, 102, HiveSqlParser.RULE_create_table_hive_row_format); + this.enterRule(localctx, 102, HiveSql.RULE_create_table_hive_row_format); try { this.enterOuterAlt(localctx, 1); + this.state = 1145; + this.match(HiveSql.T_ROW); + this.state = 1146; + this.match(HiveSql.T_FORMAT); this.state = 1147; - this.match(HiveSqlParser.T_ROW); - this.state = 1148; - this.match(HiveSqlParser.T_FORMAT); - this.state = 1149; - this.match(HiveSqlParser.T_DELIMITED); - this.state = 1153; + this.match(HiveSql.T_DELIMITED); + this.state = 1151; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,97,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1150; + this.state = 1148; this.create_table_hive_row_format_fields(); } - this.state = 1155; + this.state = 1153; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,97,this._ctx); } @@ -11337,7 +11377,7 @@ function Create_table_hive_row_format_fieldsContext(parser, parent, invokingStat } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_hive_row_format_fields; + this.ruleIndex = HiveSql.RULE_create_table_hive_row_format_fields; return this; } @@ -11345,11 +11385,11 @@ Create_table_hive_row_format_fieldsContext.prototype = Object.create(antlr4.Pars Create_table_hive_row_format_fieldsContext.prototype.constructor = Create_table_hive_row_format_fieldsContext; Create_table_hive_row_format_fieldsContext.prototype.T_FIELDS = function() { - return this.getToken(HiveSqlParser.T_FIELDS, 0); + return this.getToken(HiveSql.T_FIELDS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_TERMINATED = function() { - return this.getToken(HiveSqlParser.T_TERMINATED, 0); + return this.getToken(HiveSql.T_TERMINATED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_BY = function(i) { @@ -11357,9 +11397,9 @@ Create_table_hive_row_format_fieldsContext.prototype.T_BY = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_BY); + return this.getTokens(HiveSql.T_BY); } else { - return this.getToken(HiveSqlParser.T_BY, i); + return this.getToken(HiveSql.T_BY, i); } }; @@ -11376,39 +11416,39 @@ Create_table_hive_row_format_fieldsContext.prototype.expr = function(i) { }; Create_table_hive_row_format_fieldsContext.prototype.T_ESCAPED = function() { - return this.getToken(HiveSqlParser.T_ESCAPED, 0); + return this.getToken(HiveSql.T_ESCAPED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_COLLECTION = function() { - return this.getToken(HiveSqlParser.T_COLLECTION, 0); + return this.getToken(HiveSql.T_COLLECTION, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_ITEMS = function() { - return this.getToken(HiveSqlParser.T_ITEMS, 0); + return this.getToken(HiveSql.T_ITEMS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_KEYS = function() { - return this.getToken(HiveSqlParser.T_KEYS, 0); + return this.getToken(HiveSql.T_KEYS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_LINES = function() { - return this.getToken(HiveSqlParser.T_LINES, 0); + return this.getToken(HiveSql.T_LINES, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_DEFINED = function() { - return this.getToken(HiveSqlParser.T_DEFINED, 0); + return this.getToken(HiveSql.T_DEFINED, 0); }; Create_table_hive_row_format_fieldsContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_table_hive_row_format_fieldsContext.prototype.enterRule = function(listener) { @@ -11434,85 +11474,85 @@ Create_table_hive_row_format_fieldsContext.prototype.accept = function(visitor) -HiveSqlParser.Create_table_hive_row_format_fieldsContext = Create_table_hive_row_format_fieldsContext; +HiveSql.Create_table_hive_row_format_fieldsContext = Create_table_hive_row_format_fieldsContext; -HiveSqlParser.prototype.create_table_hive_row_format_fields = function() { +HiveSql.prototype.create_table_hive_row_format_fields = function() { var localctx = new Create_table_hive_row_format_fieldsContext(this, this._ctx, this.state); - this.enterRule(localctx, 104, HiveSqlParser.RULE_create_table_hive_row_format_fields); + this.enterRule(localctx, 104, HiveSql.RULE_create_table_hive_row_format_fields); try { - this.state = 1183; + this.state = 1181; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_FIELDS: + case HiveSql.T_FIELDS: this.enterOuterAlt(localctx, 1); + this.state = 1154; + this.match(HiveSql.T_FIELDS); + this.state = 1155; + this.match(HiveSql.T_TERMINATED); this.state = 1156; - this.match(HiveSqlParser.T_FIELDS); + this.match(HiveSql.T_BY); this.state = 1157; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1158; - this.match(HiveSqlParser.T_BY); - this.state = 1159; this.expr(0); - this.state = 1163; + this.state = 1161; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,98,this._ctx); if(la_===1) { + this.state = 1158; + this.match(HiveSql.T_ESCAPED); + this.state = 1159; + this.match(HiveSql.T_BY); this.state = 1160; - this.match(HiveSqlParser.T_ESCAPED); - this.state = 1161; - this.match(HiveSqlParser.T_BY); - this.state = 1162; this.expr(0); } break; - case HiveSqlParser.T_COLLECTION: + case HiveSql.T_COLLECTION: this.enterOuterAlt(localctx, 2); + this.state = 1163; + this.match(HiveSql.T_COLLECTION); + this.state = 1164; + this.match(HiveSql.T_ITEMS); this.state = 1165; - this.match(HiveSqlParser.T_COLLECTION); + this.match(HiveSql.T_TERMINATED); this.state = 1166; - this.match(HiveSqlParser.T_ITEMS); + this.match(HiveSql.T_BY); this.state = 1167; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1168; - this.match(HiveSqlParser.T_BY); - this.state = 1169; this.expr(0); break; - case HiveSqlParser.T_MAP: + case HiveSql.T_MAP: this.enterOuterAlt(localctx, 3); + this.state = 1168; + this.match(HiveSql.T_MAP); + this.state = 1169; + this.match(HiveSql.T_KEYS); this.state = 1170; - this.match(HiveSqlParser.T_MAP); + this.match(HiveSql.T_TERMINATED); this.state = 1171; - this.match(HiveSqlParser.T_KEYS); + this.match(HiveSql.T_BY); this.state = 1172; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1173; - this.match(HiveSqlParser.T_BY); - this.state = 1174; this.expr(0); break; - case HiveSqlParser.T_LINES: + case HiveSql.T_LINES: this.enterOuterAlt(localctx, 4); + this.state = 1173; + this.match(HiveSql.T_LINES); + this.state = 1174; + this.match(HiveSql.T_TERMINATED); this.state = 1175; - this.match(HiveSqlParser.T_LINES); + this.match(HiveSql.T_BY); this.state = 1176; - this.match(HiveSqlParser.T_TERMINATED); - this.state = 1177; - this.match(HiveSqlParser.T_BY); - this.state = 1178; this.expr(0); break; - case HiveSqlParser.T_NULL: + case HiveSql.T_NULL: this.enterOuterAlt(localctx, 5); + this.state = 1177; + this.match(HiveSql.T_NULL); + this.state = 1178; + this.match(HiveSql.T_DEFINED); this.state = 1179; - this.match(HiveSqlParser.T_NULL); + this.match(HiveSql.T_AS); this.state = 1180; - this.match(HiveSqlParser.T_DEFINED); - this.state = 1181; - this.match(HiveSqlParser.T_AS); - this.state = 1182; this.expr(0); break; default: @@ -11542,7 +11582,7 @@ function Create_table_options_mssql_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_mssql_item; + this.ruleIndex = HiveSql.RULE_create_table_options_mssql_item; return this; } @@ -11550,7 +11590,7 @@ Create_table_options_mssql_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_options_mssql_itemContext.prototype.constructor = Create_table_options_mssql_itemContext; Create_table_options_mssql_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_table_options_mssql_itemContext.prototype.ident = function() { @@ -11558,7 +11598,7 @@ Create_table_options_mssql_itemContext.prototype.ident = function() { }; Create_table_options_mssql_itemContext.prototype.T_TEXTIMAGE_ON = function() { - return this.getToken(HiveSqlParser.T_TEXTIMAGE_ON, 0); + return this.getToken(HiveSql.T_TEXTIMAGE_ON, 0); }; Create_table_options_mssql_itemContext.prototype.enterRule = function(listener) { @@ -11584,28 +11624,28 @@ Create_table_options_mssql_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_mssql_itemContext = Create_table_options_mssql_itemContext; +HiveSql.Create_table_options_mssql_itemContext = Create_table_options_mssql_itemContext; -HiveSqlParser.prototype.create_table_options_mssql_item = function() { +HiveSql.prototype.create_table_options_mssql_item = function() { var localctx = new Create_table_options_mssql_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 106, HiveSqlParser.RULE_create_table_options_mssql_item); + this.enterRule(localctx, 106, HiveSql.RULE_create_table_options_mssql_item); try { - this.state = 1189; + this.state = 1187; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_ON: + case HiveSql.T_ON: this.enterOuterAlt(localctx, 1); - this.state = 1185; - this.match(HiveSqlParser.T_ON); - this.state = 1186; + this.state = 1183; + this.match(HiveSql.T_ON); + this.state = 1184; this.ident(); break; - case HiveSqlParser.T_TEXTIMAGE_ON: + case HiveSql.T_TEXTIMAGE_ON: this.enterOuterAlt(localctx, 2); - this.state = 1187; - this.match(HiveSqlParser.T_TEXTIMAGE_ON); - this.state = 1188; + this.state = 1185; + this.match(HiveSql.T_TEXTIMAGE_ON); + this.state = 1186; this.ident(); break; default: @@ -11635,7 +11675,7 @@ function Create_table_options_mysql_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_table_options_mysql_item; + this.ruleIndex = HiveSql.RULE_create_table_options_mysql_item; return this; } @@ -11643,7 +11683,7 @@ Create_table_options_mysql_itemContext.prototype = Object.create(antlr4.ParserRu Create_table_options_mysql_itemContext.prototype.constructor = Create_table_options_mysql_itemContext; Create_table_options_mysql_itemContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Create_table_options_mysql_itemContext.prototype.expr = function() { @@ -11651,31 +11691,31 @@ Create_table_options_mysql_itemContext.prototype.expr = function() { }; Create_table_options_mysql_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Create_table_options_mysql_itemContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Create_table_options_mysql_itemContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Create_table_options_mysql_itemContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Create_table_options_mysql_itemContext.prototype.T_CHARSET = function() { - return this.getToken(HiveSqlParser.T_CHARSET, 0); + return this.getToken(HiveSql.T_CHARSET, 0); }; Create_table_options_mysql_itemContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Create_table_options_mysql_itemContext.prototype.T_ENGINE = function() { - return this.getToken(HiveSqlParser.T_ENGINE, 0); + return this.getToken(HiveSql.T_ENGINE, 0); }; Create_table_options_mysql_itemContext.prototype.enterRule = function(listener) { @@ -11701,99 +11741,99 @@ Create_table_options_mysql_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_table_options_mysql_itemContext = Create_table_options_mysql_itemContext; +HiveSql.Create_table_options_mysql_itemContext = Create_table_options_mysql_itemContext; -HiveSqlParser.prototype.create_table_options_mysql_item = function() { +HiveSql.prototype.create_table_options_mysql_item = function() { var localctx = new Create_table_options_mysql_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 108, HiveSqlParser.RULE_create_table_options_mysql_item); + this.enterRule(localctx, 108, HiveSql.RULE_create_table_options_mysql_item); var _la = 0; // Token type try { - this.state = 1218; + this.state = 1216; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AUTO_INCREMENT: + case HiveSql.T_AUTO_INCREMENT: this.enterOuterAlt(localctx, 1); + this.state = 1189; + this.match(HiveSql.T_AUTO_INCREMENT); this.state = 1191; - this.match(HiveSqlParser.T_AUTO_INCREMENT); + this._errHandler.sync(this); + _la = this._input.LA(1); + if(_la===HiveSql.T_EQUAL) { + this.state = 1190; + this.match(HiveSql.T_EQUAL); + } + this.state = 1193; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1192; - this.match(HiveSqlParser.T_EQUAL); - } - - this.state = 1195; this.expr(0); break; - case HiveSqlParser.T_COMMENT: + case HiveSql.T_COMMENT: this.enterOuterAlt(localctx, 2); + this.state = 1194; + this.match(HiveSql.T_COMMENT); this.state = 1196; - this.match(HiveSqlParser.T_COMMENT); - this.state = 1198; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1197; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1195; + this.match(HiveSql.T_EQUAL); } - this.state = 1200; + this.state = 1198; this.expr(0); break; - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_DEFAULT: this.enterOuterAlt(localctx, 3); - this.state = 1202; + this.state = 1200; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DEFAULT) { - this.state = 1201; - this.match(HiveSqlParser.T_DEFAULT); + if(_la===HiveSql.T_DEFAULT) { + this.state = 1199; + this.match(HiveSql.T_DEFAULT); } - this.state = 1207; + this.state = 1205; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_CHARACTER: - this.state = 1204; - this.match(HiveSqlParser.T_CHARACTER); - this.state = 1205; - this.match(HiveSqlParser.T_SET); + case HiveSql.T_CHARACTER: + this.state = 1202; + this.match(HiveSql.T_CHARACTER); + this.state = 1203; + this.match(HiveSql.T_SET); break; - case HiveSqlParser.T_CHARSET: - this.state = 1206; - this.match(HiveSqlParser.T_CHARSET); + case HiveSql.T_CHARSET: + this.state = 1204; + this.match(HiveSql.T_CHARSET); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1210; + this.state = 1208; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1209; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1207; + this.match(HiveSql.T_EQUAL); } - this.state = 1212; + this.state = 1210; this.expr(0); break; - case HiveSqlParser.T_ENGINE: + case HiveSql.T_ENGINE: this.enterOuterAlt(localctx, 4); + this.state = 1211; + this.match(HiveSql.T_ENGINE); this.state = 1213; - this.match(HiveSqlParser.T_ENGINE); - this.state = 1215; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 1214; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 1212; + this.match(HiveSql.T_EQUAL); } - this.state = 1217; + this.state = 1215; this.expr(0); break; default: @@ -11823,7 +11863,7 @@ function Alter_table_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_stmt; + this.ruleIndex = HiveSql.RULE_alter_table_stmt; return this; } @@ -11831,11 +11871,11 @@ Alter_table_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.proto Alter_table_stmtContext.prototype.constructor = Alter_table_stmtContext; Alter_table_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Alter_table_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Alter_table_stmtContext.prototype.table_name = function() { @@ -11869,21 +11909,21 @@ Alter_table_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_stmtContext = Alter_table_stmtContext; +HiveSql.Alter_table_stmtContext = Alter_table_stmtContext; -HiveSqlParser.prototype.alter_table_stmt = function() { +HiveSql.prototype.alter_table_stmt = function() { var localctx = new Alter_table_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 110, HiveSqlParser.RULE_alter_table_stmt); + this.enterRule(localctx, 110, HiveSql.RULE_alter_table_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 1218; + this.match(HiveSql.T_ALTER); + this.state = 1219; + this.match(HiveSql.T_TABLE); this.state = 1220; - this.match(HiveSqlParser.T_ALTER); - this.state = 1221; - this.match(HiveSqlParser.T_TABLE); - this.state = 1222; this.table_name(); - this.state = 1223; + this.state = 1221; this.alter_table_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -11909,7 +11949,7 @@ function Alter_table_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_item; + this.ruleIndex = HiveSql.RULE_alter_table_item; return this; } @@ -11943,15 +11983,15 @@ Alter_table_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_itemContext = Alter_table_itemContext; +HiveSql.Alter_table_itemContext = Alter_table_itemContext; -HiveSqlParser.prototype.alter_table_item = function() { +HiveSql.prototype.alter_table_item = function() { var localctx = new Alter_table_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 112, HiveSqlParser.RULE_alter_table_item); + this.enterRule(localctx, 112, HiveSql.RULE_alter_table_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1225; + this.state = 1223; this.alter_table_add_constraint(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -11977,7 +12017,7 @@ function Alter_table_add_constraintContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_add_constraint; + this.ruleIndex = HiveSql.RULE_alter_table_add_constraint; return this; } @@ -11985,7 +12025,7 @@ Alter_table_add_constraintContext.prototype = Object.create(antlr4.ParserRuleCon Alter_table_add_constraintContext.prototype.constructor = Alter_table_add_constraintContext; Alter_table_add_constraintContext.prototype.T_ADD2 = function() { - return this.getToken(HiveSqlParser.T_ADD2, 0); + return this.getToken(HiveSql.T_ADD2, 0); }; Alter_table_add_constraintContext.prototype.alter_table_add_constraint_item = function() { @@ -11993,7 +12033,7 @@ Alter_table_add_constraintContext.prototype.alter_table_add_constraint_item = fu }; Alter_table_add_constraintContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Alter_table_add_constraintContext.prototype.ident = function() { @@ -12023,28 +12063,28 @@ Alter_table_add_constraintContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_add_constraintContext = Alter_table_add_constraintContext; +HiveSql.Alter_table_add_constraintContext = Alter_table_add_constraintContext; -HiveSqlParser.prototype.alter_table_add_constraint = function() { +HiveSql.prototype.alter_table_add_constraint = function() { var localctx = new Alter_table_add_constraintContext(this, this._ctx, this.state); - this.enterRule(localctx, 114, HiveSqlParser.RULE_alter_table_add_constraint); + this.enterRule(localctx, 114, HiveSql.RULE_alter_table_add_constraint); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1227; - this.match(HiveSqlParser.T_ADD2); - this.state = 1230; + this.state = 1225; + this.match(HiveSql.T_ADD2); + this.state = 1228; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CONSTRAINT) { - this.state = 1228; - this.match(HiveSqlParser.T_CONSTRAINT); - this.state = 1229; + if(_la===HiveSql.T_CONSTRAINT) { + this.state = 1226; + this.match(HiveSql.T_CONSTRAINT); + this.state = 1227; this.ident(); } - this.state = 1232; + this.state = 1230; this.alter_table_add_constraint_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -12070,7 +12110,7 @@ function Alter_table_add_constraint_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_alter_table_add_constraint_item; + this.ruleIndex = HiveSql.RULE_alter_table_add_constraint_item; return this; } @@ -12078,11 +12118,11 @@ Alter_table_add_constraint_itemContext.prototype = Object.create(antlr4.ParserRu Alter_table_add_constraint_itemContext.prototype.constructor = Alter_table_add_constraint_itemContext; Alter_table_add_constraint_itemContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Alter_table_add_constraint_itemContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Alter_table_add_constraint_itemContext.prototype.T_OPEN_P = function(i) { @@ -12090,9 +12130,9 @@ Alter_table_add_constraint_itemContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -12113,15 +12153,15 @@ Alter_table_add_constraint_itemContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Alter_table_add_constraint_itemContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Alter_table_add_constraint_itemContext.prototype.T_COMMA = function(i) { @@ -12129,15 +12169,15 @@ Alter_table_add_constraint_itemContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Alter_table_add_constraint_itemContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Alter_table_add_constraint_itemContext.prototype.index_storage_clause = function() { @@ -12149,9 +12189,9 @@ Alter_table_add_constraint_itemContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -12161,19 +12201,19 @@ Alter_table_add_constraint_itemContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; Alter_table_add_constraint_itemContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Alter_table_add_constraint_itemContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Alter_table_add_constraint_itemContext.prototype.table_name = function() { @@ -12192,7 +12232,7 @@ Alter_table_add_constraint_itemContext.prototype.create_table_fk_action = functi }; Alter_table_add_constraint_itemContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Alter_table_add_constraint_itemContext.prototype.expr = function() { @@ -12200,7 +12240,7 @@ Alter_table_add_constraint_itemContext.prototype.expr = function() { }; Alter_table_add_constraint_itemContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Alter_table_add_constraint_itemContext.prototype.enterRule = function(listener) { @@ -12226,42 +12266,42 @@ Alter_table_add_constraint_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Alter_table_add_constraint_itemContext = Alter_table_add_constraint_itemContext; +HiveSql.Alter_table_add_constraint_itemContext = Alter_table_add_constraint_itemContext; -HiveSqlParser.prototype.alter_table_add_constraint_item = function() { +HiveSql.prototype.alter_table_add_constraint_item = function() { var localctx = new Alter_table_add_constraint_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 116, HiveSqlParser.RULE_alter_table_add_constraint_item); + this.enterRule(localctx, 116, HiveSql.RULE_alter_table_add_constraint_item); var _la = 0; // Token type try { - this.state = 1296; + this.state = 1294; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_PRIMARY: + case HiveSql.T_PRIMARY: this.enterOuterAlt(localctx, 1); - this.state = 1234; - this.match(HiveSqlParser.T_PRIMARY); + this.state = 1232; + this.match(HiveSql.T_PRIMARY); + this.state = 1233; + this.match(HiveSql.T_KEY); this.state = 1235; - this.match(HiveSqlParser.T_KEY); - this.state = 1237; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLUSTERED) { - this.state = 1236; - this.match(HiveSqlParser.T_CLUSTERED); + if(_la===HiveSql.T_CLUSTERED) { + this.state = 1234; + this.match(HiveSql.T_CLUSTERED); } - this.state = 1239; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1240; + this.state = 1237; + this.match(HiveSql.T_OPEN_P); + this.state = 1238; this.ident(); - this.state = 1242; + this.state = 1240; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1241; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1239; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -12270,21 +12310,21 @@ HiveSqlParser.prototype.alter_table_add_constraint_item = function() { } } - this.state = 1251; + this.state = 1249; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1244; - this.match(HiveSqlParser.T_COMMA); - this.state = 1245; + while(_la===HiveSql.T_COMMA) { + this.state = 1242; + this.match(HiveSql.T_COMMA); + this.state = 1243; this.ident(); - this.state = 1247; + this.state = 1245; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1246; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1244; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -12293,98 +12333,98 @@ HiveSqlParser.prototype.alter_table_add_constraint_item = function() { } } - this.state = 1253; + this.state = 1251; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 1252; + this.match(HiveSql.T_CLOSE_P); this.state = 1254; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1256; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,113,this._ctx); if(la_===1) { - this.state = 1255; - this.match(HiveSqlParser.T_ENABLE); + this.state = 1253; + this.match(HiveSql.T_ENABLE); } - this.state = 1259; + this.state = 1257; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,114,this._ctx); if(la_===1) { - this.state = 1258; + this.state = 1256; this.index_storage_clause(); } break; - case HiveSqlParser.T_FOREIGN: + case HiveSql.T_FOREIGN: this.enterOuterAlt(localctx, 2); + this.state = 1259; + this.match(HiveSql.T_FOREIGN); + this.state = 1260; + this.match(HiveSql.T_KEY); this.state = 1261; - this.match(HiveSqlParser.T_FOREIGN); + this.match(HiveSql.T_OPEN_P); this.state = 1262; - this.match(HiveSqlParser.T_KEY); - this.state = 1263; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1264; this.ident(); - this.state = 1269; + this.state = 1267; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1265; - this.match(HiveSqlParser.T_COMMA); - this.state = 1266; + while(_la===HiveSql.T_COMMA) { + this.state = 1263; + this.match(HiveSql.T_COMMA); + this.state = 1264; this.ident(); - this.state = 1271; + this.state = 1269; this._errHandler.sync(this); _la = this._input.LA(1); } + this.state = 1270; + this.match(HiveSql.T_CLOSE_P); + this.state = 1271; + this.match(HiveSql.T_REFERENCES); this.state = 1272; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1273; - this.match(HiveSqlParser.T_REFERENCES); - this.state = 1274; this.table_name(); - this.state = 1275; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1276; + this.state = 1273; + this.match(HiveSql.T_OPEN_P); + this.state = 1274; this.ident(); - this.state = 1281; + this.state = 1279; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1277; - this.match(HiveSqlParser.T_COMMA); - this.state = 1278; + while(_la===HiveSql.T_COMMA) { + this.state = 1275; + this.match(HiveSql.T_COMMA); + this.state = 1276; this.ident(); - this.state = 1283; + this.state = 1281; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1284; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 1288; + this.state = 1282; + this.match(HiveSql.T_CLOSE_P); + this.state = 1286; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,117,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1285; + this.state = 1283; this.create_table_fk_action(); } - this.state = 1290; + this.state = 1288; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,117,this._ctx); } break; - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: this.enterOuterAlt(localctx, 3); - this.state = 1291; - this.match(HiveSqlParser.T_DEFAULT); - this.state = 1292; + this.state = 1289; + this.match(HiveSql.T_DEFAULT); + this.state = 1290; this.expr(0); - this.state = 1293; - this.match(HiveSqlParser.T_FOR); - this.state = 1294; + this.state = 1291; + this.match(HiveSql.T_FOR); + this.state = 1292; this.ident(); break; default: @@ -12414,7 +12454,7 @@ function DtypeContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype; + this.ruleIndex = HiveSql.RULE_dtype; return this; } @@ -12422,171 +12462,171 @@ DtypeContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); DtypeContext.prototype.constructor = DtypeContext; DtypeContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); -}; - -DtypeContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; DtypeContext.prototype.T_BIGINT = function() { - return this.getToken(HiveSqlParser.T_BIGINT, 0); + return this.getToken(HiveSql.T_BIGINT, 0); }; DtypeContext.prototype.T_BINARY_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_BINARY_DOUBLE, 0); + return this.getToken(HiveSql.T_BINARY_DOUBLE, 0); }; DtypeContext.prototype.T_BINARY_FLOAT = function() { - return this.getToken(HiveSqlParser.T_BINARY_FLOAT, 0); + return this.getToken(HiveSql.T_BINARY_FLOAT, 0); }; DtypeContext.prototype.T_BINARY_INTEGER = function() { - return this.getToken(HiveSqlParser.T_BINARY_INTEGER, 0); + return this.getToken(HiveSql.T_BINARY_INTEGER, 0); }; DtypeContext.prototype.T_BIT = function() { - return this.getToken(HiveSqlParser.T_BIT, 0); + return this.getToken(HiveSql.T_BIT, 0); }; DtypeContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; DtypeContext.prototype.T_DATETIME = function() { - return this.getToken(HiveSqlParser.T_DATETIME, 0); + return this.getToken(HiveSql.T_DATETIME, 0); }; DtypeContext.prototype.T_DEC = function() { - return this.getToken(HiveSqlParser.T_DEC, 0); + return this.getToken(HiveSql.T_DEC, 0); }; DtypeContext.prototype.T_DECIMAL = function() { - return this.getToken(HiveSqlParser.T_DECIMAL, 0); + return this.getToken(HiveSql.T_DECIMAL, 0); }; DtypeContext.prototype.T_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_DOUBLE, 0); + return this.getToken(HiveSql.T_DOUBLE, 0); }; DtypeContext.prototype.T_PRECISION = function() { - return this.getToken(HiveSqlParser.T_PRECISION, 0); + return this.getToken(HiveSql.T_PRECISION, 0); }; DtypeContext.prototype.T_FLOAT = function() { - return this.getToken(HiveSqlParser.T_FLOAT, 0); + return this.getToken(HiveSql.T_FLOAT, 0); }; DtypeContext.prototype.T_INT = function() { - return this.getToken(HiveSqlParser.T_INT, 0); + return this.getToken(HiveSql.T_INT, 0); }; DtypeContext.prototype.T_INT2 = function() { - return this.getToken(HiveSqlParser.T_INT2, 0); + return this.getToken(HiveSql.T_INT2, 0); }; DtypeContext.prototype.T_INT4 = function() { - return this.getToken(HiveSqlParser.T_INT4, 0); + return this.getToken(HiveSql.T_INT4, 0); }; DtypeContext.prototype.T_INT8 = function() { - return this.getToken(HiveSqlParser.T_INT8, 0); + return this.getToken(HiveSql.T_INT8, 0); }; DtypeContext.prototype.T_INTEGER = function() { - return this.getToken(HiveSqlParser.T_INTEGER, 0); + return this.getToken(HiveSql.T_INTEGER, 0); }; DtypeContext.prototype.T_NCHAR = function() { - return this.getToken(HiveSqlParser.T_NCHAR, 0); + return this.getToken(HiveSql.T_NCHAR, 0); }; DtypeContext.prototype.T_NVARCHAR = function() { - return this.getToken(HiveSqlParser.T_NVARCHAR, 0); + return this.getToken(HiveSql.T_NVARCHAR, 0); }; DtypeContext.prototype.T_NUMBER = function() { - return this.getToken(HiveSqlParser.T_NUMBER, 0); + return this.getToken(HiveSql.T_NUMBER, 0); }; DtypeContext.prototype.T_NUMERIC = function() { - return this.getToken(HiveSqlParser.T_NUMERIC, 0); + return this.getToken(HiveSql.T_NUMERIC, 0); }; DtypeContext.prototype.T_PLS_INTEGER = function() { - return this.getToken(HiveSqlParser.T_PLS_INTEGER, 0); + return this.getToken(HiveSql.T_PLS_INTEGER, 0); }; DtypeContext.prototype.T_REAL = function() { - return this.getToken(HiveSqlParser.T_REAL, 0); + return this.getToken(HiveSql.T_REAL, 0); }; DtypeContext.prototype.T_RESULT_SET_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_RESULT_SET_LOCATOR, 0); + return this.getToken(HiveSql.T_RESULT_SET_LOCATOR, 0); }; DtypeContext.prototype.T_VARYING = function() { - return this.getToken(HiveSqlParser.T_VARYING, 0); + return this.getToken(HiveSql.T_VARYING, 0); }; DtypeContext.prototype.T_SIMPLE_FLOAT = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_FLOAT, 0); + return this.getToken(HiveSql.T_SIMPLE_FLOAT, 0); }; DtypeContext.prototype.T_SIMPLE_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_DOUBLE, 0); + return this.getToken(HiveSql.T_SIMPLE_DOUBLE, 0); }; DtypeContext.prototype.T_SIMPLE_INTEGER = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_INTEGER, 0); + return this.getToken(HiveSql.T_SIMPLE_INTEGER, 0); }; DtypeContext.prototype.T_SMALLINT = function() { - return this.getToken(HiveSqlParser.T_SMALLINT, 0); + return this.getToken(HiveSql.T_SMALLINT, 0); }; DtypeContext.prototype.T_SMALLDATETIME = function() { - return this.getToken(HiveSqlParser.T_SMALLDATETIME, 0); + return this.getToken(HiveSql.T_SMALLDATETIME, 0); }; DtypeContext.prototype.T_STRING = function() { - return this.getToken(HiveSqlParser.T_STRING, 0); + return this.getToken(HiveSql.T_STRING, 0); }; DtypeContext.prototype.T_SYS_REFCURSOR = function() { - return this.getToken(HiveSqlParser.T_SYS_REFCURSOR, 0); + return this.getToken(HiveSql.T_SYS_REFCURSOR, 0); }; DtypeContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; DtypeContext.prototype.T_TINYINT = function() { - return this.getToken(HiveSqlParser.T_TINYINT, 0); + return this.getToken(HiveSql.T_TINYINT, 0); }; DtypeContext.prototype.T_VARCHAR = function() { - return this.getToken(HiveSqlParser.T_VARCHAR, 0); + return this.getToken(HiveSql.T_VARCHAR, 0); }; DtypeContext.prototype.T_VARCHAR2 = function() { - return this.getToken(HiveSqlParser.T_VARCHAR2, 0); + return this.getToken(HiveSql.T_VARCHAR2, 0); }; DtypeContext.prototype.T_XML = function() { - return this.getToken(HiveSqlParser.T_XML, 0); + return this.getToken(HiveSql.T_XML, 0); }; DtypeContext.prototype.ident = function() { return this.getTypedRuleContext(IdentContext,0); }; +DtypeContext.prototype.T_PRECENT = function() { + return this.getToken(HiveSql.T_PRECENT, 0); +}; + DtypeContext.prototype.T_TYPE = function() { - return this.getToken(HiveSqlParser.T_TYPE, 0); + return this.getToken(HiveSql.T_TYPE, 0); }; DtypeContext.prototype.T_ROWTYPE = function() { - return this.getToken(HiveSqlParser.T_ROWTYPE, 0); + return this.getToken(HiveSql.T_ROWTYPE, 0); }; DtypeContext.prototype.enterRule = function(listener) { @@ -12612,263 +12652,257 @@ DtypeContext.prototype.accept = function(visitor) { -HiveSqlParser.DtypeContext = DtypeContext; +HiveSql.DtypeContext = DtypeContext; -HiveSqlParser.prototype.dtype = function() { +HiveSql.prototype.dtype = function() { var localctx = new DtypeContext(this, this._ctx, this.state); - this.enterRule(localctx, 118, HiveSqlParser.RULE_dtype); + this.enterRule(localctx, 118, HiveSql.RULE_dtype); var _la = 0; // Token type try { - this.state = 1344; + this.state = 1341; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,121,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1298; - this.match(HiveSqlParser.T_CHAR); + this.state = 1296; + this.match(HiveSql.T_CHAR); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1299; - this.match(HiveSqlParser.T_CHARACTER); + this.state = 1297; + this.match(HiveSql.T_BIGINT); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1300; - this.match(HiveSqlParser.T_BIGINT); + this.state = 1298; + this.match(HiveSql.T_BINARY_DOUBLE); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 1301; - this.match(HiveSqlParser.T_BINARY_DOUBLE); + this.state = 1299; + this.match(HiveSql.T_BINARY_FLOAT); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 1302; - this.match(HiveSqlParser.T_BINARY_FLOAT); + this.state = 1300; + this.match(HiveSql.T_BINARY_INTEGER); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 1303; - this.match(HiveSqlParser.T_BINARY_INTEGER); + this.state = 1301; + this.match(HiveSql.T_BIT); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 1304; - this.match(HiveSqlParser.T_BIT); + this.state = 1302; + this.match(HiveSql.T_DATE); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 1305; - this.match(HiveSqlParser.T_DATE); + this.state = 1303; + this.match(HiveSql.T_DATETIME); break; case 9: this.enterOuterAlt(localctx, 9); - this.state = 1306; - this.match(HiveSqlParser.T_DATETIME); + this.state = 1304; + this.match(HiveSql.T_DEC); break; case 10: this.enterOuterAlt(localctx, 10); - this.state = 1307; - this.match(HiveSqlParser.T_DEC); + this.state = 1305; + this.match(HiveSql.T_DECIMAL); break; case 11: this.enterOuterAlt(localctx, 11); + this.state = 1306; + this.match(HiveSql.T_DOUBLE); this.state = 1308; - this.match(HiveSqlParser.T_DECIMAL); - break; - - case 12: - this.enterOuterAlt(localctx, 12); - this.state = 1309; - this.match(HiveSqlParser.T_DOUBLE); - this.state = 1311; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,119,this._ctx); if(la_===1) { - this.state = 1310; - this.match(HiveSqlParser.T_PRECISION); + this.state = 1307; + this.match(HiveSql.T_PRECISION); } break; + case 12: + this.enterOuterAlt(localctx, 12); + this.state = 1310; + this.match(HiveSql.T_FLOAT); + break; + case 13: this.enterOuterAlt(localctx, 13); - this.state = 1313; - this.match(HiveSqlParser.T_FLOAT); + this.state = 1311; + this.match(HiveSql.T_INT); break; case 14: this.enterOuterAlt(localctx, 14); - this.state = 1314; - this.match(HiveSqlParser.T_INT); + this.state = 1312; + this.match(HiveSql.T_INT2); break; case 15: this.enterOuterAlt(localctx, 15); - this.state = 1315; - this.match(HiveSqlParser.T_INT2); + this.state = 1313; + this.match(HiveSql.T_INT4); break; case 16: this.enterOuterAlt(localctx, 16); - this.state = 1316; - this.match(HiveSqlParser.T_INT4); + this.state = 1314; + this.match(HiveSql.T_INT8); break; case 17: this.enterOuterAlt(localctx, 17); - this.state = 1317; - this.match(HiveSqlParser.T_INT8); + this.state = 1315; + this.match(HiveSql.T_INTEGER); break; case 18: this.enterOuterAlt(localctx, 18); - this.state = 1318; - this.match(HiveSqlParser.T_INTEGER); + this.state = 1316; + this.match(HiveSql.T_NCHAR); break; case 19: this.enterOuterAlt(localctx, 19); - this.state = 1319; - this.match(HiveSqlParser.T_NCHAR); + this.state = 1317; + this.match(HiveSql.T_NVARCHAR); break; case 20: this.enterOuterAlt(localctx, 20); - this.state = 1320; - this.match(HiveSqlParser.T_NVARCHAR); + this.state = 1318; + this.match(HiveSql.T_NUMBER); break; case 21: this.enterOuterAlt(localctx, 21); - this.state = 1321; - this.match(HiveSqlParser.T_NUMBER); + this.state = 1319; + this.match(HiveSql.T_NUMERIC); break; case 22: this.enterOuterAlt(localctx, 22); - this.state = 1322; - this.match(HiveSqlParser.T_NUMERIC); + this.state = 1320; + this.match(HiveSql.T_PLS_INTEGER); break; case 23: this.enterOuterAlt(localctx, 23); - this.state = 1323; - this.match(HiveSqlParser.T_PLS_INTEGER); + this.state = 1321; + this.match(HiveSql.T_REAL); break; case 24: this.enterOuterAlt(localctx, 24); - this.state = 1324; - this.match(HiveSqlParser.T_REAL); + this.state = 1322; + this.match(HiveSql.T_RESULT_SET_LOCATOR); + this.state = 1323; + this.match(HiveSql.T_VARYING); break; case 25: this.enterOuterAlt(localctx, 25); - this.state = 1325; - this.match(HiveSqlParser.T_RESULT_SET_LOCATOR); - this.state = 1326; - this.match(HiveSqlParser.T_VARYING); + this.state = 1324; + this.match(HiveSql.T_SIMPLE_FLOAT); break; case 26: this.enterOuterAlt(localctx, 26); - this.state = 1327; - this.match(HiveSqlParser.T_SIMPLE_FLOAT); + this.state = 1325; + this.match(HiveSql.T_SIMPLE_DOUBLE); break; case 27: this.enterOuterAlt(localctx, 27); - this.state = 1328; - this.match(HiveSqlParser.T_SIMPLE_DOUBLE); + this.state = 1326; + this.match(HiveSql.T_SIMPLE_INTEGER); break; case 28: this.enterOuterAlt(localctx, 28); - this.state = 1329; - this.match(HiveSqlParser.T_SIMPLE_INTEGER); + this.state = 1327; + this.match(HiveSql.T_SMALLINT); break; case 29: this.enterOuterAlt(localctx, 29); - this.state = 1330; - this.match(HiveSqlParser.T_SMALLINT); + this.state = 1328; + this.match(HiveSql.T_SMALLDATETIME); break; case 30: this.enterOuterAlt(localctx, 30); - this.state = 1331; - this.match(HiveSqlParser.T_SMALLDATETIME); + this.state = 1329; + this.match(HiveSql.T_STRING); break; case 31: this.enterOuterAlt(localctx, 31); - this.state = 1332; - this.match(HiveSqlParser.T_STRING); + this.state = 1330; + this.match(HiveSql.T_SYS_REFCURSOR); break; case 32: this.enterOuterAlt(localctx, 32); - this.state = 1333; - this.match(HiveSqlParser.T_SYS_REFCURSOR); + this.state = 1331; + this.match(HiveSql.T_TIMESTAMP); break; case 33: this.enterOuterAlt(localctx, 33); - this.state = 1334; - this.match(HiveSqlParser.T_TIMESTAMP); + this.state = 1332; + this.match(HiveSql.T_TINYINT); break; case 34: this.enterOuterAlt(localctx, 34); - this.state = 1335; - this.match(HiveSqlParser.T_TINYINT); + this.state = 1333; + this.match(HiveSql.T_VARCHAR); break; case 35: this.enterOuterAlt(localctx, 35); - this.state = 1336; - this.match(HiveSqlParser.T_VARCHAR); + this.state = 1334; + this.match(HiveSql.T_VARCHAR2); break; case 36: this.enterOuterAlt(localctx, 36); - this.state = 1337; - this.match(HiveSqlParser.T_VARCHAR2); + this.state = 1335; + this.match(HiveSql.T_XML); break; case 37: this.enterOuterAlt(localctx, 37); - this.state = 1338; - this.match(HiveSqlParser.T_XML); - break; - - case 38: - this.enterOuterAlt(localctx, 38); - this.state = 1339; + this.state = 1336; this.ident(); - this.state = 1342; + this.state = 1339; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,120,this._ctx); if(la_===1) { - this.state = 1340; - this.match(HiveSqlParser.T__3); - this.state = 1341; + this.state = 1337; + this.match(HiveSql.T_PRECENT); + this.state = 1338; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TYPE || _la===HiveSqlParser.T_ROWTYPE)) { + if(!(_la===HiveSql.T_ROWTYPE || _la===HiveSql.T_TYPE)) { this._errHandler.recoverInline(this); } else { @@ -12904,7 +12938,7 @@ function Dtype_lenContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_len; + this.ruleIndex = HiveSql.RULE_dtype_len; return this; } @@ -12912,11 +12946,11 @@ Dtype_lenContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dtype_lenContext.prototype.constructor = Dtype_lenContext; Dtype_lenContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Dtype_lenContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Dtype_lenContext.prototype.L_INT = function(i) { @@ -12924,27 +12958,27 @@ Dtype_lenContext.prototype.L_INT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_INT); + return this.getTokens(HiveSql.L_INT); } else { - return this.getToken(HiveSqlParser.L_INT, i); + return this.getToken(HiveSql.L_INT, i); } }; Dtype_lenContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Dtype_lenContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Dtype_lenContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; Dtype_lenContext.prototype.T_BYTE = function() { - return this.getToken(HiveSqlParser.T_BYTE, 0); + return this.getToken(HiveSql.T_BYTE, 0); }; Dtype_lenContext.prototype.enterRule = function(listener) { @@ -12970,33 +13004,33 @@ Dtype_lenContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_lenContext = Dtype_lenContext; +HiveSql.Dtype_lenContext = Dtype_lenContext; -HiveSqlParser.prototype.dtype_len = function() { +HiveSql.prototype.dtype_len = function() { var localctx = new Dtype_lenContext(this, this._ctx, this.state); - this.enterRule(localctx, 120, HiveSqlParser.RULE_dtype_len); + this.enterRule(localctx, 120, HiveSql.RULE_dtype_len); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1346; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1347; + this.state = 1343; + this.match(HiveSql.T_OPEN_P); + this.state = 1344; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.L_INT || _la===HiveSqlParser.T_MAX)) { + if(!(_la===HiveSql.T_MAX || _la===HiveSql.L_INT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1349; + this.state = 1346; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CHAR || _la===HiveSqlParser.T_BYTE) { - this.state = 1348; + if(_la===HiveSql.T_BYTE || _la===HiveSql.T_CHAR) { + this.state = 1345; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CHAR || _la===HiveSqlParser.T_BYTE)) { + if(!(_la===HiveSql.T_BYTE || _la===HiveSql.T_CHAR)) { this._errHandler.recoverInline(this); } else { @@ -13005,18 +13039,18 @@ HiveSqlParser.prototype.dtype_len = function() { } } - this.state = 1353; + this.state = 1350; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 1351; - this.match(HiveSqlParser.T_COMMA); - this.state = 1352; - this.match(HiveSqlParser.L_INT); + if(_la===HiveSql.T_COMMA) { + this.state = 1348; + this.match(HiveSql.T_COMMA); + this.state = 1349; + this.match(HiveSql.L_INT); } - this.state = 1355; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1352; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -13041,7 +13075,7 @@ function Dtype_attrContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_attr; + this.ruleIndex = HiveSql.RULE_dtype_attr; return this; } @@ -13049,19 +13083,19 @@ Dtype_attrContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dtype_attrContext.prototype.constructor = Dtype_attrContext; Dtype_attrContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Dtype_attrContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Dtype_attrContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Dtype_attrContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Dtype_attrContext.prototype.ident = function() { @@ -13069,11 +13103,11 @@ Dtype_attrContext.prototype.ident = function() { }; Dtype_attrContext.prototype.T_CASESPECIFIC = function() { - return this.getToken(HiveSqlParser.T_CASESPECIFIC, 0); + return this.getToken(HiveSql.T_CASESPECIFIC, 0); }; Dtype_attrContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Dtype_attrContext.prototype.enterRule = function(listener) { @@ -13099,55 +13133,55 @@ Dtype_attrContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_attrContext = Dtype_attrContext; +HiveSql.Dtype_attrContext = Dtype_attrContext; -HiveSqlParser.prototype.dtype_attr = function() { +HiveSql.prototype.dtype_attr = function() { var localctx = new Dtype_attrContext(this, this._ctx, this.state); - this.enterRule(localctx, 122, HiveSqlParser.RULE_dtype_attr); + this.enterRule(localctx, 122, HiveSql.RULE_dtype_attr); var _la = 0; // Token type try { - this.state = 1368; + this.state = 1365; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,126,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1358; + this.state = 1355; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1357; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1354; + this.match(HiveSql.T_NOT); } - this.state = 1360; - this.match(HiveSqlParser.T_NULL); + this.state = 1357; + this.match(HiveSql.T_NULL); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1361; - this.match(HiveSqlParser.T_CHARACTER); - this.state = 1362; - this.match(HiveSqlParser.T_SET); - this.state = 1363; + this.state = 1358; + this.match(HiveSql.T_CHARACTER); + this.state = 1359; + this.match(HiveSql.T_SET); + this.state = 1360; this.ident(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1365; + this.state = 1362; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 1364; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 1361; + this.match(HiveSql.T_NOT); } - this.state = 1367; + this.state = 1364; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CASESPECIFIC || _la===HiveSqlParser.T_CS)) { + if(!(_la===HiveSql.T_CASESPECIFIC || _la===HiveSql.T_CS)) { this._errHandler.recoverInline(this); } else { @@ -13181,7 +13215,7 @@ function Dtype_defaultContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dtype_default; + this.ruleIndex = HiveSql.RULE_dtype_default; return this; } @@ -13189,7 +13223,7 @@ Dtype_defaultContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Dtype_defaultContext.prototype.constructor = Dtype_defaultContext; Dtype_defaultContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Dtype_defaultContext.prototype.expr = function() { @@ -13197,15 +13231,15 @@ Dtype_defaultContext.prototype.expr = function() { }; Dtype_defaultContext.prototype.T_COLON = function() { - return this.getToken(HiveSqlParser.T_COLON, 0); + return this.getToken(HiveSql.T_COLON, 0); }; Dtype_defaultContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Dtype_defaultContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Dtype_defaultContext.prototype.enterRule = function(listener) { @@ -13231,51 +13265,51 @@ Dtype_defaultContext.prototype.accept = function(visitor) { -HiveSqlParser.Dtype_defaultContext = Dtype_defaultContext; +HiveSql.Dtype_defaultContext = Dtype_defaultContext; -HiveSqlParser.prototype.dtype_default = function() { +HiveSql.prototype.dtype_default = function() { var localctx = new Dtype_defaultContext(this, this._ctx, this.state); - this.enterRule(localctx, 124, HiveSqlParser.RULE_dtype_default); + this.enterRule(localctx, 124, HiveSql.RULE_dtype_default); var _la = 0; // Token type try { - this.state = 1382; + this.state = 1379; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COLON: - case HiveSqlParser.T_EQUAL: + case HiveSql.T_COLON: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 1371; + this.state = 1368; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COLON) { - this.state = 1370; - this.match(HiveSqlParser.T_COLON); + if(_la===HiveSql.T_COLON) { + this.state = 1367; + this.match(HiveSql.T_COLON); } - this.state = 1373; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1374; + this.state = 1370; + this.match(HiveSql.T_EQUAL); + this.state = 1371; this.expr(0); break; - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_DEFAULT: + case HiveSql.T_DEFAULT: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 1376; + this.state = 1373; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 1375; - this.match(HiveSqlParser.T_WITH); + if(_la===HiveSql.T_WITH) { + this.state = 1372; + this.match(HiveSql.T_WITH); } - this.state = 1378; - this.match(HiveSqlParser.T_DEFAULT); - this.state = 1380; + this.state = 1375; + this.match(HiveSql.T_DEFAULT); + this.state = 1377; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,129,this._ctx); if(la_===1) { - this.state = 1379; + this.state = 1376; this.expr(0); } @@ -13307,7 +13341,7 @@ function Create_database_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_database_stmt; + this.ruleIndex = HiveSql.RULE_create_database_stmt; return this; } @@ -13315,7 +13349,7 @@ Create_database_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Create_database_stmtContext.prototype.constructor = Create_database_stmtContext; Create_database_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_database_stmtContext.prototype.expr = function() { @@ -13323,23 +13357,23 @@ Create_database_stmtContext.prototype.expr = function() { }; Create_database_stmtContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Create_database_stmtContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Create_database_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Create_database_stmtContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Create_database_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Create_database_stmtContext.prototype.create_database_option = function(i) { @@ -13376,49 +13410,49 @@ Create_database_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_database_stmtContext = Create_database_stmtContext; +HiveSql.Create_database_stmtContext = Create_database_stmtContext; -HiveSqlParser.prototype.create_database_stmt = function() { +HiveSql.prototype.create_database_stmt = function() { var localctx = new Create_database_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 126, HiveSqlParser.RULE_create_database_stmt); + this.enterRule(localctx, 126, HiveSql.RULE_create_database_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1384; - this.match(HiveSqlParser.T_CREATE); - this.state = 1385; + this.state = 1381; + this.match(HiveSql.T_CREATE); + this.state = 1382; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DATABASE || _la===HiveSqlParser.T_SCHEMA)) { + if(!(_la===HiveSql.T_DATABASE || _la===HiveSql.T_SCHEMA)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1389; + this.state = 1386; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,131,this._ctx); if(la_===1) { - this.state = 1386; - this.match(HiveSqlParser.T_IF); - this.state = 1387; - this.match(HiveSqlParser.T_NOT); - this.state = 1388; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1383; + this.match(HiveSql.T_IF); + this.state = 1384; + this.match(HiveSql.T_NOT); + this.state = 1385; + this.match(HiveSql.T_EXISTS); } - this.state = 1391; + this.state = 1388; this.expr(0); - this.state = 1395; + this.state = 1392; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,132,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1392; + this.state = 1389; this.create_database_option(); } - this.state = 1397; + this.state = 1394; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,132,this._ctx); } @@ -13447,7 +13481,7 @@ function Create_database_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_database_option; + this.ruleIndex = HiveSql.RULE_create_database_option; return this; } @@ -13455,7 +13489,7 @@ Create_database_optionContext.prototype = Object.create(antlr4.ParserRuleContext Create_database_optionContext.prototype.constructor = Create_database_optionContext; Create_database_optionContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Create_database_optionContext.prototype.expr = function() { @@ -13463,7 +13497,7 @@ Create_database_optionContext.prototype.expr = function() { }; Create_database_optionContext.prototype.T_LOCATION = function() { - return this.getToken(HiveSqlParser.T_LOCATION, 0); + return this.getToken(HiveSql.T_LOCATION, 0); }; Create_database_optionContext.prototype.enterRule = function(listener) { @@ -13489,28 +13523,28 @@ Create_database_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_database_optionContext = Create_database_optionContext; +HiveSql.Create_database_optionContext = Create_database_optionContext; -HiveSqlParser.prototype.create_database_option = function() { +HiveSql.prototype.create_database_option = function() { var localctx = new Create_database_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 128, HiveSqlParser.RULE_create_database_option); + this.enterRule(localctx, 128, HiveSql.RULE_create_database_option); try { - this.state = 1402; + this.state = 1399; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMENT: + case HiveSql.T_COMMENT: this.enterOuterAlt(localctx, 1); - this.state = 1398; - this.match(HiveSqlParser.T_COMMENT); - this.state = 1399; + this.state = 1395; + this.match(HiveSql.T_COMMENT); + this.state = 1396; this.expr(0); break; - case HiveSqlParser.T_LOCATION: + case HiveSql.T_LOCATION: this.enterOuterAlt(localctx, 2); - this.state = 1400; - this.match(HiveSqlParser.T_LOCATION); - this.state = 1401; + this.state = 1397; + this.match(HiveSql.T_LOCATION); + this.state = 1398; this.expr(0); break; default: @@ -13540,7 +13574,7 @@ function Create_function_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_function_stmt; + this.ruleIndex = HiveSql.RULE_create_function_stmt; return this; } @@ -13548,7 +13582,7 @@ Create_function_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Create_function_stmtContext.prototype.constructor = Create_function_stmtContext; Create_function_stmtContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Create_function_stmtContext.prototype.ident = function() { @@ -13564,15 +13598,15 @@ Create_function_stmtContext.prototype.single_block_stmt = function() { }; Create_function_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_function_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_function_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_function_stmtContext.prototype.create_routine_params = function() { @@ -13584,15 +13618,15 @@ Create_function_stmtContext.prototype.declare_block_inplace = function() { }; Create_function_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_function_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_function_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_function_stmtContext.prototype.enterRule = function(listener) { @@ -13618,66 +13652,66 @@ Create_function_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_function_stmtContext = Create_function_stmtContext; +HiveSql.Create_function_stmtContext = Create_function_stmtContext; -HiveSqlParser.prototype.create_function_stmt = function() { +HiveSql.prototype.create_function_stmt = function() { var localctx = new Create_function_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 130, HiveSqlParser.RULE_create_function_stmt); + this.enterRule(localctx, 130, HiveSql.RULE_create_function_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1411; + this.state = 1408; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1404; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1401; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1402; + this.match(HiveSql.T_CREATE); this.state = 1405; - this.match(HiveSqlParser.T_CREATE); - this.state = 1408; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1406; - this.match(HiveSqlParser.T_OR); - this.state = 1407; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1403; + this.match(HiveSql.T_OR); + this.state = 1404; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1410; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1407; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_FUNCTION: + case HiveSql.T_FUNCTION: break; default: break; } - this.state = 1413; - this.match(HiveSqlParser.T_FUNCTION); - this.state = 1414; + this.state = 1410; + this.match(HiveSql.T_FUNCTION); + this.state = 1411; this.ident(); - this.state = 1416; + this.state = 1413; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,136,this._ctx); if(la_===1) { - this.state = 1415; + this.state = 1412; this.create_routine_params(); } - this.state = 1418; + this.state = 1415; this.create_function_return(); - this.state = 1420; + this.state = 1417; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,137,this._ctx); if(la_===1) { - this.state = 1419; + this.state = 1416; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -13686,15 +13720,15 @@ HiveSqlParser.prototype.create_function_stmt = function() { } } - this.state = 1423; + this.state = 1420; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,138,this._ctx); if(la_===1) { - this.state = 1422; + this.state = 1419; this.declare_block_inplace(); } - this.state = 1425; + this.state = 1422; this.single_block_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -13720,7 +13754,7 @@ function Create_function_returnContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_function_return; + this.ruleIndex = HiveSql.RULE_create_function_return; return this; } @@ -13732,11 +13766,11 @@ Create_function_returnContext.prototype.dtype = function() { }; Create_function_returnContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Create_function_returnContext.prototype.T_RETURNS = function() { - return this.getToken(HiveSqlParser.T_RETURNS, 0); + return this.getToken(HiveSql.T_RETURNS, 0); }; Create_function_returnContext.prototype.dtype_len = function() { @@ -13766,31 +13800,31 @@ Create_function_returnContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_function_returnContext = Create_function_returnContext; +HiveSql.Create_function_returnContext = Create_function_returnContext; -HiveSqlParser.prototype.create_function_return = function() { +HiveSql.prototype.create_function_return = function() { var localctx = new Create_function_returnContext(this, this._ctx, this.state); - this.enterRule(localctx, 132, HiveSqlParser.RULE_create_function_return); + this.enterRule(localctx, 132, HiveSql.RULE_create_function_return); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1427; + this.state = 1424; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_RETURN || _la===HiveSqlParser.T_RETURNS)) { + if(!(_la===HiveSql.T_RETURN || _la===HiveSql.T_RETURNS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1428; + this.state = 1425; this.dtype(); - this.state = 1430; + this.state = 1427; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,139,this._ctx); if(la_===1) { - this.state = 1429; + this.state = 1426; this.dtype_len(); } @@ -13818,7 +13852,7 @@ function Create_package_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_package_stmt; + this.ruleIndex = HiveSql.RULE_create_package_stmt; return this; } @@ -13826,7 +13860,7 @@ Create_package_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.pr Create_package_stmtContext.prototype.constructor = Create_package_stmtContext; Create_package_stmtContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Create_package_stmtContext.prototype.ident = function(i) { @@ -13845,35 +13879,35 @@ Create_package_stmtContext.prototype.package_spec = function() { }; Create_package_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Create_package_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_package_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_package_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_package_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_package_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_package_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_package_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_package_stmtContext.prototype.enterRule = function(listener) { @@ -13899,70 +13933,70 @@ Create_package_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_package_stmtContext = Create_package_stmtContext; +HiveSql.Create_package_stmtContext = Create_package_stmtContext; -HiveSqlParser.prototype.create_package_stmt = function() { +HiveSql.prototype.create_package_stmt = function() { var localctx = new Create_package_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 134, HiveSqlParser.RULE_create_package_stmt); + this.enterRule(localctx, 134, HiveSql.RULE_create_package_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1439; + this.state = 1436; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1432; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1429; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1430; + this.match(HiveSql.T_CREATE); this.state = 1433; - this.match(HiveSqlParser.T_CREATE); - this.state = 1436; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1434; - this.match(HiveSqlParser.T_OR); - this.state = 1435; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1431; + this.match(HiveSql.T_OR); + this.state = 1432; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1438; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1435; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PACKAGE: + case HiveSql.T_PACKAGE: break; default: break; } - this.state = 1441; - this.match(HiveSqlParser.T_PACKAGE); - this.state = 1442; + this.state = 1438; + this.match(HiveSql.T_PACKAGE); + this.state = 1439; this.ident(); - this.state = 1443; + this.state = 1440; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1444; + this.state = 1441; this.package_spec(); - this.state = 1445; - this.match(HiveSqlParser.T_END); - this.state = 1449; + this.state = 1442; + this.match(HiveSql.T_END); + this.state = 1446; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,142,this._ctx); if(la_===1) { - this.state = 1446; + this.state = 1443; this.ident(); - this.state = 1447; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1444; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -13989,7 +14023,7 @@ function Package_specContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_spec; + this.ruleIndex = HiveSql.RULE_package_spec; return this; } @@ -14012,9 +14046,9 @@ Package_specContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -14042,28 +14076,28 @@ Package_specContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_specContext = Package_specContext; +HiveSql.Package_specContext = Package_specContext; -HiveSqlParser.prototype.package_spec = function() { +HiveSql.prototype.package_spec = function() { var localctx = new Package_specContext(this, this._ctx, this.state); - this.enterRule(localctx, 136, HiveSqlParser.RULE_package_spec); + this.enterRule(localctx, 136, HiveSql.RULE_package_spec); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1451; + this.state = 1448; this.package_spec_item(); - this.state = 1452; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1458; + this.state = 1449; + this.match(HiveSql.T_SEMICOLON); + this.state = 1455; this._errHandler.sync(this); _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)) { - this.state = 1453; + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID) { + this.state = 1450; this.package_spec_item(); - this.state = 1454; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1460; + this.state = 1451; + this.match(HiveSql.T_SEMICOLON); + this.state = 1457; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -14091,7 +14125,7 @@ function Package_spec_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_spec_item; + this.ruleIndex = HiveSql.RULE_package_spec_item; return this; } @@ -14103,7 +14137,7 @@ Package_spec_itemContext.prototype.declare_stmt_item = function() { }; Package_spec_itemContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Package_spec_itemContext.prototype.ident = function() { @@ -14119,11 +14153,11 @@ Package_spec_itemContext.prototype.create_routine_params = function() { }; Package_spec_itemContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Package_spec_itemContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Package_spec_itemContext.prototype.enterRule = function(listener) { @@ -14149,60 +14183,60 @@ Package_spec_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_spec_itemContext = Package_spec_itemContext; +HiveSql.Package_spec_itemContext = Package_spec_itemContext; -HiveSqlParser.prototype.package_spec_item = function() { +HiveSql.prototype.package_spec_item = function() { var localctx = new Package_spec_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 138, HiveSqlParser.RULE_package_spec_item); + this.enterRule(localctx, 138, HiveSql.RULE_package_spec_item); var _la = 0; // Token type try { - this.state = 1474; + this.state = 1471; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,146,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1461; + this.state = 1458; this.declare_stmt_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1462; - this.match(HiveSqlParser.T_FUNCTION); - this.state = 1463; + this.state = 1459; + this.match(HiveSql.T_FUNCTION); + this.state = 1460; this.ident(); - this.state = 1465; + this.state = 1462; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,144,this._ctx); if(la_===1) { - this.state = 1464; + this.state = 1461; this.create_routine_params(); } - this.state = 1467; + this.state = 1464; this.create_function_return(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1469; + this.state = 1466; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PROCEDURE || _la===HiveSqlParser.T_PROC)) { + if(!(_la===HiveSql.T_PROC || _la===HiveSql.T_PROCEDURE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1470; + this.state = 1467; this.ident(); - this.state = 1472; + this.state = 1469; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,145,this._ctx); if(la_===1) { - this.state = 1471; + this.state = 1468; this.create_routine_params(); } @@ -14233,7 +14267,7 @@ function Create_package_body_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_package_body_stmt; + this.ruleIndex = HiveSql.RULE_create_package_body_stmt; return this; } @@ -14241,11 +14275,11 @@ Create_package_body_stmtContext.prototype = Object.create(antlr4.ParserRuleConte Create_package_body_stmtContext.prototype.constructor = Create_package_body_stmtContext; Create_package_body_stmtContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Create_package_body_stmtContext.prototype.T_BODY = function() { - return this.getToken(HiveSqlParser.T_BODY, 0); + return this.getToken(HiveSql.T_BODY, 0); }; Create_package_body_stmtContext.prototype.ident = function(i) { @@ -14264,35 +14298,35 @@ Create_package_body_stmtContext.prototype.package_body = function() { }; Create_package_body_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Create_package_body_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_package_body_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_package_body_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_package_body_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_package_body_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_package_body_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_package_body_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_package_body_stmtContext.prototype.enterRule = function(listener) { @@ -14318,72 +14352,72 @@ Create_package_body_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_package_body_stmtContext = Create_package_body_stmtContext; +HiveSql.Create_package_body_stmtContext = Create_package_body_stmtContext; -HiveSqlParser.prototype.create_package_body_stmt = function() { +HiveSql.prototype.create_package_body_stmt = function() { var localctx = new Create_package_body_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 140, HiveSqlParser.RULE_create_package_body_stmt); + this.enterRule(localctx, 140, HiveSql.RULE_create_package_body_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1483; + this.state = 1480; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1476; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1473; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1474; + this.match(HiveSql.T_CREATE); this.state = 1477; - this.match(HiveSqlParser.T_CREATE); - this.state = 1480; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1478; - this.match(HiveSqlParser.T_OR); - this.state = 1479; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1475; + this.match(HiveSql.T_OR); + this.state = 1476; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1482; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1479; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PACKAGE: + case HiveSql.T_PACKAGE: break; default: break; } - this.state = 1485; - this.match(HiveSqlParser.T_PACKAGE); - this.state = 1486; - this.match(HiveSqlParser.T_BODY); - this.state = 1487; + this.state = 1482; + this.match(HiveSql.T_PACKAGE); + this.state = 1483; + this.match(HiveSql.T_BODY); + this.state = 1484; this.ident(); - this.state = 1488; + this.state = 1485; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1489; + this.state = 1486; this.package_body(); - this.state = 1490; - this.match(HiveSqlParser.T_END); - this.state = 1494; + this.state = 1487; + this.match(HiveSql.T_END); + this.state = 1491; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,149,this._ctx); if(la_===1) { - this.state = 1491; + this.state = 1488; this.ident(); - this.state = 1492; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1489; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -14410,7 +14444,7 @@ function Package_bodyContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_body; + this.ruleIndex = HiveSql.RULE_package_body; return this; } @@ -14433,9 +14467,9 @@ Package_bodyContext.prototype.T_SEMICOLON = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_SEMICOLON); + return this.getTokens(HiveSql.T_SEMICOLON); } else { - return this.getToken(HiveSqlParser.T_SEMICOLON, i); + return this.getToken(HiveSql.T_SEMICOLON, i); } }; @@ -14463,28 +14497,28 @@ Package_bodyContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_bodyContext = Package_bodyContext; +HiveSql.Package_bodyContext = Package_bodyContext; -HiveSqlParser.prototype.package_body = function() { +HiveSql.prototype.package_body = function() { var localctx = new Package_bodyContext(this, this._ctx, this.state); - this.enterRule(localctx, 142, HiveSqlParser.RULE_package_body); + this.enterRule(localctx, 142, HiveSql.RULE_package_body); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1496; + this.state = 1493; this.package_body_item(); - this.state = 1497; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1503; + this.state = 1494; + this.match(HiveSql.T_SEMICOLON); + this.state = 1500; this._errHandler.sync(this); _la = this._input.LA(1); - while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T__8) | (1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.L_ID) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0)) { - this.state = 1498; + while((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0) || _la===HiveSql.L_ID) { + this.state = 1495; this.package_body_item(); - this.state = 1499; - this.match(HiveSqlParser.T_SEMICOLON); - this.state = 1505; + this.state = 1496; + this.match(HiveSql.T_SEMICOLON); + this.state = 1502; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -14512,7 +14546,7 @@ function Package_body_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_package_body_item; + this.ruleIndex = HiveSql.RULE_package_body_item; return this; } @@ -14554,32 +14588,32 @@ Package_body_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Package_body_itemContext = Package_body_itemContext; +HiveSql.Package_body_itemContext = Package_body_itemContext; -HiveSqlParser.prototype.package_body_item = function() { +HiveSql.prototype.package_body_item = function() { var localctx = new Package_body_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 144, HiveSqlParser.RULE_package_body_item); + this.enterRule(localctx, 144, HiveSql.RULE_package_body_item); try { - this.state = 1509; + this.state = 1506; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,151,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1506; + this.state = 1503; this.declare_stmt_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1507; + this.state = 1504; this.create_function_stmt(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1508; + this.state = 1505; this.create_procedure_stmt(); break; @@ -14608,7 +14642,7 @@ function Create_procedure_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_procedure_stmt; + this.ruleIndex = HiveSql.RULE_create_procedure_stmt; return this; } @@ -14631,23 +14665,23 @@ Create_procedure_stmtContext.prototype.proc_block = function() { }; Create_procedure_stmtContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Create_procedure_stmtContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Create_procedure_stmtContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Create_procedure_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_procedure_stmtContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Create_procedure_stmtContext.prototype.create_routine_params = function() { @@ -14667,19 +14701,19 @@ Create_procedure_stmtContext.prototype.label = function() { }; Create_procedure_stmtContext.prototype.T_SEMICOLON = function() { - return this.getToken(HiveSqlParser.T_SEMICOLON, 0); + return this.getToken(HiveSql.T_SEMICOLON, 0); }; Create_procedure_stmtContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Create_procedure_stmtContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Create_procedure_stmtContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Create_procedure_stmtContext.prototype.enterRule = function(listener) { @@ -14705,80 +14739,80 @@ Create_procedure_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_procedure_stmtContext = Create_procedure_stmtContext; +HiveSql.Create_procedure_stmtContext = Create_procedure_stmtContext; -HiveSqlParser.prototype.create_procedure_stmt = function() { +HiveSql.prototype.create_procedure_stmt = function() { var localctx = new Create_procedure_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 146, HiveSqlParser.RULE_create_procedure_stmt); + this.enterRule(localctx, 146, HiveSql.RULE_create_procedure_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1518; + this.state = 1515; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T_ALTER: - this.state = 1511; - this.match(HiveSqlParser.T_ALTER); + case HiveSql.T_ALTER: + this.state = 1508; + this.match(HiveSql.T_ALTER); break; - case HiveSqlParser.T_CREATE: + case HiveSql.T_CREATE: + this.state = 1509; + this.match(HiveSql.T_CREATE); this.state = 1512; - this.match(HiveSqlParser.T_CREATE); - this.state = 1515; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OR) { - this.state = 1513; - this.match(HiveSqlParser.T_OR); - this.state = 1514; - this.match(HiveSqlParser.T_REPLACE); + if(_la===HiveSql.T_OR) { + this.state = 1510; + this.match(HiveSql.T_OR); + this.state = 1511; + this.match(HiveSql.T_REPLACE); } break; - case HiveSqlParser.T_REPLACE: - this.state = 1517; - this.match(HiveSqlParser.T_REPLACE); + case HiveSql.T_REPLACE: + this.state = 1514; + this.match(HiveSql.T_REPLACE); break; - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_PROC: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: break; default: break; } - this.state = 1520; + this.state = 1517; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PROCEDURE || _la===HiveSqlParser.T_PROC)) { + if(!(_la===HiveSql.T_PROC || _la===HiveSql.T_PROCEDURE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1521; + this.state = 1518; this.ident(); - this.state = 1523; + this.state = 1520; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,154,this._ctx); if(la_===1) { - this.state = 1522; + this.state = 1519; this.create_routine_params(); + } + this.state = 1523; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,155,this._ctx); + if(la_===1) { + this.state = 1522; + this.create_routine_options(); + } this.state = 1526; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,155,this._ctx); - if(la_===1) { - this.state = 1525; - this.create_routine_options(); - - } - this.state = 1529; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,156,this._ctx); if(la_===1) { - this.state = 1528; + this.state = 1525; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_AS || _la===HiveSqlParser.T_IS)) { + if(!(_la===HiveSql.T_AS || _la===HiveSql.T_IS)) { this._errHandler.recoverInline(this); } else { @@ -14787,32 +14821,32 @@ HiveSqlParser.prototype.create_procedure_stmt = function() { } } - this.state = 1532; + this.state = 1529; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,157,this._ctx); if(la_===1) { - this.state = 1531; + this.state = 1528; this.declare_block_inplace(); } - this.state = 1535; + this.state = 1532; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,158,this._ctx); if(la_===1) { - this.state = 1534; + this.state = 1531; this.label(); } - this.state = 1537; + this.state = 1534; this.proc_block(); - this.state = 1541; + this.state = 1538; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,159,this._ctx); if(la_===1) { - this.state = 1538; + this.state = 1535; this.ident(); - this.state = 1539; - this.match(HiveSqlParser.T_SEMICOLON); + this.state = 1536; + this.match(HiveSql.T_SEMICOLON); } } catch (re) { @@ -14839,7 +14873,7 @@ function Create_routine_paramsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_params; + this.ruleIndex = HiveSql.RULE_create_routine_params; return this; } @@ -14847,11 +14881,11 @@ Create_routine_paramsContext.prototype = Object.create(antlr4.ParserRuleContext. Create_routine_paramsContext.prototype.constructor = Create_routine_paramsContext; Create_routine_paramsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_routine_paramsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_routine_paramsContext.prototype.create_routine_param_item = function(i) { @@ -14870,9 +14904,9 @@ Create_routine_paramsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -14900,70 +14934,70 @@ Create_routine_paramsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_paramsContext = Create_routine_paramsContext; +HiveSql.Create_routine_paramsContext = Create_routine_paramsContext; -HiveSqlParser.prototype.create_routine_params = function() { +HiveSql.prototype.create_routine_params = function() { var localctx = new Create_routine_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 148, HiveSqlParser.RULE_create_routine_params); + this.enterRule(localctx, 148, HiveSql.RULE_create_routine_params); var _la = 0; // Token type try { - this.state = 1565; + this.state = 1562; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,162,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1543; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1544; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1540; + this.match(HiveSql.T_OPEN_P); + this.state = 1541; + this.match(HiveSql.T_CLOSE_P); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1545; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1546; + this.state = 1542; + this.match(HiveSql.T_OPEN_P); + this.state = 1543; this.create_routine_param_item(); - this.state = 1551; + this.state = 1548; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1547; - this.match(HiveSqlParser.T_COMMA); - this.state = 1548; + while(_la===HiveSql.T_COMMA) { + this.state = 1544; + this.match(HiveSql.T_COMMA); + this.state = 1545; this.create_routine_param_item(); - this.state = 1553; + this.state = 1550; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1554; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1551; + this.match(HiveSql.T_CLOSE_P); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1556; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) + this.state = 1553; + if (!( this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") )) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"IS\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"AS\") &&\n !(this._input.LT(1).getText().equalsIgnoreCase(\"DYNAMIC\") && this._input.LT(2).getText().equalsIgnoreCase(\"RESULT\"))\n "); + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"IS\" &&\n this._input.LT(1).text.toUpperCase() !== \"AS\" &&\n !(this._input.LT(1).text.toUpperCase() ===\"DYNAMIC\" && this._input.LT(2).text.toUpperCase() === \"RESULT\")\n "); } - this.state = 1557; + this.state = 1554; this.create_routine_param_item(); - this.state = 1562; + this.state = 1559; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,161,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1558; - this.match(HiveSqlParser.T_COMMA); - this.state = 1559; + this.state = 1555; + this.match(HiveSql.T_COMMA); + this.state = 1556; this.create_routine_param_item(); } - this.state = 1564; + this.state = 1561; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,161,this._ctx); } @@ -14995,7 +15029,7 @@ function Create_routine_param_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_param_item; + this.ruleIndex = HiveSql.RULE_create_routine_param_item; return this; } @@ -15011,15 +15045,15 @@ Create_routine_param_itemContext.prototype.dtype = function() { }; Create_routine_param_itemContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Create_routine_param_itemContext.prototype.T_OUT = function() { - return this.getToken(HiveSqlParser.T_OUT, 0); + return this.getToken(HiveSql.T_OUT, 0); }; Create_routine_param_itemContext.prototype.T_INOUT = function() { - return this.getToken(HiveSqlParser.T_INOUT, 0); + return this.getToken(HiveSql.T_INOUT, 0); }; Create_routine_param_itemContext.prototype.dtype_len = function() { @@ -15064,71 +15098,71 @@ Create_routine_param_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_param_itemContext = Create_routine_param_itemContext; +HiveSql.Create_routine_param_itemContext = Create_routine_param_itemContext; -HiveSqlParser.prototype.create_routine_param_item = function() { +HiveSql.prototype.create_routine_param_item = function() { var localctx = new Create_routine_param_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 150, HiveSqlParser.RULE_create_routine_param_item); + this.enterRule(localctx, 150, HiveSql.RULE_create_routine_param_item); try { - this.state = 1609; + this.state = 1606; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,171,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1572; + this.state = 1569; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,163,this._ctx); if(la_===1) { - this.state = 1567; - this.match(HiveSqlParser.T_IN); + this.state = 1564; + this.match(HiveSql.T_IN); } else if(la_===2) { - this.state = 1568; - this.match(HiveSqlParser.T_OUT); + this.state = 1565; + this.match(HiveSql.T_OUT); } else if(la_===3) { - this.state = 1569; - this.match(HiveSqlParser.T_INOUT); + this.state = 1566; + this.match(HiveSql.T_INOUT); } else if(la_===4) { - this.state = 1570; - this.match(HiveSqlParser.T_IN); - this.state = 1571; - this.match(HiveSqlParser.T_OUT); + this.state = 1567; + this.match(HiveSql.T_IN); + this.state = 1568; + this.match(HiveSql.T_OUT); } - this.state = 1574; + this.state = 1571; this.ident(); - this.state = 1575; + this.state = 1572; this.dtype(); - this.state = 1577; + this.state = 1574; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,164,this._ctx); if(la_===1) { - this.state = 1576; + this.state = 1573; this.dtype_len(); } - this.state = 1582; + this.state = 1579; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,165,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1579; + this.state = 1576; this.dtype_attr(); } - this.state = 1584; + this.state = 1581; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,165,this._ctx); } - this.state = 1586; + this.state = 1583; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,166,this._ctx); if(la_===1) { - this.state = 1585; + this.state = 1582; this.dtype_default(); } @@ -15136,58 +15170,58 @@ HiveSqlParser.prototype.create_routine_param_item = function() { case 2: this.enterOuterAlt(localctx, 2); - this.state = 1588; + this.state = 1585; this.ident(); - this.state = 1594; + this.state = 1591; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,167,this._ctx); if(la_===1) { - this.state = 1589; - this.match(HiveSqlParser.T_IN); + this.state = 1586; + this.match(HiveSql.T_IN); } else if(la_===2) { - this.state = 1590; - this.match(HiveSqlParser.T_OUT); + this.state = 1587; + this.match(HiveSql.T_OUT); } else if(la_===3) { - this.state = 1591; - this.match(HiveSqlParser.T_INOUT); + this.state = 1588; + this.match(HiveSql.T_INOUT); } else if(la_===4) { - this.state = 1592; - this.match(HiveSqlParser.T_IN); - this.state = 1593; - this.match(HiveSqlParser.T_OUT); + this.state = 1589; + this.match(HiveSql.T_IN); + this.state = 1590; + this.match(HiveSql.T_OUT); } - this.state = 1596; + this.state = 1593; this.dtype(); - this.state = 1598; + this.state = 1595; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,168,this._ctx); if(la_===1) { - this.state = 1597; + this.state = 1594; this.dtype_len(); } - this.state = 1603; + this.state = 1600; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,169,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1600; + this.state = 1597; this.dtype_attr(); } - this.state = 1605; + this.state = 1602; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,169,this._ctx); } - this.state = 1607; + this.state = 1604; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,170,this._ctx); if(la_===1) { - this.state = 1606; + this.state = 1603; this.dtype_default(); } @@ -15218,7 +15252,7 @@ function Create_routine_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_options; + this.ruleIndex = HiveSql.RULE_create_routine_options; return this; } @@ -15259,27 +15293,27 @@ Create_routine_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_optionsContext = Create_routine_optionsContext; +HiveSql.Create_routine_optionsContext = Create_routine_optionsContext; -HiveSqlParser.prototype.create_routine_options = function() { +HiveSql.prototype.create_routine_options = function() { var localctx = new Create_routine_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 152, HiveSqlParser.RULE_create_routine_options); + this.enterRule(localctx, 152, HiveSql.RULE_create_routine_options); try { this.enterOuterAlt(localctx, 1); - this.state = 1612; + this.state = 1609; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 1611; + this.state = 1608; this.create_routine_option(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1614; + this.state = 1611; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,172, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -15307,7 +15341,7 @@ function Create_routine_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_routine_option; + this.ruleIndex = HiveSql.RULE_create_routine_option; return this; } @@ -15315,47 +15349,47 @@ Create_routine_optionContext.prototype = Object.create(antlr4.ParserRuleContext. Create_routine_optionContext.prototype.constructor = Create_routine_optionContext; Create_routine_optionContext.prototype.T_LANGUAGE = function() { - return this.getToken(HiveSqlParser.T_LANGUAGE, 0); + return this.getToken(HiveSql.T_LANGUAGE, 0); }; Create_routine_optionContext.prototype.T_SQL = function() { - return this.getToken(HiveSqlParser.T_SQL, 0); + return this.getToken(HiveSql.T_SQL, 0); }; Create_routine_optionContext.prototype.T_SECURITY = function() { - return this.getToken(HiveSqlParser.T_SECURITY, 0); + return this.getToken(HiveSql.T_SECURITY, 0); }; Create_routine_optionContext.prototype.T_CREATOR = function() { - return this.getToken(HiveSqlParser.T_CREATOR, 0); + return this.getToken(HiveSql.T_CREATOR, 0); }; Create_routine_optionContext.prototype.T_DEFINER = function() { - return this.getToken(HiveSqlParser.T_DEFINER, 0); + return this.getToken(HiveSql.T_DEFINER, 0); }; Create_routine_optionContext.prototype.T_INVOKER = function() { - return this.getToken(HiveSqlParser.T_INVOKER, 0); + return this.getToken(HiveSql.T_INVOKER, 0); }; Create_routine_optionContext.prototype.T_OWNER = function() { - return this.getToken(HiveSqlParser.T_OWNER, 0); + return this.getToken(HiveSql.T_OWNER, 0); }; Create_routine_optionContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Create_routine_optionContext.prototype.T_SETS = function() { - return this.getToken(HiveSqlParser.T_SETS, 0); + return this.getToken(HiveSql.T_SETS, 0); }; Create_routine_optionContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); }; Create_routine_optionContext.prototype.T_DYNAMIC = function() { - return this.getToken(HiveSqlParser.T_DYNAMIC, 0); + return this.getToken(HiveSql.T_DYNAMIC, 0); }; Create_routine_optionContext.prototype.enterRule = function(listener) { @@ -15381,33 +15415,33 @@ Create_routine_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_routine_optionContext = Create_routine_optionContext; +HiveSql.Create_routine_optionContext = Create_routine_optionContext; -HiveSqlParser.prototype.create_routine_option = function() { +HiveSql.prototype.create_routine_option = function() { var localctx = new Create_routine_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 154, HiveSqlParser.RULE_create_routine_option); + this.enterRule(localctx, 154, HiveSql.RULE_create_routine_option); var _la = 0; // Token type try { - this.state = 1627; + this.state = 1624; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LANGUAGE: + case HiveSql.T_LANGUAGE: this.enterOuterAlt(localctx, 1); - this.state = 1616; - this.match(HiveSqlParser.T_LANGUAGE); - this.state = 1617; - this.match(HiveSqlParser.T_SQL); + this.state = 1613; + this.match(HiveSql.T_LANGUAGE); + this.state = 1614; + this.match(HiveSql.T_SQL); break; - case HiveSqlParser.T_SQL: + case HiveSql.T_SQL: this.enterOuterAlt(localctx, 2); - this.state = 1618; - this.match(HiveSqlParser.T_SQL); - this.state = 1619; - this.match(HiveSqlParser.T_SECURITY); - this.state = 1620; + this.state = 1615; + this.match(HiveSql.T_SQL); + this.state = 1616; + this.match(HiveSql.T_SECURITY); + this.state = 1617; _la = this._input.LA(1); - if(!(((((_la - 195)) & ~0x1f) == 0 && ((1 << (_la - 195)) & ((1 << (HiveSqlParser.T_CREATOR - 195)) | (1 << (HiveSqlParser.T_DEFINER - 195)) | (1 << (HiveSqlParser.T_INVOKER - 195)) | (1 << (HiveSqlParser.T_OWNER - 195)))) !== 0))) { + if(!(_la===HiveSql.T_CREATOR || _la===HiveSql.T_DEFINER || _la===HiveSql.T_INVOKER || _la===HiveSql.T_OWNER)) { this._errHandler.recoverInline(this); } else { @@ -15415,23 +15449,23 @@ HiveSqlParser.prototype.create_routine_option = function() { this.consume(); } break; - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_DYNAMIC: + case HiveSql.T_DYNAMIC: + case HiveSql.T_RESULT: this.enterOuterAlt(localctx, 3); - this.state = 1622; + this.state = 1619; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_DYNAMIC) { - this.state = 1621; - this.match(HiveSqlParser.T_DYNAMIC); + if(_la===HiveSql.T_DYNAMIC) { + this.state = 1618; + this.match(HiveSql.T_DYNAMIC); } - this.state = 1624; - this.match(HiveSqlParser.T_RESULT); - this.state = 1625; - this.match(HiveSqlParser.T_SETS); - this.state = 1626; - this.match(HiveSqlParser.L_INT); + this.state = 1621; + this.match(HiveSql.T_RESULT); + this.state = 1622; + this.match(HiveSql.T_SETS); + this.state = 1623; + this.match(HiveSql.L_INT); break; default: throw new antlr4.error.NoViableAltException(this); @@ -15460,7 +15494,7 @@ function Drop_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_drop_stmt; + this.ruleIndex = HiveSql.RULE_drop_stmt; return this; } @@ -15468,11 +15502,11 @@ Drop_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Drop_stmtContext.prototype.constructor = Drop_stmtContext; Drop_stmtContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Drop_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Drop_stmtContext.prototype.table_name = function() { @@ -15480,11 +15514,11 @@ Drop_stmtContext.prototype.table_name = function() { }; Drop_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Drop_stmtContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Drop_stmtContext.prototype.expr = function() { @@ -15492,11 +15526,11 @@ Drop_stmtContext.prototype.expr = function() { }; Drop_stmtContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Drop_stmtContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Drop_stmtContext.prototype.enterRule = function(listener) { @@ -15522,62 +15556,62 @@ Drop_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Drop_stmtContext = Drop_stmtContext; +HiveSql.Drop_stmtContext = Drop_stmtContext; -HiveSqlParser.prototype.drop_stmt = function() { +HiveSql.prototype.drop_stmt = function() { var localctx = new Drop_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 156, HiveSqlParser.RULE_drop_stmt); + this.enterRule(localctx, 156, HiveSql.RULE_drop_stmt); var _la = 0; // Token type try { - this.state = 1643; + this.state = 1640; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,177,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1629; - this.match(HiveSqlParser.T_DROP); + this.state = 1626; + this.match(HiveSql.T_DROP); + this.state = 1627; + this.match(HiveSql.T_TABLE); this.state = 1630; - this.match(HiveSqlParser.T_TABLE); - this.state = 1633; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,175,this._ctx); if(la_===1) { - this.state = 1631; - this.match(HiveSqlParser.T_IF); - this.state = 1632; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1628; + this.match(HiveSql.T_IF); + this.state = 1629; + this.match(HiveSql.T_EXISTS); } - this.state = 1635; + this.state = 1632; this.table_name(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1636; - this.match(HiveSqlParser.T_DROP); - this.state = 1637; + this.state = 1633; + this.match(HiveSql.T_DROP); + this.state = 1634; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DATABASE || _la===HiveSqlParser.T_SCHEMA)) { + if(!(_la===HiveSql.T_DATABASE || _la===HiveSql.T_SCHEMA)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1640; + this.state = 1637; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,176,this._ctx); if(la_===1) { - this.state = 1638; - this.match(HiveSqlParser.T_IF); - this.state = 1639; - this.match(HiveSqlParser.T_EXISTS); + this.state = 1635; + this.match(HiveSql.T_IF); + this.state = 1636; + this.match(HiveSql.T_EXISTS); } - this.state = 1642; + this.state = 1639; this.expr(0); break; @@ -15606,7 +15640,7 @@ function End_transaction_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_end_transaction_stmt; + this.ruleIndex = HiveSql.RULE_end_transaction_stmt; return this; } @@ -15614,11 +15648,11 @@ End_transaction_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p End_transaction_stmtContext.prototype.constructor = End_transaction_stmtContext; End_transaction_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; End_transaction_stmtContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; End_transaction_stmtContext.prototype.enterRule = function(listener) { @@ -15644,18 +15678,18 @@ End_transaction_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.End_transaction_stmtContext = End_transaction_stmtContext; +HiveSql.End_transaction_stmtContext = End_transaction_stmtContext; -HiveSqlParser.prototype.end_transaction_stmt = function() { +HiveSql.prototype.end_transaction_stmt = function() { var localctx = new End_transaction_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 158, HiveSqlParser.RULE_end_transaction_stmt); + this.enterRule(localctx, 158, HiveSql.RULE_end_transaction_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1645; - this.match(HiveSqlParser.T_END); - this.state = 1646; - this.match(HiveSqlParser.T_TRANSACTION); + this.state = 1642; + this.match(HiveSql.T_END); + this.state = 1643; + this.match(HiveSql.T_TRANSACTION); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -15680,7 +15714,7 @@ function Exec_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exec_stmt; + this.ruleIndex = HiveSql.RULE_exec_stmt; return this; } @@ -15692,19 +15726,19 @@ Exec_stmtContext.prototype.expr = function() { }; Exec_stmtContext.prototype.T_EXEC = function() { - return this.getToken(HiveSqlParser.T_EXEC, 0); + return this.getToken(HiveSql.T_EXEC, 0); }; Exec_stmtContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Exec_stmtContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Exec_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Exec_stmtContext.prototype.expr_func_params = function() { @@ -15712,11 +15746,11 @@ Exec_stmtContext.prototype.expr_func_params = function() { }; Exec_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Exec_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Exec_stmtContext.prototype.L_ID = function(i) { @@ -15724,9 +15758,9 @@ Exec_stmtContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; @@ -15740,9 +15774,9 @@ Exec_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -15770,80 +15804,80 @@ Exec_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Exec_stmtContext = Exec_stmtContext; +HiveSql.Exec_stmtContext = Exec_stmtContext; -HiveSqlParser.prototype.exec_stmt = function() { +HiveSql.prototype.exec_stmt = function() { var localctx = new Exec_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 160, HiveSqlParser.RULE_exec_stmt); + this.enterRule(localctx, 160, HiveSql.RULE_exec_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1648; + this.state = 1645; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_EXEC || _la===HiveSqlParser.T_EXECUTE)) { + if(!(_la===HiveSql.T_EXEC || _la===HiveSql.T_EXECUTE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1650; + this.state = 1647; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,178,this._ctx); if(la_===1) { - this.state = 1649; - this.match(HiveSqlParser.T_IMMEDIATE); + this.state = 1646; + this.match(HiveSql.T_IMMEDIATE); } - this.state = 1652; + this.state = 1649; this.expr(0); - this.state = 1658; + this.state = 1655; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,179,this._ctx); if(la_===1) { - this.state = 1653; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1654; + this.state = 1650; + this.match(HiveSql.T_OPEN_P); + this.state = 1651; this.expr_func_params(); - this.state = 1655; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1652; + this.match(HiveSql.T_CLOSE_P); } else if(la_===2) { - this.state = 1657; + this.state = 1654; this.expr_func_params(); } - this.state = 1669; + this.state = 1666; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,181,this._ctx); if(la_===1) { - this.state = 1660; - this.match(HiveSqlParser.T_INTO); - this.state = 1661; - this.match(HiveSqlParser.L_ID); - this.state = 1666; + this.state = 1657; + this.match(HiveSql.T_INTO); + this.state = 1658; + this.match(HiveSql.L_ID); + this.state = 1663; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,180,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1662; - this.match(HiveSqlParser.T_COMMA); - this.state = 1663; - this.match(HiveSqlParser.L_ID); + this.state = 1659; + this.match(HiveSql.T_COMMA); + this.state = 1660; + this.match(HiveSql.L_ID); } - this.state = 1668; + this.state = 1665; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,180,this._ctx); } } - this.state = 1672; + this.state = 1669; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,182,this._ctx); if(la_===1) { - this.state = 1671; + this.state = 1668; this.using_clause(); } @@ -15871,7 +15905,7 @@ function If_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_stmt; + this.ruleIndex = HiveSql.RULE_if_stmt; return this; } @@ -15913,32 +15947,32 @@ If_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_stmtContext = If_stmtContext; +HiveSql.If_stmtContext = If_stmtContext; -HiveSqlParser.prototype.if_stmt = function() { +HiveSql.prototype.if_stmt = function() { var localctx = new If_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 162, HiveSqlParser.RULE_if_stmt); + this.enterRule(localctx, 162, HiveSql.RULE_if_stmt); try { - this.state = 1677; + this.state = 1674; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,183,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1674; + this.state = 1671; this.if_plsql_stmt(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1675; + this.state = 1672; this.if_tsql_stmt(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 1676; + this.state = 1673; this.if_bteq_stmt(); break; @@ -15967,7 +16001,7 @@ function If_plsql_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_plsql_stmt; + this.ruleIndex = HiveSql.RULE_if_plsql_stmt; return this; } @@ -15979,9 +16013,9 @@ If_plsql_stmtContext.prototype.T_IF = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_IF); + return this.getTokens(HiveSql.T_IF); } else { - return this.getToken(HiveSqlParser.T_IF, i); + return this.getToken(HiveSql.T_IF, i); } }; @@ -15991,7 +16025,7 @@ If_plsql_stmtContext.prototype.bool_expr = function() { }; If_plsql_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; If_plsql_stmtContext.prototype.block = function() { @@ -15999,7 +16033,7 @@ If_plsql_stmtContext.prototype.block = function() { }; If_plsql_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; If_plsql_stmtContext.prototype.elseif_block = function(i) { @@ -16040,45 +16074,45 @@ If_plsql_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_plsql_stmtContext = If_plsql_stmtContext; +HiveSql.If_plsql_stmtContext = If_plsql_stmtContext; -HiveSqlParser.prototype.if_plsql_stmt = function() { +HiveSql.prototype.if_plsql_stmt = function() { var localctx = new If_plsql_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 164, HiveSqlParser.RULE_if_plsql_stmt); + this.enterRule(localctx, 164, HiveSql.RULE_if_plsql_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1679; - this.match(HiveSqlParser.T_IF); - this.state = 1680; + this.state = 1676; + this.match(HiveSql.T_IF); + this.state = 1677; this.bool_expr(0); - this.state = 1681; - this.match(HiveSqlParser.T_THEN); - this.state = 1682; + this.state = 1678; + this.match(HiveSql.T_THEN); + this.state = 1679; this.block(); - this.state = 1686; + this.state = 1683; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_ELSIF || _la===HiveSqlParser.T_ELSEIF) { - this.state = 1683; + while(_la===HiveSql.T_ELSEIF || _la===HiveSql.T_ELSIF) { + this.state = 1680; this.elseif_block(); - this.state = 1688; + this.state = 1685; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1690; + this.state = 1687; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 1689; + if(_la===HiveSql.T_ELSE) { + this.state = 1686; this.else_block(); } - this.state = 1692; - this.match(HiveSqlParser.T_END); - this.state = 1693; - this.match(HiveSqlParser.T_IF); + this.state = 1689; + this.match(HiveSql.T_END); + this.state = 1690; + this.match(HiveSql.T_IF); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -16103,7 +16137,7 @@ function If_tsql_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_tsql_stmt; + this.ruleIndex = HiveSql.RULE_if_tsql_stmt; return this; } @@ -16111,7 +16145,7 @@ If_tsql_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype If_tsql_stmtContext.prototype.constructor = If_tsql_stmtContext; If_tsql_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; If_tsql_stmtContext.prototype.bool_expr = function() { @@ -16130,7 +16164,7 @@ If_tsql_stmtContext.prototype.single_block_stmt = function(i) { }; If_tsql_stmtContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; If_tsql_stmtContext.prototype.enterRule = function(listener) { @@ -16156,27 +16190,27 @@ If_tsql_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_tsql_stmtContext = If_tsql_stmtContext; +HiveSql.If_tsql_stmtContext = If_tsql_stmtContext; -HiveSqlParser.prototype.if_tsql_stmt = function() { +HiveSql.prototype.if_tsql_stmt = function() { var localctx = new If_tsql_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 166, HiveSqlParser.RULE_if_tsql_stmt); + this.enterRule(localctx, 166, HiveSql.RULE_if_tsql_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1695; - this.match(HiveSqlParser.T_IF); - this.state = 1696; + this.state = 1692; + this.match(HiveSql.T_IF); + this.state = 1693; this.bool_expr(0); - this.state = 1697; + this.state = 1694; this.single_block_stmt(); - this.state = 1700; + this.state = 1697; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,186,this._ctx); if(la_===1) { - this.state = 1698; - this.match(HiveSqlParser.T_ELSE); - this.state = 1699; + this.state = 1695; + this.match(HiveSql.T_ELSE); + this.state = 1696; this.single_block_stmt(); } @@ -16204,15 +16238,19 @@ function If_bteq_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_if_bteq_stmt; + this.ruleIndex = HiveSql.RULE_if_bteq_stmt; return this; } If_bteq_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); If_bteq_stmtContext.prototype.constructor = If_bteq_stmtContext; +If_bteq_stmtContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); +}; + If_bteq_stmtContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; If_bteq_stmtContext.prototype.bool_expr = function() { @@ -16220,7 +16258,7 @@ If_bteq_stmtContext.prototype.bool_expr = function() { }; If_bteq_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; If_bteq_stmtContext.prototype.single_block_stmt = function() { @@ -16250,23 +16288,23 @@ If_bteq_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.If_bteq_stmtContext = If_bteq_stmtContext; +HiveSql.If_bteq_stmtContext = If_bteq_stmtContext; -HiveSqlParser.prototype.if_bteq_stmt = function() { +HiveSql.prototype.if_bteq_stmt = function() { var localctx = new If_bteq_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 168, HiveSqlParser.RULE_if_bteq_stmt); + this.enterRule(localctx, 168, HiveSql.RULE_if_bteq_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1702; - this.match(HiveSqlParser.T__4); - this.state = 1703; - this.match(HiveSqlParser.T_IF); - this.state = 1704; + this.state = 1699; + this.match(HiveSql.T_DOT); + this.state = 1700; + this.match(HiveSql.T_IF); + this.state = 1701; this.bool_expr(0); - this.state = 1705; - this.match(HiveSqlParser.T_THEN); - this.state = 1706; + this.state = 1702; + this.match(HiveSql.T_THEN); + this.state = 1703; this.single_block_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16292,7 +16330,7 @@ function Elseif_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_elseif_block; + this.ruleIndex = HiveSql.RULE_elseif_block; return this; } @@ -16304,7 +16342,7 @@ Elseif_blockContext.prototype.bool_expr = function() { }; Elseif_blockContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Elseif_blockContext.prototype.block = function() { @@ -16312,11 +16350,11 @@ Elseif_blockContext.prototype.block = function() { }; Elseif_blockContext.prototype.T_ELSIF = function() { - return this.getToken(HiveSqlParser.T_ELSIF, 0); + return this.getToken(HiveSql.T_ELSIF, 0); }; Elseif_blockContext.prototype.T_ELSEIF = function() { - return this.getToken(HiveSqlParser.T_ELSEIF, 0); + return this.getToken(HiveSql.T_ELSEIF, 0); }; Elseif_blockContext.prototype.enterRule = function(listener) { @@ -16342,29 +16380,29 @@ Elseif_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Elseif_blockContext = Elseif_blockContext; +HiveSql.Elseif_blockContext = Elseif_blockContext; -HiveSqlParser.prototype.elseif_block = function() { +HiveSql.prototype.elseif_block = function() { var localctx = new Elseif_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 170, HiveSqlParser.RULE_elseif_block); + this.enterRule(localctx, 170, HiveSql.RULE_elseif_block); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1708; + this.state = 1705; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ELSIF || _la===HiveSqlParser.T_ELSEIF)) { + if(!(_la===HiveSql.T_ELSEIF || _la===HiveSql.T_ELSIF)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1709; + this.state = 1706; this.bool_expr(0); - this.state = 1710; - this.match(HiveSqlParser.T_THEN); - this.state = 1711; + this.state = 1707; + this.match(HiveSql.T_THEN); + this.state = 1708; this.block(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16390,7 +16428,7 @@ function Else_blockContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_else_block; + this.ruleIndex = HiveSql.RULE_else_block; return this; } @@ -16398,7 +16436,7 @@ Else_blockContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Else_blockContext.prototype.constructor = Else_blockContext; Else_blockContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Else_blockContext.prototype.block = function() { @@ -16428,17 +16466,17 @@ Else_blockContext.prototype.accept = function(visitor) { -HiveSqlParser.Else_blockContext = Else_blockContext; +HiveSql.Else_blockContext = Else_blockContext; -HiveSqlParser.prototype.else_block = function() { +HiveSql.prototype.else_block = function() { var localctx = new Else_blockContext(this, this._ctx, this.state); - this.enterRule(localctx, 172, HiveSqlParser.RULE_else_block); + this.enterRule(localctx, 172, HiveSql.RULE_else_block); try { this.enterOuterAlt(localctx, 1); - this.state = 1713; - this.match(HiveSqlParser.T_ELSE); - this.state = 1714; + this.state = 1710; + this.match(HiveSql.T_ELSE); + this.state = 1711; this.block(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -16464,7 +16502,7 @@ function Include_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_include_stmt; + this.ruleIndex = HiveSql.RULE_include_stmt; return this; } @@ -16472,7 +16510,7 @@ Include_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Include_stmtContext.prototype.constructor = Include_stmtContext; Include_stmtContext.prototype.T_INCLUDE = function() { - return this.getToken(HiveSqlParser.T_INCLUDE, 0); + return this.getToken(HiveSql.T_INCLUDE, 0); }; Include_stmtContext.prototype.file_name = function() { @@ -16506,27 +16544,27 @@ Include_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Include_stmtContext = Include_stmtContext; +HiveSql.Include_stmtContext = Include_stmtContext; -HiveSqlParser.prototype.include_stmt = function() { +HiveSql.prototype.include_stmt = function() { var localctx = new Include_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 174, HiveSqlParser.RULE_include_stmt); + this.enterRule(localctx, 174, HiveSql.RULE_include_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 1713; + this.match(HiveSql.T_INCLUDE); this.state = 1716; - this.match(HiveSqlParser.T_INCLUDE); - this.state = 1719; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,187,this._ctx); switch(la_) { case 1: - this.state = 1717; + this.state = 1714; this.file_name(); break; case 2: - this.state = 1718; + this.state = 1715; this.expr(0); break; @@ -16555,7 +16593,7 @@ function Insert_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt; + this.ruleIndex = HiveSql.RULE_insert_stmt; return this; } @@ -16563,7 +16601,7 @@ Insert_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Insert_stmtContext.prototype.constructor = Insert_stmtContext; Insert_stmtContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Insert_stmtContext.prototype.table_name = function() { @@ -16571,15 +16609,15 @@ Insert_stmtContext.prototype.table_name = function() { }; Insert_stmtContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Insert_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Insert_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Insert_stmtContext.prototype.select_stmt = function() { @@ -16617,62 +16655,62 @@ Insert_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmtContext = Insert_stmtContext; +HiveSql.Insert_stmtContext = Insert_stmtContext; -HiveSqlParser.prototype.insert_stmt = function() { +HiveSql.prototype.insert_stmt = function() { var localctx = new Insert_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 176, HiveSqlParser.RULE_insert_stmt); + this.enterRule(localctx, 176, HiveSql.RULE_insert_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1721; - this.match(HiveSqlParser.T_INSERT); - this.state = 1728; + this.state = 1718; + this.match(HiveSql.T_INSERT); + this.state = 1725; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_OVERWRITE: - this.state = 1722; - this.match(HiveSqlParser.T_OVERWRITE); - this.state = 1723; - this.match(HiveSqlParser.T_TABLE); + case HiveSql.T_OVERWRITE: + this.state = 1719; + this.match(HiveSql.T_OVERWRITE); + this.state = 1720; + this.match(HiveSql.T_TABLE); break; - case HiveSqlParser.T_INTO: - this.state = 1724; - this.match(HiveSqlParser.T_INTO); - this.state = 1726; + case HiveSql.T_INTO: + this.state = 1721; + this.match(HiveSql.T_INTO); + this.state = 1723; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,188,this._ctx); if(la_===1) { - this.state = 1725; - this.match(HiveSqlParser.T_TABLE); + this.state = 1722; + this.match(HiveSql.T_TABLE); } break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1730; + this.state = 1727; this.table_name(); - this.state = 1732; + this.state = 1729; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,190,this._ctx); if(la_===1) { - this.state = 1731; + this.state = 1728; this.insert_stmt_cols(); } - this.state = 1736; + this.state = 1733; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - this.state = 1734; + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_WITH: + case HiveSql.T_OPEN_P: + this.state = 1731; this.select_stmt(); break; - case HiveSqlParser.T_VALUES: - this.state = 1735; + case HiveSql.T_VALUES: + this.state = 1732; this.insert_stmt_rows(); break; default: @@ -16702,7 +16740,7 @@ function Insert_stmt_colsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_cols; + this.ruleIndex = HiveSql.RULE_insert_stmt_cols; return this; } @@ -16710,7 +16748,7 @@ Insert_stmt_colsContext.prototype = Object.create(antlr4.ParserRuleContext.proto Insert_stmt_colsContext.prototype.constructor = Insert_stmt_colsContext; Insert_stmt_colsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Insert_stmt_colsContext.prototype.ident = function(i) { @@ -16725,7 +16763,7 @@ Insert_stmt_colsContext.prototype.ident = function(i) { }; Insert_stmt_colsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Insert_stmt_colsContext.prototype.T_COMMA = function(i) { @@ -16733,9 +16771,9 @@ Insert_stmt_colsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16763,33 +16801,33 @@ Insert_stmt_colsContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_colsContext = Insert_stmt_colsContext; +HiveSql.Insert_stmt_colsContext = Insert_stmt_colsContext; -HiveSqlParser.prototype.insert_stmt_cols = function() { +HiveSql.prototype.insert_stmt_cols = function() { var localctx = new Insert_stmt_colsContext(this, this._ctx, this.state); - this.enterRule(localctx, 178, HiveSqlParser.RULE_insert_stmt_cols); + this.enterRule(localctx, 178, HiveSql.RULE_insert_stmt_cols); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1738; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1739; + this.state = 1735; + this.match(HiveSql.T_OPEN_P); + this.state = 1736; this.ident(); - this.state = 1744; + this.state = 1741; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1740; - this.match(HiveSqlParser.T_COMMA); - this.state = 1741; + while(_la===HiveSql.T_COMMA) { + this.state = 1737; + this.match(HiveSql.T_COMMA); + this.state = 1738; this.ident(); - this.state = 1746; + this.state = 1743; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1747; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1744; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -16814,7 +16852,7 @@ function Insert_stmt_rowsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_rows; + this.ruleIndex = HiveSql.RULE_insert_stmt_rows; return this; } @@ -16822,7 +16860,7 @@ Insert_stmt_rowsContext.prototype = Object.create(antlr4.ParserRuleContext.proto Insert_stmt_rowsContext.prototype.constructor = Insert_stmt_rowsContext; Insert_stmt_rowsContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Insert_stmt_rowsContext.prototype.insert_stmt_row = function(i) { @@ -16841,9 +16879,9 @@ Insert_stmt_rowsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16871,29 +16909,29 @@ Insert_stmt_rowsContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_rowsContext = Insert_stmt_rowsContext; +HiveSql.Insert_stmt_rowsContext = Insert_stmt_rowsContext; -HiveSqlParser.prototype.insert_stmt_rows = function() { +HiveSql.prototype.insert_stmt_rows = function() { var localctx = new Insert_stmt_rowsContext(this, this._ctx, this.state); - this.enterRule(localctx, 180, HiveSqlParser.RULE_insert_stmt_rows); + this.enterRule(localctx, 180, HiveSql.RULE_insert_stmt_rows); try { this.enterOuterAlt(localctx, 1); - this.state = 1749; - this.match(HiveSqlParser.T_VALUES); - this.state = 1750; + this.state = 1746; + this.match(HiveSql.T_VALUES); + this.state = 1747; this.insert_stmt_row(); - this.state = 1755; + this.state = 1752; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,193,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1751; - this.match(HiveSqlParser.T_COMMA); - this.state = 1752; + this.state = 1748; + this.match(HiveSql.T_COMMA); + this.state = 1749; this.insert_stmt_row(); } - this.state = 1757; + this.state = 1754; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,193,this._ctx); } @@ -16922,7 +16960,7 @@ function Insert_stmt_rowContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_stmt_row; + this.ruleIndex = HiveSql.RULE_insert_stmt_row; return this; } @@ -16930,7 +16968,7 @@ Insert_stmt_rowContext.prototype = Object.create(antlr4.ParserRuleContext.protot Insert_stmt_rowContext.prototype.constructor = Insert_stmt_rowContext; Insert_stmt_rowContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Insert_stmt_rowContext.prototype.expr = function(i) { @@ -16945,7 +16983,7 @@ Insert_stmt_rowContext.prototype.expr = function(i) { }; Insert_stmt_rowContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Insert_stmt_rowContext.prototype.T_COMMA = function(i) { @@ -16953,9 +16991,9 @@ Insert_stmt_rowContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -16983,33 +17021,33 @@ Insert_stmt_rowContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_stmt_rowContext = Insert_stmt_rowContext; +HiveSql.Insert_stmt_rowContext = Insert_stmt_rowContext; -HiveSqlParser.prototype.insert_stmt_row = function() { +HiveSql.prototype.insert_stmt_row = function() { var localctx = new Insert_stmt_rowContext(this, this._ctx, this.state); - this.enterRule(localctx, 182, HiveSqlParser.RULE_insert_stmt_row); + this.enterRule(localctx, 182, HiveSql.RULE_insert_stmt_row); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1758; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1759; + this.state = 1755; + this.match(HiveSql.T_OPEN_P); + this.state = 1756; this.expr(0); - this.state = 1764; + this.state = 1761; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1760; - this.match(HiveSqlParser.T_COMMA); - this.state = 1761; + while(_la===HiveSql.T_COMMA) { + this.state = 1757; + this.match(HiveSql.T_COMMA); + this.state = 1758; this.expr(0); - this.state = 1766; + this.state = 1763; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1767; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1764; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17034,7 +17072,7 @@ function Insert_directory_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_insert_directory_stmt; + this.ruleIndex = HiveSql.RULE_insert_directory_stmt; return this; } @@ -17042,15 +17080,15 @@ Insert_directory_stmtContext.prototype = Object.create(antlr4.ParserRuleContext. Insert_directory_stmtContext.prototype.constructor = Insert_directory_stmtContext; Insert_directory_stmtContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Insert_directory_stmtContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Insert_directory_stmtContext.prototype.T_DIRECTORY = function() { - return this.getToken(HiveSqlParser.T_DIRECTORY, 0); + return this.getToken(HiveSql.T_DIRECTORY, 0); }; Insert_directory_stmtContext.prototype.expr_file = function() { @@ -17062,7 +17100,7 @@ Insert_directory_stmtContext.prototype.expr_select = function() { }; Insert_directory_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Insert_directory_stmtContext.prototype.enterRule = function(listener) { @@ -17088,32 +17126,32 @@ Insert_directory_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Insert_directory_stmtContext = Insert_directory_stmtContext; +HiveSql.Insert_directory_stmtContext = Insert_directory_stmtContext; -HiveSqlParser.prototype.insert_directory_stmt = function() { +HiveSql.prototype.insert_directory_stmt = function() { var localctx = new Insert_directory_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 184, HiveSqlParser.RULE_insert_directory_stmt); + this.enterRule(localctx, 184, HiveSql.RULE_insert_directory_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1766; + this.match(HiveSql.T_INSERT); + this.state = 1767; + this.match(HiveSql.T_OVERWRITE); this.state = 1769; - this.match(HiveSqlParser.T_INSERT); - this.state = 1770; - this.match(HiveSqlParser.T_OVERWRITE); - this.state = 1772; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_LOCAL) { - this.state = 1771; - this.match(HiveSqlParser.T_LOCAL); + if(_la===HiveSql.T_LOCAL) { + this.state = 1768; + this.match(HiveSql.T_LOCAL); } - this.state = 1774; - this.match(HiveSqlParser.T_DIRECTORY); - this.state = 1775; + this.state = 1771; + this.match(HiveSql.T_DIRECTORY); + this.state = 1772; this.expr_file(); - this.state = 1776; + this.state = 1773; this.expr_select(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17139,7 +17177,7 @@ function Exit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_exit_stmt; + this.ruleIndex = HiveSql.RULE_exit_stmt; return this; } @@ -17147,15 +17185,15 @@ Exit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Exit_stmtContext.prototype.constructor = Exit_stmtContext; Exit_stmtContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Exit_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Exit_stmtContext.prototype.T_WHEN = function() { - return this.getToken(HiveSqlParser.T_WHEN, 0); + return this.getToken(HiveSql.T_WHEN, 0); }; Exit_stmtContext.prototype.bool_expr = function() { @@ -17185,31 +17223,31 @@ Exit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Exit_stmtContext = Exit_stmtContext; +HiveSql.Exit_stmtContext = Exit_stmtContext; -HiveSqlParser.prototype.exit_stmt = function() { +HiveSql.prototype.exit_stmt = function() { var localctx = new Exit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 186, HiveSqlParser.RULE_exit_stmt); + this.enterRule(localctx, 186, HiveSql.RULE_exit_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1778; - this.match(HiveSqlParser.T_EXIT); - this.state = 1780; + this.state = 1775; + this.match(HiveSql.T_EXIT); + this.state = 1777; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,196,this._ctx); if(la_===1) { - this.state = 1779; - this.match(HiveSqlParser.L_ID); + this.state = 1776; + this.match(HiveSql.L_ID); } - this.state = 1784; + this.state = 1781; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,197,this._ctx); if(la_===1) { - this.state = 1782; - this.match(HiveSqlParser.T_WHEN); - this.state = 1783; + this.state = 1779; + this.match(HiveSql.T_WHEN); + this.state = 1780; this.bool_expr(0); } @@ -17237,7 +17275,7 @@ function Get_diag_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt; + this.ruleIndex = HiveSql.RULE_get_diag_stmt; return this; } @@ -17245,11 +17283,11 @@ Get_diag_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Get_diag_stmtContext.prototype.constructor = Get_diag_stmtContext; Get_diag_stmtContext.prototype.T_GET = function() { - return this.getToken(HiveSqlParser.T_GET, 0); + return this.getToken(HiveSql.T_GET, 0); }; Get_diag_stmtContext.prototype.T_DIAGNOSTICS = function() { - return this.getToken(HiveSqlParser.T_DIAGNOSTICS, 0); + return this.getToken(HiveSql.T_DIAGNOSTICS, 0); }; Get_diag_stmtContext.prototype.get_diag_stmt_item = function() { @@ -17279,19 +17317,19 @@ Get_diag_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmtContext = Get_diag_stmtContext; +HiveSql.Get_diag_stmtContext = Get_diag_stmtContext; -HiveSqlParser.prototype.get_diag_stmt = function() { +HiveSql.prototype.get_diag_stmt = function() { var localctx = new Get_diag_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 188, HiveSqlParser.RULE_get_diag_stmt); + this.enterRule(localctx, 188, HiveSql.RULE_get_diag_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1786; - this.match(HiveSqlParser.T_GET); - this.state = 1787; - this.match(HiveSqlParser.T_DIAGNOSTICS); - this.state = 1788; + this.state = 1783; + this.match(HiveSql.T_GET); + this.state = 1784; + this.match(HiveSql.T_DIAGNOSTICS); + this.state = 1785; this.get_diag_stmt_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17317,7 +17355,7 @@ function Get_diag_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_item; return this; } @@ -17355,26 +17393,26 @@ Get_diag_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_itemContext = Get_diag_stmt_itemContext; +HiveSql.Get_diag_stmt_itemContext = Get_diag_stmt_itemContext; -HiveSqlParser.prototype.get_diag_stmt_item = function() { +HiveSql.prototype.get_diag_stmt_item = function() { var localctx = new Get_diag_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 190, HiveSqlParser.RULE_get_diag_stmt_item); + this.enterRule(localctx, 190, HiveSql.RULE_get_diag_stmt_item); try { - this.state = 1792; + this.state = 1789; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,198,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 1790; + this.state = 1787; this.get_diag_stmt_exception_item(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 1791; + this.state = 1788; this.get_diag_stmt_rowcount_item(); break; @@ -17403,7 +17441,7 @@ function Get_diag_stmt_exception_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_exception_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_exception_item; return this; } @@ -17411,11 +17449,11 @@ Get_diag_stmt_exception_itemContext.prototype = Object.create(antlr4.ParserRuleC Get_diag_stmt_exception_itemContext.prototype.constructor = Get_diag_stmt_exception_itemContext; Get_diag_stmt_exception_itemContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Get_diag_stmt_exception_itemContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); }; Get_diag_stmt_exception_itemContext.prototype.ident = function() { @@ -17423,11 +17461,11 @@ Get_diag_stmt_exception_itemContext.prototype.ident = function() { }; Get_diag_stmt_exception_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Get_diag_stmt_exception_itemContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Get_diag_stmt_exception_itemContext.prototype.enterRule = function(listener) { @@ -17453,24 +17491,24 @@ Get_diag_stmt_exception_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_exception_itemContext = Get_diag_stmt_exception_itemContext; +HiveSql.Get_diag_stmt_exception_itemContext = Get_diag_stmt_exception_itemContext; -HiveSqlParser.prototype.get_diag_stmt_exception_item = function() { +HiveSql.prototype.get_diag_stmt_exception_item = function() { var localctx = new Get_diag_stmt_exception_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 192, HiveSqlParser.RULE_get_diag_stmt_exception_item); + this.enterRule(localctx, 192, HiveSql.RULE_get_diag_stmt_exception_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1794; - this.match(HiveSqlParser.T_EXCEPTION); - this.state = 1795; - this.match(HiveSqlParser.L_INT); - this.state = 1796; + this.state = 1791; + this.match(HiveSql.T_EXCEPTION); + this.state = 1792; + this.match(HiveSql.L_INT); + this.state = 1793; this.ident(); - this.state = 1797; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1798; - this.match(HiveSqlParser.T_MESSAGE_TEXT); + this.state = 1794; + this.match(HiveSql.T_EQUAL); + this.state = 1795; + this.match(HiveSql.T_MESSAGE_TEXT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17495,7 +17533,7 @@ function Get_diag_stmt_rowcount_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_get_diag_stmt_rowcount_item; + this.ruleIndex = HiveSql.RULE_get_diag_stmt_rowcount_item; return this; } @@ -17507,11 +17545,11 @@ Get_diag_stmt_rowcount_itemContext.prototype.ident = function() { }; Get_diag_stmt_rowcount_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Get_diag_stmt_rowcount_itemContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Get_diag_stmt_rowcount_itemContext.prototype.enterRule = function(listener) { @@ -17537,20 +17575,20 @@ Get_diag_stmt_rowcount_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Get_diag_stmt_rowcount_itemContext = Get_diag_stmt_rowcount_itemContext; +HiveSql.Get_diag_stmt_rowcount_itemContext = Get_diag_stmt_rowcount_itemContext; -HiveSqlParser.prototype.get_diag_stmt_rowcount_item = function() { +HiveSql.prototype.get_diag_stmt_rowcount_item = function() { var localctx = new Get_diag_stmt_rowcount_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 194, HiveSqlParser.RULE_get_diag_stmt_rowcount_item); + this.enterRule(localctx, 194, HiveSql.RULE_get_diag_stmt_rowcount_item); try { this.enterOuterAlt(localctx, 1); - this.state = 1800; + this.state = 1797; this.ident(); - this.state = 1801; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1802; - this.match(HiveSqlParser.T_ROW_COUNT); + this.state = 1798; + this.match(HiveSql.T_EQUAL); + this.state = 1799; + this.match(HiveSql.T_ROW_COUNT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -17575,7 +17613,7 @@ function Grant_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_grant_stmt; + this.ruleIndex = HiveSql.RULE_grant_stmt; return this; } @@ -17583,7 +17621,7 @@ Grant_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Grant_stmtContext.prototype.constructor = Grant_stmtContext; Grant_stmtContext.prototype.T_GRANT = function() { - return this.getToken(HiveSqlParser.T_GRANT, 0); + return this.getToken(HiveSql.T_GRANT, 0); }; Grant_stmtContext.prototype.grant_stmt_item = function(i) { @@ -17598,11 +17636,11 @@ Grant_stmtContext.prototype.grant_stmt_item = function(i) { }; Grant_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Grant_stmtContext.prototype.T_ROLE = function() { - return this.getToken(HiveSqlParser.T_ROLE, 0); + return this.getToken(HiveSql.T_ROLE, 0); }; Grant_stmtContext.prototype.ident = function() { @@ -17614,9 +17652,9 @@ Grant_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -17644,36 +17682,36 @@ Grant_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Grant_stmtContext = Grant_stmtContext; +HiveSql.Grant_stmtContext = Grant_stmtContext; -HiveSqlParser.prototype.grant_stmt = function() { +HiveSql.prototype.grant_stmt = function() { var localctx = new Grant_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 196, HiveSqlParser.RULE_grant_stmt); + this.enterRule(localctx, 196, HiveSql.RULE_grant_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1804; - this.match(HiveSqlParser.T_GRANT); - this.state = 1805; + this.state = 1801; + this.match(HiveSql.T_GRANT); + this.state = 1802; this.grant_stmt_item(); - this.state = 1810; + this.state = 1807; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1806; - this.match(HiveSqlParser.T_COMMA); - this.state = 1807; + while(_la===HiveSql.T_COMMA) { + this.state = 1803; + this.match(HiveSql.T_COMMA); + this.state = 1804; this.grant_stmt_item(); - this.state = 1812; + this.state = 1809; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1813; - this.match(HiveSqlParser.T_TO); - this.state = 1814; - this.match(HiveSqlParser.T_ROLE); - this.state = 1815; + this.state = 1810; + this.match(HiveSql.T_TO); + this.state = 1811; + this.match(HiveSql.T_ROLE); + this.state = 1812; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17699,7 +17737,7 @@ function Grant_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_grant_stmt_item; + this.ruleIndex = HiveSql.RULE_grant_stmt_item; return this; } @@ -17707,15 +17745,15 @@ Grant_stmt_itemContext.prototype = Object.create(antlr4.ParserRuleContext.protot Grant_stmt_itemContext.prototype.constructor = Grant_stmt_itemContext; Grant_stmt_itemContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Grant_stmt_itemContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Grant_stmt_itemContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Grant_stmt_itemContext.prototype.ident = function() { @@ -17745,21 +17783,21 @@ Grant_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Grant_stmt_itemContext = Grant_stmt_itemContext; +HiveSql.Grant_stmt_itemContext = Grant_stmt_itemContext; -HiveSqlParser.prototype.grant_stmt_item = function() { +HiveSql.prototype.grant_stmt_item = function() { var localctx = new Grant_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 198, HiveSqlParser.RULE_grant_stmt_item); + this.enterRule(localctx, 198, HiveSql.RULE_grant_stmt_item); try { this.enterOuterAlt(localctx, 1); + this.state = 1814; + this.match(HiveSql.T_EXECUTE); + this.state = 1815; + this.match(HiveSql.T_ON); + this.state = 1816; + this.match(HiveSql.T_PROCEDURE); this.state = 1817; - this.match(HiveSqlParser.T_EXECUTE); - this.state = 1818; - this.match(HiveSqlParser.T_ON); - this.state = 1819; - this.match(HiveSqlParser.T_PROCEDURE); - this.state = 1820; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -17785,7 +17823,7 @@ function Leave_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_leave_stmt; + this.ruleIndex = HiveSql.RULE_leave_stmt; return this; } @@ -17793,11 +17831,11 @@ Leave_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Leave_stmtContext.prototype.constructor = Leave_stmtContext; Leave_stmtContext.prototype.T_LEAVE = function() { - return this.getToken(HiveSqlParser.T_LEAVE, 0); + return this.getToken(HiveSql.T_LEAVE, 0); }; Leave_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Leave_stmtContext.prototype.enterRule = function(listener) { @@ -17823,22 +17861,22 @@ Leave_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Leave_stmtContext = Leave_stmtContext; +HiveSql.Leave_stmtContext = Leave_stmtContext; -HiveSqlParser.prototype.leave_stmt = function() { +HiveSql.prototype.leave_stmt = function() { var localctx = new Leave_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 200, HiveSqlParser.RULE_leave_stmt); + this.enterRule(localctx, 200, HiveSql.RULE_leave_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1822; - this.match(HiveSqlParser.T_LEAVE); - this.state = 1824; + this.state = 1819; + this.match(HiveSql.T_LEAVE); + this.state = 1821; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,200,this._ctx); if(la_===1) { - this.state = 1823; - this.match(HiveSqlParser.L_ID); + this.state = 1820; + this.match(HiveSql.L_ID); } } catch (re) { @@ -17865,7 +17903,7 @@ function Map_object_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_map_object_stmt; + this.ruleIndex = HiveSql.RULE_map_object_stmt; return this; } @@ -17873,11 +17911,11 @@ Map_object_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Map_object_stmtContext.prototype.constructor = Map_object_stmtContext; Map_object_stmtContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Map_object_stmtContext.prototype.T_OBJECT = function() { - return this.getToken(HiveSqlParser.T_OBJECT, 0); + return this.getToken(HiveSql.T_OBJECT, 0); }; Map_object_stmtContext.prototype.expr = function(i) { @@ -17892,11 +17930,11 @@ Map_object_stmtContext.prototype.expr = function(i) { }; Map_object_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Map_object_stmtContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Map_object_stmtContext.prototype.enterRule = function(listener) { @@ -17922,37 +17960,37 @@ Map_object_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Map_object_stmtContext = Map_object_stmtContext; +HiveSql.Map_object_stmtContext = Map_object_stmtContext; -HiveSqlParser.prototype.map_object_stmt = function() { +HiveSql.prototype.map_object_stmt = function() { var localctx = new Map_object_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 202, HiveSqlParser.RULE_map_object_stmt); + this.enterRule(localctx, 202, HiveSql.RULE_map_object_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1826; - this.match(HiveSqlParser.T_MAP); - this.state = 1827; - this.match(HiveSqlParser.T_OBJECT); - this.state = 1828; + this.state = 1823; + this.match(HiveSql.T_MAP); + this.state = 1824; + this.match(HiveSql.T_OBJECT); + this.state = 1825; this.expr(0); - this.state = 1831; + this.state = 1828; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,201,this._ctx); if(la_===1) { - this.state = 1829; - this.match(HiveSqlParser.T_TO); - this.state = 1830; + this.state = 1826; + this.match(HiveSql.T_TO); + this.state = 1827; this.expr(0); } - this.state = 1835; + this.state = 1832; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,202,this._ctx); if(la_===1) { - this.state = 1833; - this.match(HiveSqlParser.T_AT); - this.state = 1834; + this.state = 1830; + this.match(HiveSql.T_AT); + this.state = 1831; this.expr(0); } @@ -17980,7 +18018,7 @@ function Open_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_open_stmt; + this.ruleIndex = HiveSql.RULE_open_stmt; return this; } @@ -17988,15 +18026,15 @@ Open_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Open_stmtContext.prototype.constructor = Open_stmtContext; Open_stmtContext.prototype.T_OPEN = function() { - return this.getToken(HiveSqlParser.T_OPEN, 0); + return this.getToken(HiveSql.T_OPEN, 0); }; Open_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Open_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Open_stmtContext.prototype.select_stmt = function() { @@ -18030,35 +18068,35 @@ Open_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Open_stmtContext = Open_stmtContext; +HiveSql.Open_stmtContext = Open_stmtContext; -HiveSqlParser.prototype.open_stmt = function() { +HiveSql.prototype.open_stmt = function() { var localctx = new Open_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 204, HiveSqlParser.RULE_open_stmt); + this.enterRule(localctx, 204, HiveSql.RULE_open_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1837; - this.match(HiveSqlParser.T_OPEN); - this.state = 1838; - this.match(HiveSqlParser.L_ID); - this.state = 1844; + this.state = 1834; + this.match(HiveSql.T_OPEN); + this.state = 1835; + this.match(HiveSql.L_ID); + this.state = 1841; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,204,this._ctx); if(la_===1) { + this.state = 1836; + this.match(HiveSql.T_FOR); this.state = 1839; - this.match(HiveSqlParser.T_FOR); - this.state = 1842; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,203,this._ctx); switch(la_) { case 1: - this.state = 1840; + this.state = 1837; this.select_stmt(); break; case 2: - this.state = 1841; + this.state = 1838; this.expr(0); break; @@ -18089,7 +18127,7 @@ function Fetch_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fetch_stmt; + this.ruleIndex = HiveSql.RULE_fetch_stmt; return this; } @@ -18097,7 +18135,7 @@ Fetch_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Fetch_stmtContext.prototype.constructor = Fetch_stmtContext; Fetch_stmtContext.prototype.T_FETCH = function() { - return this.getToken(HiveSqlParser.T_FETCH, 0); + return this.getToken(HiveSql.T_FETCH, 0); }; Fetch_stmtContext.prototype.L_ID = function(i) { @@ -18105,19 +18143,19 @@ Fetch_stmtContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; Fetch_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Fetch_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Fetch_stmtContext.prototype.T_COMMA = function(i) { @@ -18125,9 +18163,9 @@ Fetch_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -18155,42 +18193,42 @@ Fetch_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Fetch_stmtContext = Fetch_stmtContext; +HiveSql.Fetch_stmtContext = Fetch_stmtContext; -HiveSqlParser.prototype.fetch_stmt = function() { +HiveSql.prototype.fetch_stmt = function() { var localctx = new Fetch_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 206, HiveSqlParser.RULE_fetch_stmt); + this.enterRule(localctx, 206, HiveSql.RULE_fetch_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1846; - this.match(HiveSqlParser.T_FETCH); - this.state = 1848; + this.state = 1843; + this.match(HiveSql.T_FETCH); + this.state = 1845; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_FROM) { - this.state = 1847; - this.match(HiveSqlParser.T_FROM); + if(_la===HiveSql.T_FROM) { + this.state = 1844; + this.match(HiveSql.T_FROM); } - this.state = 1850; - this.match(HiveSqlParser.L_ID); - this.state = 1851; - this.match(HiveSqlParser.T_INTO); - this.state = 1852; - this.match(HiveSqlParser.L_ID); - this.state = 1857; + this.state = 1847; + this.match(HiveSql.L_ID); + this.state = 1848; + this.match(HiveSql.T_INTO); + this.state = 1849; + this.match(HiveSql.L_ID); + this.state = 1854; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,206,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1853; - this.match(HiveSqlParser.T_COMMA); - this.state = 1854; - this.match(HiveSqlParser.L_ID); + this.state = 1850; + this.match(HiveSql.T_COMMA); + this.state = 1851; + this.match(HiveSql.L_ID); } - this.state = 1859; + this.state = 1856; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,206,this._ctx); } @@ -18219,7 +18257,7 @@ function Collect_stats_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_collect_stats_stmt; + this.ruleIndex = HiveSql.RULE_collect_stats_stmt; return this; } @@ -18227,11 +18265,11 @@ Collect_stats_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.pro Collect_stats_stmtContext.prototype.constructor = Collect_stats_stmtContext; Collect_stats_stmtContext.prototype.T_COLLECT = function() { - return this.getToken(HiveSqlParser.T_COLLECT, 0); + return this.getToken(HiveSql.T_COLLECT, 0); }; Collect_stats_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Collect_stats_stmtContext.prototype.table_name = function() { @@ -18239,11 +18277,11 @@ Collect_stats_stmtContext.prototype.table_name = function() { }; Collect_stats_stmtContext.prototype.T_STATISTICS = function() { - return this.getToken(HiveSqlParser.T_STATISTICS, 0); + return this.getToken(HiveSql.T_STATISTICS, 0); }; Collect_stats_stmtContext.prototype.T_STATS = function() { - return this.getToken(HiveSqlParser.T_STATS, 0); + return this.getToken(HiveSql.T_STATS, 0); }; Collect_stats_stmtContext.prototype.collect_stats_clause = function() { @@ -18273,35 +18311,35 @@ Collect_stats_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Collect_stats_stmtContext = Collect_stats_stmtContext; +HiveSql.Collect_stats_stmtContext = Collect_stats_stmtContext; -HiveSqlParser.prototype.collect_stats_stmt = function() { +HiveSql.prototype.collect_stats_stmt = function() { var localctx = new Collect_stats_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 208, HiveSqlParser.RULE_collect_stats_stmt); + this.enterRule(localctx, 208, HiveSql.RULE_collect_stats_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1860; - this.match(HiveSqlParser.T_COLLECT); - this.state = 1861; + this.state = 1857; + this.match(HiveSql.T_COLLECT); + this.state = 1858; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_STATISTICS || _la===HiveSqlParser.T_STATS)) { + if(!(_la===HiveSql.T_STATS || _la===HiveSql.T_STATISTICS)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1862; - this.match(HiveSqlParser.T_ON); - this.state = 1863; + this.state = 1859; + this.match(HiveSql.T_ON); + this.state = 1860; this.table_name(); - this.state = 1865; + this.state = 1862; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,207,this._ctx); if(la_===1) { - this.state = 1864; + this.state = 1861; this.collect_stats_clause(); } @@ -18329,7 +18367,7 @@ function Collect_stats_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_collect_stats_clause; + this.ruleIndex = HiveSql.RULE_collect_stats_clause; return this; } @@ -18337,11 +18375,11 @@ Collect_stats_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.p Collect_stats_clauseContext.prototype.constructor = Collect_stats_clauseContext; Collect_stats_clauseContext.prototype.T_COLUMN = function() { - return this.getToken(HiveSqlParser.T_COLUMN, 0); + return this.getToken(HiveSql.T_COLUMN, 0); }; Collect_stats_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Collect_stats_clauseContext.prototype.ident = function(i) { @@ -18356,7 +18394,7 @@ Collect_stats_clauseContext.prototype.ident = function(i) { }; Collect_stats_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Collect_stats_clauseContext.prototype.T_COMMA = function(i) { @@ -18364,9 +18402,9 @@ Collect_stats_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -18394,35 +18432,35 @@ Collect_stats_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Collect_stats_clauseContext = Collect_stats_clauseContext; +HiveSql.Collect_stats_clauseContext = Collect_stats_clauseContext; -HiveSqlParser.prototype.collect_stats_clause = function() { +HiveSql.prototype.collect_stats_clause = function() { var localctx = new Collect_stats_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 210, HiveSqlParser.RULE_collect_stats_clause); + this.enterRule(localctx, 210, HiveSql.RULE_collect_stats_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1867; - this.match(HiveSqlParser.T_COLUMN); - this.state = 1868; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1869; + this.state = 1864; + this.match(HiveSql.T_COLUMN); + this.state = 1865; + this.match(HiveSql.T_OPEN_P); + this.state = 1866; this.ident(); - this.state = 1874; + this.state = 1871; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1870; - this.match(HiveSqlParser.T_COMMA); - this.state = 1871; + while(_la===HiveSql.T_COMMA) { + this.state = 1867; + this.match(HiveSql.T_COMMA); + this.state = 1868; this.ident(); - this.state = 1876; + this.state = 1873; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1877; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1874; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -18447,7 +18485,7 @@ function Close_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_close_stmt; + this.ruleIndex = HiveSql.RULE_close_stmt; return this; } @@ -18455,11 +18493,11 @@ Close_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Close_stmtContext.prototype.constructor = Close_stmtContext; Close_stmtContext.prototype.T_CLOSE = function() { - return this.getToken(HiveSqlParser.T_CLOSE, 0); + return this.getToken(HiveSql.T_CLOSE, 0); }; Close_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Close_stmtContext.prototype.enterRule = function(listener) { @@ -18485,18 +18523,18 @@ Close_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Close_stmtContext = Close_stmtContext; +HiveSql.Close_stmtContext = Close_stmtContext; -HiveSqlParser.prototype.close_stmt = function() { +HiveSql.prototype.close_stmt = function() { var localctx = new Close_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 212, HiveSqlParser.RULE_close_stmt); + this.enterRule(localctx, 212, HiveSql.RULE_close_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1879; - this.match(HiveSqlParser.T_CLOSE); - this.state = 1880; - this.match(HiveSqlParser.L_ID); + this.state = 1876; + this.match(HiveSql.T_CLOSE); + this.state = 1877; + this.match(HiveSql.L_ID); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -18521,7 +18559,7 @@ function Cmp_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cmp_stmt; + this.ruleIndex = HiveSql.RULE_cmp_stmt; return this; } @@ -18529,7 +18567,7 @@ Cmp_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Cmp_stmtContext.prototype.constructor = Cmp_stmtContext; Cmp_stmtContext.prototype.T_CMP = function() { - return this.getToken(HiveSqlParser.T_CMP, 0); + return this.getToken(HiveSql.T_CMP, 0); }; Cmp_stmtContext.prototype.cmp_source = function(i) { @@ -18544,15 +18582,15 @@ Cmp_stmtContext.prototype.cmp_source = function(i) { }; Cmp_stmtContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; Cmp_stmtContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Cmp_stmtContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Cmp_stmtContext.prototype.enterRule = function(listener) { @@ -18578,31 +18616,31 @@ Cmp_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Cmp_stmtContext = Cmp_stmtContext; +HiveSql.Cmp_stmtContext = Cmp_stmtContext; -HiveSqlParser.prototype.cmp_stmt = function() { +HiveSql.prototype.cmp_stmt = function() { var localctx = new Cmp_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 214, HiveSqlParser.RULE_cmp_stmt); + this.enterRule(localctx, 214, HiveSql.RULE_cmp_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1882; - this.match(HiveSqlParser.T_CMP); - this.state = 1883; + this.state = 1879; + this.match(HiveSql.T_CMP); + this.state = 1880; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ROW_COUNT || _la===HiveSqlParser.T_SUM)) { + if(!(_la===HiveSql.T_ROW_COUNT || _la===HiveSql.T_SUM)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 1884; + this.state = 1881; this.cmp_source(); - this.state = 1885; - this.match(HiveSqlParser.T_COMMA); - this.state = 1886; + this.state = 1882; + this.match(HiveSql.T_COMMA); + this.state = 1883; this.cmp_source(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -18628,7 +18666,7 @@ function Cmp_sourceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cmp_source; + this.ruleIndex = HiveSql.RULE_cmp_source; return this; } @@ -18640,7 +18678,7 @@ Cmp_sourceContext.prototype.table_name = function() { }; Cmp_sourceContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cmp_sourceContext.prototype.select_stmt = function() { @@ -18648,11 +18686,11 @@ Cmp_sourceContext.prototype.select_stmt = function() { }; Cmp_sourceContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cmp_sourceContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Cmp_sourceContext.prototype.ident = function() { @@ -18686,366 +18724,365 @@ Cmp_sourceContext.prototype.accept = function(visitor) { -HiveSqlParser.Cmp_sourceContext = Cmp_sourceContext; +HiveSql.Cmp_sourceContext = Cmp_sourceContext; -HiveSqlParser.prototype.cmp_source = function() { +HiveSql.prototype.cmp_source = function() { var localctx = new Cmp_sourceContext(this, this._ctx, this.state); - this.enterRule(localctx, 216, HiveSqlParser.RULE_cmp_source); + this.enterRule(localctx, 216, HiveSql.RULE_cmp_source); try { this.enterOuterAlt(localctx, 1); - this.state = 1896; + this.state = 1893; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1888; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1885; this.table_name(); - this.state = 1890; + this.state = 1887; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,209,this._ctx); if(la_===1) { - this.state = 1889; + this.state = 1886; this.where_clause(); } break; - case HiveSqlParser.T_OPEN_P: - this.state = 1892; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1893; + case HiveSql.T_OPEN_P: + this.state = 1889; + this.match(HiveSql.T_OPEN_P); + this.state = 1890; this.select_stmt(); - this.state = 1894; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1891; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1900; + this.state = 1897; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,211,this._ctx); if(la_===1) { - this.state = 1898; - this.match(HiveSqlParser.T_AT); - this.state = 1899; + this.state = 1895; + this.match(HiveSql.T_AT); + this.state = 1896; this.ident(); } @@ -19073,7 +19110,7 @@ function Copy_from_local_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_from_local_stmt; + this.ruleIndex = HiveSql.RULE_copy_from_local_stmt; return this; } @@ -19081,15 +19118,15 @@ Copy_from_local_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.p Copy_from_local_stmtContext.prototype.constructor = Copy_from_local_stmtContext; Copy_from_local_stmtContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Copy_from_local_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Copy_from_local_stmtContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Copy_from_local_stmtContext.prototype.copy_source = function(i) { @@ -19104,7 +19141,7 @@ Copy_from_local_stmtContext.prototype.copy_source = function(i) { }; Copy_from_local_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Copy_from_local_stmtContext.prototype.copy_target = function() { @@ -19116,9 +19153,9 @@ Copy_from_local_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -19157,48 +19194,48 @@ Copy_from_local_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_from_local_stmtContext = Copy_from_local_stmtContext; +HiveSql.Copy_from_local_stmtContext = Copy_from_local_stmtContext; -HiveSqlParser.prototype.copy_from_local_stmt = function() { +HiveSql.prototype.copy_from_local_stmt = function() { var localctx = new Copy_from_local_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 218, HiveSqlParser.RULE_copy_from_local_stmt); + this.enterRule(localctx, 218, HiveSql.RULE_copy_from_local_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1899; + this.match(HiveSql.T_COPY); + this.state = 1900; + this.match(HiveSql.T_FROM); + this.state = 1901; + this.match(HiveSql.T_LOCAL); this.state = 1902; - this.match(HiveSqlParser.T_COPY); - this.state = 1903; - this.match(HiveSqlParser.T_FROM); - this.state = 1904; - this.match(HiveSqlParser.T_LOCAL); - this.state = 1905; this.copy_source(); - this.state = 1910; + this.state = 1907; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1906; - this.match(HiveSqlParser.T_COMMA); - this.state = 1907; + while(_la===HiveSql.T_COMMA) { + this.state = 1903; + this.match(HiveSql.T_COMMA); + this.state = 1904; this.copy_source(); - this.state = 1912; + this.state = 1909; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1913; - this.match(HiveSqlParser.T_TO); - this.state = 1914; + this.state = 1910; + this.match(HiveSql.T_TO); + this.state = 1911; this.copy_target(); - this.state = 1918; + this.state = 1915; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,213,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1915; + this.state = 1912; this.copy_file_option(); } - this.state = 1920; + this.state = 1917; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,213,this._ctx); } @@ -19227,7 +19264,7 @@ function Copy_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_stmt; + this.ruleIndex = HiveSql.RULE_copy_stmt; return this; } @@ -19235,11 +19272,11 @@ Copy_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Copy_stmtContext.prototype.constructor = Copy_stmtContext; Copy_stmtContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Copy_stmtContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Copy_stmtContext.prototype.copy_target = function() { @@ -19251,7 +19288,7 @@ Copy_stmtContext.prototype.table_name = function() { }; Copy_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Copy_stmtContext.prototype.select_stmt = function() { @@ -19259,11 +19296,11 @@ Copy_stmtContext.prototype.select_stmt = function() { }; Copy_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Copy_stmtContext.prototype.T_HDFS = function() { - return this.getToken(HiveSqlParser.T_HDFS, 0); + return this.getToken(HiveSql.T_HDFS, 0); }; Copy_stmtContext.prototype.copy_option = function(i) { @@ -19300,374 +19337,373 @@ Copy_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_stmtContext = Copy_stmtContext; +HiveSql.Copy_stmtContext = Copy_stmtContext; -HiveSqlParser.prototype.copy_stmt = function() { +HiveSql.prototype.copy_stmt = function() { var localctx = new Copy_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 220, HiveSqlParser.RULE_copy_stmt); + this.enterRule(localctx, 220, HiveSql.RULE_copy_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1921; - this.match(HiveSqlParser.T_COPY); - this.state = 1927; + this.state = 1918; + this.match(HiveSql.T_COPY); + this.state = 1924; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 1922; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 1919; this.table_name(); break; - case HiveSqlParser.T_OPEN_P: - this.state = 1923; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1924; + case HiveSql.T_OPEN_P: + this.state = 1920; + this.match(HiveSql.T_OPEN_P); + this.state = 1921; this.select_stmt(); - this.state = 1925; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1922; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 1929; - this.match(HiveSqlParser.T_TO); - this.state = 1931; + this.state = 1926; + this.match(HiveSql.T_TO); + this.state = 1928; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,215,this._ctx); if(la_===1) { - this.state = 1930; - this.match(HiveSqlParser.T_HDFS); + this.state = 1927; + this.match(HiveSql.T_HDFS); } - this.state = 1933; + this.state = 1930; this.copy_target(); - this.state = 1937; + this.state = 1934; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,216,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 1934; + this.state = 1931; this.copy_option(); } - this.state = 1939; + this.state = 1936; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,216,this._ctx); } @@ -19696,7 +19732,7 @@ function Copy_sourceContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_source; + this.ruleIndex = HiveSql.RULE_copy_source; return this; } @@ -19734,25 +19770,25 @@ Copy_sourceContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_sourceContext = Copy_sourceContext; +HiveSql.Copy_sourceContext = Copy_sourceContext; -HiveSqlParser.prototype.copy_source = function() { +HiveSql.prototype.copy_source = function() { var localctx = new Copy_sourceContext(this, this._ctx, this.state); - this.enterRule(localctx, 222, HiveSqlParser.RULE_copy_source); + this.enterRule(localctx, 222, HiveSql.RULE_copy_source); try { this.enterOuterAlt(localctx, 1); - this.state = 1942; + this.state = 1939; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,217,this._ctx); switch(la_) { case 1: - this.state = 1940; + this.state = 1937; this.file_name(); break; case 2: - this.state = 1941; + this.state = 1938; this.expr(0); break; @@ -19781,7 +19817,7 @@ function Copy_targetContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_target; + this.ruleIndex = HiveSql.RULE_copy_target; return this; } @@ -19819,25 +19855,25 @@ Copy_targetContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_targetContext = Copy_targetContext; +HiveSql.Copy_targetContext = Copy_targetContext; -HiveSqlParser.prototype.copy_target = function() { +HiveSql.prototype.copy_target = function() { var localctx = new Copy_targetContext(this, this._ctx, this.state); - this.enterRule(localctx, 224, HiveSqlParser.RULE_copy_target); + this.enterRule(localctx, 224, HiveSql.RULE_copy_target); try { this.enterOuterAlt(localctx, 1); - this.state = 1946; + this.state = 1943; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,218,this._ctx); switch(la_) { case 1: - this.state = 1944; + this.state = 1941; this.file_name(); break; case 2: - this.state = 1945; + this.state = 1942; this.expr(0); break; @@ -19866,7 +19902,7 @@ function Copy_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_option; + this.ruleIndex = HiveSql.RULE_copy_option; return this; } @@ -19874,7 +19910,7 @@ Copy_optionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Copy_optionContext.prototype.constructor = Copy_optionContext; Copy_optionContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Copy_optionContext.prototype.ident = function() { @@ -19882,7 +19918,7 @@ Copy_optionContext.prototype.ident = function() { }; Copy_optionContext.prototype.T_BATCHSIZE = function() { - return this.getToken(HiveSqlParser.T_BATCHSIZE, 0); + return this.getToken(HiveSql.T_BATCHSIZE, 0); }; Copy_optionContext.prototype.expr = function() { @@ -19890,11 +19926,11 @@ Copy_optionContext.prototype.expr = function() { }; Copy_optionContext.prototype.T_DELIMITER = function() { - return this.getToken(HiveSqlParser.T_DELIMITER, 0); + return this.getToken(HiveSql.T_DELIMITER, 0); }; Copy_optionContext.prototype.T_SQLINSERT = function() { - return this.getToken(HiveSqlParser.T_SQLINSERT, 0); + return this.getToken(HiveSql.T_SQLINSERT, 0); }; Copy_optionContext.prototype.enterRule = function(listener) { @@ -19920,42 +19956,42 @@ Copy_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_optionContext = Copy_optionContext; +HiveSql.Copy_optionContext = Copy_optionContext; -HiveSqlParser.prototype.copy_option = function() { +HiveSql.prototype.copy_option = function() { var localctx = new Copy_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 226, HiveSqlParser.RULE_copy_option); + this.enterRule(localctx, 226, HiveSql.RULE_copy_option); try { - this.state = 1956; + this.state = 1953; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AT: + case HiveSql.T_AT: this.enterOuterAlt(localctx, 1); - this.state = 1948; - this.match(HiveSqlParser.T_AT); - this.state = 1949; + this.state = 1945; + this.match(HiveSql.T_AT); + this.state = 1946; this.ident(); break; - case HiveSqlParser.T_BATCHSIZE: + case HiveSql.T_BATCHSIZE: this.enterOuterAlt(localctx, 2); - this.state = 1950; - this.match(HiveSqlParser.T_BATCHSIZE); - this.state = 1951; + this.state = 1947; + this.match(HiveSql.T_BATCHSIZE); + this.state = 1948; this.expr(0); break; - case HiveSqlParser.T_DELIMITER: + case HiveSql.T_DELIMITER: this.enterOuterAlt(localctx, 3); - this.state = 1952; - this.match(HiveSqlParser.T_DELIMITER); - this.state = 1953; + this.state = 1949; + this.match(HiveSql.T_DELIMITER); + this.state = 1950; this.expr(0); break; - case HiveSqlParser.T_SQLINSERT: + case HiveSql.T_SQLINSERT: this.enterOuterAlt(localctx, 4); - this.state = 1954; - this.match(HiveSqlParser.T_SQLINSERT); - this.state = 1955; + this.state = 1951; + this.match(HiveSql.T_SQLINSERT); + this.state = 1952; this.ident(); break; default: @@ -19985,7 +20021,7 @@ function Copy_file_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_copy_file_option; + this.ruleIndex = HiveSql.RULE_copy_file_option; return this; } @@ -19993,15 +20029,15 @@ Copy_file_optionContext.prototype = Object.create(antlr4.ParserRuleContext.proto Copy_file_optionContext.prototype.constructor = Copy_file_optionContext; Copy_file_optionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Copy_file_optionContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Copy_file_optionContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Copy_file_optionContext.prototype.enterRule = function(listener) { @@ -20027,18 +20063,18 @@ Copy_file_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Copy_file_optionContext = Copy_file_optionContext; +HiveSql.Copy_file_optionContext = Copy_file_optionContext; -HiveSqlParser.prototype.copy_file_option = function() { +HiveSql.prototype.copy_file_option = function() { var localctx = new Copy_file_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 228, HiveSqlParser.RULE_copy_file_option); + this.enterRule(localctx, 228, HiveSql.RULE_copy_file_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1958; + this.state = 1955; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DELETE || _la===HiveSqlParser.T_OVERWRITE || _la===HiveSqlParser.T_IGNORE)) { + if(!(_la===HiveSql.T_DELETE || _la===HiveSql.T_IGNORE || _la===HiveSql.T_OVERWRITE)) { this._errHandler.recoverInline(this); } else { @@ -20069,7 +20105,7 @@ function Commit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_commit_stmt; + this.ruleIndex = HiveSql.RULE_commit_stmt; return this; } @@ -20077,11 +20113,11 @@ Commit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Commit_stmtContext.prototype.constructor = Commit_stmtContext; Commit_stmtContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Commit_stmtContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Commit_stmtContext.prototype.enterRule = function(listener) { @@ -20107,22 +20143,22 @@ Commit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Commit_stmtContext = Commit_stmtContext; +HiveSql.Commit_stmtContext = Commit_stmtContext; -HiveSqlParser.prototype.commit_stmt = function() { +HiveSql.prototype.commit_stmt = function() { var localctx = new Commit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 230, HiveSqlParser.RULE_commit_stmt); + this.enterRule(localctx, 230, HiveSql.RULE_commit_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 1960; - this.match(HiveSqlParser.T_COMMIT); - this.state = 1962; + this.state = 1957; + this.match(HiveSql.T_COMMIT); + this.state = 1959; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,220,this._ctx); if(la_===1) { - this.state = 1961; - this.match(HiveSqlParser.T_WORK); + this.state = 1958; + this.match(HiveSql.T_WORK); } } catch (re) { @@ -20149,7 +20185,7 @@ function Create_index_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_index_stmt; + this.ruleIndex = HiveSql.RULE_create_index_stmt; return this; } @@ -20157,11 +20193,11 @@ Create_index_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prot Create_index_stmtContext.prototype.constructor = Create_index_stmtContext; Create_index_stmtContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Create_index_stmtContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Create_index_stmtContext.prototype.ident = function() { @@ -20169,7 +20205,7 @@ Create_index_stmtContext.prototype.ident = function() { }; Create_index_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Create_index_stmtContext.prototype.table_name = function() { @@ -20177,7 +20213,7 @@ Create_index_stmtContext.prototype.table_name = function() { }; Create_index_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Create_index_stmtContext.prototype.create_index_col = function(i) { @@ -20192,11 +20228,11 @@ Create_index_stmtContext.prototype.create_index_col = function(i) { }; Create_index_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Create_index_stmtContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Create_index_stmtContext.prototype.T_COMMA = function(i) { @@ -20204,9 +20240,9 @@ Create_index_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -20234,51 +20270,51 @@ Create_index_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_index_stmtContext = Create_index_stmtContext; +HiveSql.Create_index_stmtContext = Create_index_stmtContext; -HiveSqlParser.prototype.create_index_stmt = function() { +HiveSql.prototype.create_index_stmt = function() { var localctx = new Create_index_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 232, HiveSqlParser.RULE_create_index_stmt); + this.enterRule(localctx, 232, HiveSql.RULE_create_index_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1964; - this.match(HiveSqlParser.T_CREATE); - this.state = 1966; + this.state = 1961; + this.match(HiveSql.T_CREATE); + this.state = 1963; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UNIQUE) { - this.state = 1965; - this.match(HiveSqlParser.T_UNIQUE); + if(_la===HiveSql.T_UNIQUE) { + this.state = 1962; + this.match(HiveSql.T_UNIQUE); } - this.state = 1968; - this.match(HiveSqlParser.T_INDEX); - this.state = 1969; + this.state = 1965; + this.match(HiveSql.T_INDEX); + this.state = 1966; this.ident(); - this.state = 1970; - this.match(HiveSqlParser.T_ON); - this.state = 1971; + this.state = 1967; + this.match(HiveSql.T_ON); + this.state = 1968; this.table_name(); - this.state = 1972; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1973; + this.state = 1969; + this.match(HiveSql.T_OPEN_P); + this.state = 1970; this.create_index_col(); - this.state = 1978; + this.state = 1975; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 1974; - this.match(HiveSqlParser.T_COMMA); - this.state = 1975; + while(_la===HiveSql.T_COMMA) { + this.state = 1971; + this.match(HiveSql.T_COMMA); + this.state = 1972; this.create_index_col(); - this.state = 1980; + this.state = 1977; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 1981; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 1978; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -20303,7 +20339,7 @@ function Create_index_colContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_create_index_col; + this.ruleIndex = HiveSql.RULE_create_index_col; return this; } @@ -20315,11 +20351,11 @@ Create_index_colContext.prototype.ident = function() { }; Create_index_colContext.prototype.T_ASC = function() { - return this.getToken(HiveSqlParser.T_ASC, 0); + return this.getToken(HiveSql.T_ASC, 0); }; Create_index_colContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Create_index_colContext.prototype.enterRule = function(listener) { @@ -20345,24 +20381,24 @@ Create_index_colContext.prototype.accept = function(visitor) { -HiveSqlParser.Create_index_colContext = Create_index_colContext; +HiveSql.Create_index_colContext = Create_index_colContext; -HiveSqlParser.prototype.create_index_col = function() { +HiveSql.prototype.create_index_col = function() { var localctx = new Create_index_colContext(this, this._ctx, this.state); - this.enterRule(localctx, 234, HiveSqlParser.RULE_create_index_col); + this.enterRule(localctx, 234, HiveSql.RULE_create_index_col); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 1983; + this.state = 1980; this.ident(); - this.state = 1985; + this.state = 1982; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC) { - this.state = 1984; + if(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC) { + this.state = 1981; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -20395,7 +20431,7 @@ function Index_storage_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_index_storage_clause; + this.ruleIndex = HiveSql.RULE_index_storage_clause; return this; } @@ -20429,15 +20465,15 @@ Index_storage_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Index_storage_clauseContext = Index_storage_clauseContext; +HiveSql.Index_storage_clauseContext = Index_storage_clauseContext; -HiveSqlParser.prototype.index_storage_clause = function() { +HiveSql.prototype.index_storage_clause = function() { var localctx = new Index_storage_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 236, HiveSqlParser.RULE_index_storage_clause); + this.enterRule(localctx, 236, HiveSql.RULE_index_storage_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 1987; + this.state = 1984; this.index_mssql_storage_clause(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -20463,7 +20499,7 @@ function Index_mssql_storage_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_index_mssql_storage_clause; + this.ruleIndex = HiveSql.RULE_index_mssql_storage_clause; return this; } @@ -20471,11 +20507,11 @@ Index_mssql_storage_clauseContext.prototype = Object.create(antlr4.ParserRuleCon Index_mssql_storage_clauseContext.prototype.constructor = Index_mssql_storage_clauseContext; Index_mssql_storage_clauseContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Index_mssql_storage_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Index_mssql_storage_clauseContext.prototype.ident = function(i) { @@ -20494,15 +20530,15 @@ Index_mssql_storage_clauseContext.prototype.T_EQUAL = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_EQUAL); + return this.getTokens(HiveSql.T_EQUAL); } else { - return this.getToken(HiveSqlParser.T_EQUAL, i); + return this.getToken(HiveSql.T_EQUAL, i); } }; Index_mssql_storage_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Index_mssql_storage_clauseContext.prototype.T_COMMA = function(i) { @@ -20510,9 +20546,9 @@ Index_mssql_storage_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -20551,52 +20587,52 @@ Index_mssql_storage_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Index_mssql_storage_clauseContext = Index_mssql_storage_clauseContext; +HiveSql.Index_mssql_storage_clauseContext = Index_mssql_storage_clauseContext; -HiveSqlParser.prototype.index_mssql_storage_clause = function() { +HiveSql.prototype.index_mssql_storage_clause = function() { var localctx = new Index_mssql_storage_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 238, HiveSqlParser.RULE_index_mssql_storage_clause); + this.enterRule(localctx, 238, HiveSql.RULE_index_mssql_storage_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 1986; + this.match(HiveSql.T_WITH); + this.state = 1987; + this.match(HiveSql.T_OPEN_P); + this.state = 1988; + this.ident(); this.state = 1989; - this.match(HiveSqlParser.T_WITH); + this.match(HiveSql.T_EQUAL); this.state = 1990; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 1991; this.ident(); - this.state = 1992; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1993; - this.ident(); - this.state = 2001; + this.state = 1998; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 1991; + this.match(HiveSql.T_COMMA); + this.state = 1992; + this.ident(); + this.state = 1993; + this.match(HiveSql.T_EQUAL); this.state = 1994; - this.match(HiveSqlParser.T_COMMA); - this.state = 1995; this.ident(); - this.state = 1996; - this.match(HiveSqlParser.T_EQUAL); - this.state = 1997; - this.ident(); - this.state = 2003; + this.state = 2000; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2004; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2008; + this.state = 2001; + this.match(HiveSql.T_CLOSE_P); + this.state = 2005; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,225,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2005; + this.state = 2002; this.create_table_options_mssql_item(); } - this.state = 2010; + this.state = 2007; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,225,this._ctx); } @@ -20625,7 +20661,7 @@ function Print_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_print_stmt; + this.ruleIndex = HiveSql.RULE_print_stmt; return this; } @@ -20633,7 +20669,7 @@ Print_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Print_stmtContext.prototype.constructor = Print_stmtContext; Print_stmtContext.prototype.T_PRINT = function() { - return this.getToken(HiveSqlParser.T_PRINT, 0); + return this.getToken(HiveSql.T_PRINT, 0); }; Print_stmtContext.prototype.expr = function() { @@ -20641,11 +20677,11 @@ Print_stmtContext.prototype.expr = function() { }; Print_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Print_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Print_stmtContext.prototype.enterRule = function(listener) { @@ -20671,35 +20707,35 @@ Print_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Print_stmtContext = Print_stmtContext; +HiveSql.Print_stmtContext = Print_stmtContext; -HiveSqlParser.prototype.print_stmt = function() { +HiveSql.prototype.print_stmt = function() { var localctx = new Print_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 240, HiveSqlParser.RULE_print_stmt); + this.enterRule(localctx, 240, HiveSql.RULE_print_stmt); try { - this.state = 2018; + this.state = 2015; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,226,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2011; - this.match(HiveSqlParser.T_PRINT); - this.state = 2012; + this.state = 2008; + this.match(HiveSql.T_PRINT); + this.state = 2009; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2013; - this.match(HiveSqlParser.T_PRINT); - this.state = 2014; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2015; + this.state = 2010; + this.match(HiveSql.T_PRINT); + this.state = 2011; + this.match(HiveSql.T_OPEN_P); + this.state = 2012; this.expr(0); - this.state = 2016; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2013; + this.match(HiveSql.T_CLOSE_P); break; } @@ -20727,7 +20763,7 @@ function Quit_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_quit_stmt; + this.ruleIndex = HiveSql.RULE_quit_stmt; return this; } @@ -20735,7 +20771,11 @@ Quit_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Quit_stmtContext.prototype.constructor = Quit_stmtContext; Quit_stmtContext.prototype.T_QUIT = function() { - return this.getToken(HiveSqlParser.T_QUIT, 0); + return this.getToken(HiveSql.T_QUIT, 0); +}; + +Quit_stmtContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); }; Quit_stmtContext.prototype.expr = function() { @@ -20765,30 +20805,30 @@ Quit_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Quit_stmtContext = Quit_stmtContext; +HiveSql.Quit_stmtContext = Quit_stmtContext; -HiveSqlParser.prototype.quit_stmt = function() { +HiveSql.prototype.quit_stmt = function() { var localctx = new Quit_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 242, HiveSqlParser.RULE_quit_stmt); + this.enterRule(localctx, 242, HiveSql.RULE_quit_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2021; + this.state = 2018; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__4) { - this.state = 2020; - this.match(HiveSqlParser.T__4); + if(_la===HiveSql.T_DOT) { + this.state = 2017; + this.match(HiveSql.T_DOT); } - this.state = 2023; - this.match(HiveSqlParser.T_QUIT); - this.state = 2025; + this.state = 2020; + this.match(HiveSql.T_QUIT); + this.state = 2022; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,228,this._ctx); if(la_===1) { - this.state = 2024; + this.state = 2021; this.expr(0); } @@ -20816,7 +20856,7 @@ function Raise_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_raise_stmt; + this.ruleIndex = HiveSql.RULE_raise_stmt; return this; } @@ -20824,7 +20864,7 @@ Raise_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Raise_stmtContext.prototype.constructor = Raise_stmtContext; Raise_stmtContext.prototype.T_RAISE = function() { - return this.getToken(HiveSqlParser.T_RAISE, 0); + return this.getToken(HiveSql.T_RAISE, 0); }; Raise_stmtContext.prototype.enterRule = function(listener) { @@ -20850,16 +20890,16 @@ Raise_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Raise_stmtContext = Raise_stmtContext; +HiveSql.Raise_stmtContext = Raise_stmtContext; -HiveSqlParser.prototype.raise_stmt = function() { +HiveSql.prototype.raise_stmt = function() { var localctx = new Raise_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 244, HiveSqlParser.RULE_raise_stmt); + this.enterRule(localctx, 244, HiveSql.RULE_raise_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2027; - this.match(HiveSqlParser.T_RAISE); + this.state = 2024; + this.match(HiveSql.T_RAISE); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -20884,7 +20924,7 @@ function Resignal_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_resignal_stmt; + this.ruleIndex = HiveSql.RULE_resignal_stmt; return this; } @@ -20892,11 +20932,11 @@ Resignal_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Resignal_stmtContext.prototype.constructor = Resignal_stmtContext; Resignal_stmtContext.prototype.T_RESIGNAL = function() { - return this.getToken(HiveSqlParser.T_RESIGNAL, 0); + return this.getToken(HiveSql.T_RESIGNAL, 0); }; Resignal_stmtContext.prototype.T_SQLSTATE = function() { - return this.getToken(HiveSqlParser.T_SQLSTATE, 0); + return this.getToken(HiveSql.T_SQLSTATE, 0); }; Resignal_stmtContext.prototype.expr = function(i) { @@ -20911,19 +20951,19 @@ Resignal_stmtContext.prototype.expr = function(i) { }; Resignal_stmtContext.prototype.T_VALUE = function() { - return this.getToken(HiveSqlParser.T_VALUE, 0); + return this.getToken(HiveSql.T_VALUE, 0); }; Resignal_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Resignal_stmtContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Resignal_stmtContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Resignal_stmtContext.prototype.enterRule = function(listener) { @@ -20949,43 +20989,43 @@ Resignal_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Resignal_stmtContext = Resignal_stmtContext; +HiveSql.Resignal_stmtContext = Resignal_stmtContext; -HiveSqlParser.prototype.resignal_stmt = function() { +HiveSql.prototype.resignal_stmt = function() { var localctx = new Resignal_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 246, HiveSqlParser.RULE_resignal_stmt); + this.enterRule(localctx, 246, HiveSql.RULE_resignal_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2029; - this.match(HiveSqlParser.T_RESIGNAL); - this.state = 2041; + this.state = 2026; + this.match(HiveSql.T_RESIGNAL); + this.state = 2038; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,231,this._ctx); if(la_===1) { - this.state = 2030; - this.match(HiveSqlParser.T_SQLSTATE); - this.state = 2032; + this.state = 2027; + this.match(HiveSql.T_SQLSTATE); + this.state = 2029; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,229,this._ctx); if(la_===1) { - this.state = 2031; - this.match(HiveSqlParser.T_VALUE); + this.state = 2028; + this.match(HiveSql.T_VALUE); } - this.state = 2034; + this.state = 2031; this.expr(0); - this.state = 2039; + this.state = 2036; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,230,this._ctx); if(la_===1) { + this.state = 2032; + this.match(HiveSql.T_SET); + this.state = 2033; + this.match(HiveSql.T_MESSAGE_TEXT); + this.state = 2034; + this.match(HiveSql.T_EQUAL); this.state = 2035; - this.match(HiveSqlParser.T_SET); - this.state = 2036; - this.match(HiveSqlParser.T_MESSAGE_TEXT); - this.state = 2037; - this.match(HiveSqlParser.T_EQUAL); - this.state = 2038; this.expr(0); } @@ -21015,7 +21055,7 @@ function Return_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_return_stmt; + this.ruleIndex = HiveSql.RULE_return_stmt; return this; } @@ -21023,7 +21063,7 @@ Return_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Return_stmtContext.prototype.constructor = Return_stmtContext; Return_stmtContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Return_stmtContext.prototype.expr = function() { @@ -21053,21 +21093,21 @@ Return_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Return_stmtContext = Return_stmtContext; +HiveSql.Return_stmtContext = Return_stmtContext; -HiveSqlParser.prototype.return_stmt = function() { +HiveSql.prototype.return_stmt = function() { var localctx = new Return_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 248, HiveSqlParser.RULE_return_stmt); + this.enterRule(localctx, 248, HiveSql.RULE_return_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2043; - this.match(HiveSqlParser.T_RETURN); - this.state = 2045; + this.state = 2040; + this.match(HiveSql.T_RETURN); + this.state = 2042; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,232,this._ctx); if(la_===1) { - this.state = 2044; + this.state = 2041; this.expr(0); } @@ -21095,7 +21135,7 @@ function Rollback_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_rollback_stmt; + this.ruleIndex = HiveSql.RULE_rollback_stmt; return this; } @@ -21103,11 +21143,11 @@ Rollback_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Rollback_stmtContext.prototype.constructor = Rollback_stmtContext; Rollback_stmtContext.prototype.T_ROLLBACK = function() { - return this.getToken(HiveSqlParser.T_ROLLBACK, 0); + return this.getToken(HiveSql.T_ROLLBACK, 0); }; Rollback_stmtContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Rollback_stmtContext.prototype.enterRule = function(listener) { @@ -21133,22 +21173,22 @@ Rollback_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Rollback_stmtContext = Rollback_stmtContext; +HiveSql.Rollback_stmtContext = Rollback_stmtContext; -HiveSqlParser.prototype.rollback_stmt = function() { +HiveSql.prototype.rollback_stmt = function() { var localctx = new Rollback_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 250, HiveSqlParser.RULE_rollback_stmt); + this.enterRule(localctx, 250, HiveSql.RULE_rollback_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2047; - this.match(HiveSqlParser.T_ROLLBACK); - this.state = 2049; + this.state = 2044; + this.match(HiveSql.T_ROLLBACK); + this.state = 2046; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,233,this._ctx); if(la_===1) { - this.state = 2048; - this.match(HiveSqlParser.T_WORK); + this.state = 2045; + this.match(HiveSql.T_WORK); } } catch (re) { @@ -21175,7 +21215,7 @@ function Set_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_session_option; + this.ruleIndex = HiveSql.RULE_set_session_option; return this; } @@ -21217,35 +21257,35 @@ Set_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_session_optionContext = Set_session_optionContext; +HiveSql.Set_session_optionContext = Set_session_optionContext; -HiveSqlParser.prototype.set_session_option = function() { +HiveSql.prototype.set_session_option = function() { var localctx = new Set_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 252, HiveSqlParser.RULE_set_session_option); + this.enterRule(localctx, 252, HiveSql.RULE_set_session_option); try { - this.state = 2054; + this.state = 2051; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_SCHEMA: this.enterOuterAlt(localctx, 1); - this.state = 2051; + this.state = 2048; this.set_current_schema_option(); break; - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_NOCOUNT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_XACT_ABORT: this.enterOuterAlt(localctx, 2); - this.state = 2052; + this.state = 2049; this.set_mssql_session_option(); break; - case HiveSqlParser.T_QUERY_BAND: + case HiveSql.T_QUERY_BAND: this.enterOuterAlt(localctx, 3); - this.state = 2053; + this.state = 2050; this.set_teradata_session_option(); break; default: @@ -21275,7 +21315,7 @@ function Set_current_schema_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_current_schema_option; + this.ruleIndex = HiveSql.RULE_set_current_schema_option; return this; } @@ -21287,19 +21327,19 @@ Set_current_schema_optionContext.prototype.expr = function() { }; Set_current_schema_optionContext.prototype.T_CURRENT_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_CURRENT_SCHEMA, 0); + return this.getToken(HiveSql.T_CURRENT_SCHEMA, 0); }; Set_current_schema_optionContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Set_current_schema_optionContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Set_current_schema_optionContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Set_current_schema_optionContext.prototype.enterRule = function(listener) { @@ -21325,47 +21365,47 @@ Set_current_schema_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_current_schema_optionContext = Set_current_schema_optionContext; +HiveSql.Set_current_schema_optionContext = Set_current_schema_optionContext; -HiveSqlParser.prototype.set_current_schema_option = function() { +HiveSql.prototype.set_current_schema_option = function() { var localctx = new Set_current_schema_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 254, HiveSqlParser.RULE_set_current_schema_option); + this.enterRule(localctx, 254, HiveSql.RULE_set_current_schema_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2061; + this.state = 2058; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_CURRENT: - this.state = 2057; + case HiveSql.T_CURRENT: + case HiveSql.T_SCHEMA: + this.state = 2054; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CURRENT) { - this.state = 2056; - this.match(HiveSqlParser.T_CURRENT); + if(_la===HiveSql.T_CURRENT) { + this.state = 2053; + this.match(HiveSql.T_CURRENT); } - this.state = 2059; - this.match(HiveSqlParser.T_SCHEMA); + this.state = 2056; + this.match(HiveSql.T_SCHEMA); break; - case HiveSqlParser.T_CURRENT_SCHEMA: - this.state = 2060; - this.match(HiveSqlParser.T_CURRENT_SCHEMA); + case HiveSql.T_CURRENT_SCHEMA: + this.state = 2057; + this.match(HiveSql.T_CURRENT_SCHEMA); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2064; + this.state = 2061; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_EQUAL) { - this.state = 2063; - this.match(HiveSqlParser.T_EQUAL); + if(_la===HiveSql.T_EQUAL) { + this.state = 2060; + this.match(HiveSql.T_EQUAL); } - this.state = 2066; + this.state = 2063; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21391,7 +21431,7 @@ function Set_mssql_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_mssql_session_option; + this.ruleIndex = HiveSql.RULE_set_mssql_session_option; return this; } @@ -21399,31 +21439,31 @@ Set_mssql_session_optionContext.prototype = Object.create(antlr4.ParserRuleConte Set_mssql_session_optionContext.prototype.constructor = Set_mssql_session_optionContext; Set_mssql_session_optionContext.prototype.T_ANSI_NULLS = function() { - return this.getToken(HiveSqlParser.T_ANSI_NULLS, 0); + return this.getToken(HiveSql.T_ANSI_NULLS, 0); }; Set_mssql_session_optionContext.prototype.T_ANSI_PADDING = function() { - return this.getToken(HiveSqlParser.T_ANSI_PADDING, 0); + return this.getToken(HiveSql.T_ANSI_PADDING, 0); }; Set_mssql_session_optionContext.prototype.T_NOCOUNT = function() { - return this.getToken(HiveSqlParser.T_NOCOUNT, 0); + return this.getToken(HiveSql.T_NOCOUNT, 0); }; Set_mssql_session_optionContext.prototype.T_QUOTED_IDENTIFIER = function() { - return this.getToken(HiveSqlParser.T_QUOTED_IDENTIFIER, 0); + return this.getToken(HiveSql.T_QUOTED_IDENTIFIER, 0); }; Set_mssql_session_optionContext.prototype.T_XACT_ABORT = function() { - return this.getToken(HiveSqlParser.T_XACT_ABORT, 0); + return this.getToken(HiveSql.T_XACT_ABORT, 0); }; Set_mssql_session_optionContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Set_mssql_session_optionContext.prototype.T_OFF = function() { - return this.getToken(HiveSqlParser.T_OFF, 0); + return this.getToken(HiveSql.T_OFF, 0); }; Set_mssql_session_optionContext.prototype.enterRule = function(listener) { @@ -21449,27 +21489,27 @@ Set_mssql_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_mssql_session_optionContext = Set_mssql_session_optionContext; +HiveSql.Set_mssql_session_optionContext = Set_mssql_session_optionContext; -HiveSqlParser.prototype.set_mssql_session_option = function() { +HiveSql.prototype.set_mssql_session_option = function() { var localctx = new Set_mssql_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 256, HiveSqlParser.RULE_set_mssql_session_option); + this.enterRule(localctx, 256, HiveSql.RULE_set_mssql_session_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2068; + this.state = 2065; _la = this._input.LA(1); - if(!(((((_la - 247)) & ~0x1f) == 0 && ((1 << (_la - 247)) & ((1 << (HiveSqlParser.T_ANSI_NULLS - 247)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 247)) | (1 << (HiveSqlParser.T_NOCOUNT - 247)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 247)) | (1 << (HiveSqlParser.T_XACT_ABORT - 247)))) !== 0))) { + if(!(_la===HiveSql.T_ANSI_NULLS || _la===HiveSql.T_ANSI_PADDING || _la===HiveSql.T_NOCOUNT || _la===HiveSql.T_QUOTED_IDENTIFIER || _la===HiveSql.T_XACT_ABORT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2069; + this.state = 2066; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ON || _la===HiveSqlParser.T_OFF)) { + if(!(_la===HiveSql.T_OFF || _la===HiveSql.T_ON)) { this._errHandler.recoverInline(this); } else { @@ -21500,7 +21540,7 @@ function Set_teradata_session_optionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_set_teradata_session_option; + this.ruleIndex = HiveSql.RULE_set_teradata_session_option; return this; } @@ -21508,23 +21548,23 @@ Set_teradata_session_optionContext.prototype = Object.create(antlr4.ParserRuleCo Set_teradata_session_optionContext.prototype.constructor = Set_teradata_session_optionContext; Set_teradata_session_optionContext.prototype.T_QUERY_BAND = function() { - return this.getToken(HiveSqlParser.T_QUERY_BAND, 0); + return this.getToken(HiveSql.T_QUERY_BAND, 0); }; Set_teradata_session_optionContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Set_teradata_session_optionContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Set_teradata_session_optionContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Set_teradata_session_optionContext.prototype.T_SESSION = function() { - return this.getToken(HiveSqlParser.T_SESSION, 0); + return this.getToken(HiveSql.T_SESSION, 0); }; Set_teradata_session_optionContext.prototype.expr = function() { @@ -21532,11 +21572,11 @@ Set_teradata_session_optionContext.prototype.expr = function() { }; Set_teradata_session_optionContext.prototype.T_NONE = function() { - return this.getToken(HiveSqlParser.T_NONE, 0); + return this.getToken(HiveSql.T_NONE, 0); }; Set_teradata_session_optionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Set_teradata_session_optionContext.prototype.enterRule = function(listener) { @@ -21562,47 +21602,47 @@ Set_teradata_session_optionContext.prototype.accept = function(visitor) { -HiveSqlParser.Set_teradata_session_optionContext = Set_teradata_session_optionContext; +HiveSql.Set_teradata_session_optionContext = Set_teradata_session_optionContext; -HiveSqlParser.prototype.set_teradata_session_option = function() { +HiveSql.prototype.set_teradata_session_option = function() { var localctx = new Set_teradata_session_optionContext(this, this._ctx, this.state); - this.enterRule(localctx, 258, HiveSqlParser.RULE_set_teradata_session_option); + this.enterRule(localctx, 258, HiveSql.RULE_set_teradata_session_option); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2071; - this.match(HiveSqlParser.T_QUERY_BAND); + this.state = 2068; + this.match(HiveSql.T_QUERY_BAND); + this.state = 2069; + this.match(HiveSql.T_EQUAL); this.state = 2072; - this.match(HiveSqlParser.T_EQUAL); - this.state = 2075; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,238,this._ctx); switch(la_) { case 1: - this.state = 2073; + this.state = 2070; this.expr(0); break; case 2: - this.state = 2074; - this.match(HiveSqlParser.T_NONE); + this.state = 2071; + this.match(HiveSql.T_NONE); break; } - this.state = 2078; + this.state = 2075; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_UPDATE) { - this.state = 2077; - this.match(HiveSqlParser.T_UPDATE); + if(_la===HiveSql.T_UPDATE) { + this.state = 2074; + this.match(HiveSql.T_UPDATE); } - this.state = 2080; - this.match(HiveSqlParser.T_FOR); - this.state = 2081; + this.state = 2077; + this.match(HiveSql.T_FOR); + this.state = 2078; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TRANSACTION || _la===HiveSqlParser.T_SESSION)) { + if(!(_la===HiveSql.T_SESSION || _la===HiveSql.T_TRANSACTION)) { this._errHandler.recoverInline(this); } else { @@ -21633,7 +21673,7 @@ function Signal_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_signal_stmt; + this.ruleIndex = HiveSql.RULE_signal_stmt; return this; } @@ -21641,7 +21681,7 @@ Signal_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Signal_stmtContext.prototype.constructor = Signal_stmtContext; Signal_stmtContext.prototype.T_SIGNAL = function() { - return this.getToken(HiveSqlParser.T_SIGNAL, 0); + return this.getToken(HiveSql.T_SIGNAL, 0); }; Signal_stmtContext.prototype.ident = function() { @@ -21671,17 +21711,17 @@ Signal_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Signal_stmtContext = Signal_stmtContext; +HiveSql.Signal_stmtContext = Signal_stmtContext; -HiveSqlParser.prototype.signal_stmt = function() { +HiveSql.prototype.signal_stmt = function() { var localctx = new Signal_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 260, HiveSqlParser.RULE_signal_stmt); + this.enterRule(localctx, 260, HiveSql.RULE_signal_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2083; - this.match(HiveSqlParser.T_SIGNAL); - this.state = 2084; + this.state = 2080; + this.match(HiveSql.T_SIGNAL); + this.state = 2081; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21707,7 +21747,7 @@ function Summary_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_summary_stmt; + this.ruleIndex = HiveSql.RULE_summary_stmt; return this; } @@ -21715,11 +21755,11 @@ Summary_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Summary_stmtContext.prototype.constructor = Summary_stmtContext; Summary_stmtContext.prototype.T_SUMMARY = function() { - return this.getToken(HiveSqlParser.T_SUMMARY, 0); + return this.getToken(HiveSql.T_SUMMARY, 0); }; Summary_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Summary_stmtContext.prototype.select_stmt = function() { @@ -21731,7 +21771,7 @@ Summary_stmtContext.prototype.table_name = function() { }; Summary_stmtContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Summary_stmtContext.prototype.expr = function(i) { @@ -21750,7 +21790,7 @@ Summary_stmtContext.prototype.where_clause = function() { }; Summary_stmtContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Summary_stmtContext.prototype.enterRule = function(listener) { @@ -21776,56 +21816,56 @@ Summary_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Summary_stmtContext = Summary_stmtContext; +HiveSql.Summary_stmtContext = Summary_stmtContext; -HiveSqlParser.prototype.summary_stmt = function() { +HiveSql.prototype.summary_stmt = function() { var localctx = new Summary_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 262, HiveSqlParser.RULE_summary_stmt); + this.enterRule(localctx, 262, HiveSql.RULE_summary_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2083; + this.match(HiveSql.T_SUMMARY); this.state = 2086; - this.match(HiveSqlParser.T_SUMMARY); - this.state = 2089; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_TOP) { - this.state = 2087; - this.match(HiveSqlParser.T_TOP); - this.state = 2088; + if(_la===HiveSql.T_TOP) { + this.state = 2084; + this.match(HiveSql.T_TOP); + this.state = 2085; this.expr(0); } - this.state = 2091; - this.match(HiveSqlParser.T_FOR); - this.state = 2101; + this.state = 2088; + this.match(HiveSql.T_FOR); + this.state = 2098; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,243,this._ctx); switch(la_) { case 1: - this.state = 2092; + this.state = 2089; this.select_stmt(); break; case 2: - this.state = 2093; + this.state = 2090; this.table_name(); - this.state = 2095; + this.state = 2092; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,241,this._ctx); if(la_===1) { - this.state = 2094; + this.state = 2091; this.where_clause(); } - this.state = 2099; + this.state = 2096; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,242,this._ctx); if(la_===1) { - this.state = 2097; - this.match(HiveSqlParser.T_LIMIT); - this.state = 2098; + this.state = 2094; + this.match(HiveSql.T_LIMIT); + this.state = 2095; this.expr(0); } @@ -21856,7 +21896,7 @@ function Truncate_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_truncate_stmt; + this.ruleIndex = HiveSql.RULE_truncate_stmt; return this; } @@ -21864,7 +21904,7 @@ Truncate_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Truncate_stmtContext.prototype.constructor = Truncate_stmtContext; Truncate_stmtContext.prototype.T_TRUNCATE = function() { - return this.getToken(HiveSqlParser.T_TRUNCATE, 0); + return this.getToken(HiveSql.T_TRUNCATE, 0); }; Truncate_stmtContext.prototype.table_name = function() { @@ -21872,7 +21912,7 @@ Truncate_stmtContext.prototype.table_name = function() { }; Truncate_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Truncate_stmtContext.prototype.enterRule = function(listener) { @@ -21898,25 +21938,25 @@ Truncate_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Truncate_stmtContext = Truncate_stmtContext; +HiveSql.Truncate_stmtContext = Truncate_stmtContext; -HiveSqlParser.prototype.truncate_stmt = function() { +HiveSql.prototype.truncate_stmt = function() { var localctx = new Truncate_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 264, HiveSqlParser.RULE_truncate_stmt); + this.enterRule(localctx, 264, HiveSql.RULE_truncate_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2103; - this.match(HiveSqlParser.T_TRUNCATE); - this.state = 2105; + this.state = 2100; + this.match(HiveSql.T_TRUNCATE); + this.state = 2102; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,244,this._ctx); if(la_===1) { - this.state = 2104; - this.match(HiveSqlParser.T_TABLE); + this.state = 2101; + this.match(HiveSql.T_TABLE); } - this.state = 2107; + this.state = 2104; this.table_name(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -21942,7 +21982,7 @@ function Use_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_use_stmt; + this.ruleIndex = HiveSql.RULE_use_stmt; return this; } @@ -21950,7 +21990,7 @@ Use_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Use_stmtContext.prototype.constructor = Use_stmtContext; Use_stmtContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Use_stmtContext.prototype.expr = function() { @@ -21980,17 +22020,17 @@ Use_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Use_stmtContext = Use_stmtContext; +HiveSql.Use_stmtContext = Use_stmtContext; -HiveSqlParser.prototype.use_stmt = function() { +HiveSql.prototype.use_stmt = function() { var localctx = new Use_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 266, HiveSqlParser.RULE_use_stmt); + this.enterRule(localctx, 266, HiveSql.RULE_use_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2109; - this.match(HiveSqlParser.T_USE); - this.state = 2110; + this.state = 2106; + this.match(HiveSql.T_USE); + this.state = 2107; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -22016,7 +22056,7 @@ function Values_into_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_values_into_stmt; + this.ruleIndex = HiveSql.RULE_values_into_stmt; return this; } @@ -22024,7 +22064,7 @@ Values_into_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.proto Values_into_stmtContext.prototype.constructor = Values_into_stmtContext; Values_into_stmtContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Values_into_stmtContext.prototype.expr = function(i) { @@ -22039,7 +22079,7 @@ Values_into_stmtContext.prototype.expr = function(i) { }; Values_into_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Values_into_stmtContext.prototype.ident = function(i) { @@ -22058,9 +22098,9 @@ Values_into_stmtContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -22070,9 +22110,9 @@ Values_into_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -22082,9 +22122,9 @@ Values_into_stmtContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; @@ -22112,80 +22152,80 @@ Values_into_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Values_into_stmtContext = Values_into_stmtContext; +HiveSql.Values_into_stmtContext = Values_into_stmtContext; -HiveSqlParser.prototype.values_into_stmt = function() { +HiveSql.prototype.values_into_stmt = function() { var localctx = new Values_into_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 268, HiveSqlParser.RULE_values_into_stmt); + this.enterRule(localctx, 268, HiveSql.RULE_values_into_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2112; - this.match(HiveSqlParser.T_VALUES); - this.state = 2114; + this.state = 2109; + this.match(HiveSql.T_VALUES); + this.state = 2111; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,245,this._ctx); if(la_===1) { - this.state = 2113; - this.match(HiveSqlParser.T_OPEN_P); + this.state = 2110; + this.match(HiveSql.T_OPEN_P); } - this.state = 2116; + this.state = 2113; this.expr(0); - this.state = 2121; + this.state = 2118; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2117; - this.match(HiveSqlParser.T_COMMA); - this.state = 2118; + while(_la===HiveSql.T_COMMA) { + this.state = 2114; + this.match(HiveSql.T_COMMA); + this.state = 2115; this.expr(0); - this.state = 2123; + this.state = 2120; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2125; + this.state = 2122; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLOSE_P) { - this.state = 2124; - this.match(HiveSqlParser.T_CLOSE_P); + if(_la===HiveSql.T_CLOSE_P) { + this.state = 2121; + this.match(HiveSql.T_CLOSE_P); } - this.state = 2127; - this.match(HiveSqlParser.T_INTO); - this.state = 2129; + this.state = 2124; + this.match(HiveSql.T_INTO); + this.state = 2126; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2128; - this.match(HiveSqlParser.T_OPEN_P); + if(_la===HiveSql.T_OPEN_P) { + this.state = 2125; + this.match(HiveSql.T_OPEN_P); } - this.state = 2131; + this.state = 2128; this.ident(); - this.state = 2136; + this.state = 2133; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,249,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2132; - this.match(HiveSqlParser.T_COMMA); - this.state = 2133; + this.state = 2129; + this.match(HiveSql.T_COMMA); + this.state = 2130; this.ident(); } - this.state = 2138; + this.state = 2135; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,249,this._ctx); } - this.state = 2140; + this.state = 2137; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,250,this._ctx); if(la_===1) { - this.state = 2139; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2136; + this.match(HiveSql.T_CLOSE_P); } } catch (re) { @@ -22212,7 +22252,7 @@ function While_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_while_stmt; + this.ruleIndex = HiveSql.RULE_while_stmt; return this; } @@ -22224,9 +22264,9 @@ While_stmtContext.prototype.T_WHILE = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHILE); + return this.getTokens(HiveSql.T_WHILE); } else { - return this.getToken(HiveSqlParser.T_WHILE, i); + return this.getToken(HiveSql.T_WHILE, i); } }; @@ -22240,11 +22280,11 @@ While_stmtContext.prototype.block = function() { }; While_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; While_stmtContext.prototype.T_DO = function() { - return this.getToken(HiveSqlParser.T_DO, 0); + return this.getToken(HiveSql.T_DO, 0); }; While_stmtContext.prototype.T_LOOP = function(i) { @@ -22252,19 +22292,19 @@ While_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; While_stmtContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; While_stmtContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; While_stmtContext.prototype.enterRule = function(listener) { @@ -22290,39 +22330,39 @@ While_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.While_stmtContext = While_stmtContext; +HiveSql.While_stmtContext = While_stmtContext; -HiveSqlParser.prototype.while_stmt = function() { +HiveSql.prototype.while_stmt = function() { var localctx = new While_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 270, HiveSqlParser.RULE_while_stmt); + this.enterRule(localctx, 270, HiveSql.RULE_while_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2142; - this.match(HiveSqlParser.T_WHILE); - this.state = 2143; + this.state = 2139; + this.match(HiveSql.T_WHILE); + this.state = 2140; this.bool_expr(0); - this.state = 2144; + this.state = 2141; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_BEGIN || _la===HiveSqlParser.T_THEN || _la===HiveSqlParser.T_DO || _la===HiveSqlParser.T_LOOP)) { + if(!(_la===HiveSql.T_BEGIN || _la===HiveSql.T_DO || _la===HiveSql.T_LOOP || _la===HiveSql.T_THEN)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2145; + this.state = 2142; this.block(); - this.state = 2146; - this.match(HiveSqlParser.T_END); - this.state = 2148; + this.state = 2143; + this.match(HiveSql.T_END); + this.state = 2145; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,251,this._ctx); if(la_===1) { - this.state = 2147; + this.state = 2144; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_WHILE || _la===HiveSqlParser.T_LOOP)) { + if(!(_la===HiveSql.T_LOOP || _la===HiveSql.T_WHILE)) { this._errHandler.recoverInline(this); } else { @@ -22355,7 +22395,7 @@ function For_cursor_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_for_cursor_stmt; + this.ruleIndex = HiveSql.RULE_for_cursor_stmt; return this; } @@ -22363,15 +22403,15 @@ For_cursor_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot For_cursor_stmtContext.prototype.constructor = For_cursor_stmtContext; For_cursor_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; For_cursor_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; For_cursor_stmtContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; For_cursor_stmtContext.prototype.select_stmt = function() { @@ -22383,9 +22423,9 @@ For_cursor_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; @@ -22395,15 +22435,15 @@ For_cursor_stmtContext.prototype.block = function() { }; For_cursor_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; For_cursor_stmtContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; For_cursor_stmtContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; For_cursor_stmtContext.prototype.enterRule = function(listener) { @@ -22429,47 +22469,47 @@ For_cursor_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.For_cursor_stmtContext = For_cursor_stmtContext; +HiveSql.For_cursor_stmtContext = For_cursor_stmtContext; -HiveSqlParser.prototype.for_cursor_stmt = function() { +HiveSql.prototype.for_cursor_stmt = function() { var localctx = new For_cursor_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 272, HiveSqlParser.RULE_for_cursor_stmt); + this.enterRule(localctx, 272, HiveSql.RULE_for_cursor_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2150; - this.match(HiveSqlParser.T_FOR); + this.state = 2147; + this.match(HiveSql.T_FOR); + this.state = 2148; + this.match(HiveSql.L_ID); + this.state = 2149; + this.match(HiveSql.T_IN); this.state = 2151; - this.match(HiveSqlParser.L_ID); - this.state = 2152; - this.match(HiveSqlParser.T_IN); - this.state = 2154; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,252,this._ctx); if(la_===1) { - this.state = 2153; - this.match(HiveSqlParser.T_OPEN_P); + this.state = 2150; + this.match(HiveSql.T_OPEN_P); } - this.state = 2156; + this.state = 2153; this.select_stmt(); - this.state = 2158; + this.state = 2155; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_CLOSE_P) { - this.state = 2157; - this.match(HiveSqlParser.T_CLOSE_P); + if(_la===HiveSql.T_CLOSE_P) { + this.state = 2154; + this.match(HiveSql.T_CLOSE_P); } - this.state = 2160; - this.match(HiveSqlParser.T_LOOP); - this.state = 2161; + this.state = 2157; + this.match(HiveSql.T_LOOP); + this.state = 2158; this.block(); - this.state = 2162; - this.match(HiveSqlParser.T_END); - this.state = 2163; - this.match(HiveSqlParser.T_LOOP); + this.state = 2159; + this.match(HiveSql.T_END); + this.state = 2160; + this.match(HiveSql.T_LOOP); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -22494,7 +22534,7 @@ function For_range_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_for_range_stmt; + this.ruleIndex = HiveSql.RULE_for_range_stmt; return this; } @@ -22502,15 +22542,15 @@ For_range_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototy For_range_stmtContext.prototype.constructor = For_range_stmtContext; For_range_stmtContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; For_range_stmtContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; For_range_stmtContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; For_range_stmtContext.prototype.expr = function(i) { @@ -22525,7 +22565,7 @@ For_range_stmtContext.prototype.expr = function(i) { }; For_range_stmtContext.prototype.T_DOT2 = function() { - return this.getToken(HiveSqlParser.T_DOT2, 0); + return this.getToken(HiveSql.T_DOT2, 0); }; For_range_stmtContext.prototype.T_LOOP = function(i) { @@ -22533,9 +22573,9 @@ For_range_stmtContext.prototype.T_LOOP = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LOOP); + return this.getTokens(HiveSql.T_LOOP); } else { - return this.getToken(HiveSqlParser.T_LOOP, i); + return this.getToken(HiveSql.T_LOOP, i); } }; @@ -22545,19 +22585,19 @@ For_range_stmtContext.prototype.block = function() { }; For_range_stmtContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; For_range_stmtContext.prototype.T_REVERSE = function() { - return this.getToken(HiveSqlParser.T_REVERSE, 0); + return this.getToken(HiveSql.T_REVERSE, 0); }; For_range_stmtContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; For_range_stmtContext.prototype.T_STEP = function() { - return this.getToken(HiveSqlParser.T_STEP, 0); + return this.getToken(HiveSql.T_STEP, 0); }; For_range_stmtContext.prototype.enterRule = function(listener) { @@ -22583,60 +22623,60 @@ For_range_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.For_range_stmtContext = For_range_stmtContext; +HiveSql.For_range_stmtContext = For_range_stmtContext; -HiveSqlParser.prototype.for_range_stmt = function() { +HiveSql.prototype.for_range_stmt = function() { var localctx = new For_range_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 274, HiveSqlParser.RULE_for_range_stmt); + this.enterRule(localctx, 274, HiveSql.RULE_for_range_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2165; - this.match(HiveSqlParser.T_FOR); + this.state = 2162; + this.match(HiveSql.T_FOR); + this.state = 2163; + this.match(HiveSql.L_ID); + this.state = 2164; + this.match(HiveSql.T_IN); this.state = 2166; - this.match(HiveSqlParser.L_ID); - this.state = 2167; - this.match(HiveSqlParser.T_IN); - this.state = 2169; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,254,this._ctx); if(la_===1) { - this.state = 2168; - this.match(HiveSqlParser.T_REVERSE); + this.state = 2165; + this.match(HiveSql.T_REVERSE); } - this.state = 2171; + this.state = 2168; + this.expr(0); + this.state = 2169; + this.match(HiveSql.T_DOT2); + this.state = 2170; this.expr(0); - this.state = 2172; - this.match(HiveSqlParser.T_DOT2); this.state = 2173; - this.expr(0); - this.state = 2176; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_BY || _la===HiveSqlParser.T_STEP) { - this.state = 2174; + if(_la===HiveSql.T_BY || _la===HiveSql.T_STEP) { + this.state = 2171; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_BY || _la===HiveSqlParser.T_STEP)) { + if(!(_la===HiveSql.T_BY || _la===HiveSql.T_STEP)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2175; + this.state = 2172; this.expr(0); } - this.state = 2178; - this.match(HiveSqlParser.T_LOOP); - this.state = 2179; + this.state = 2175; + this.match(HiveSql.T_LOOP); + this.state = 2176; this.block(); - this.state = 2180; - this.match(HiveSqlParser.T_END); - this.state = 2181; - this.match(HiveSqlParser.T_LOOP); + this.state = 2177; + this.match(HiveSql.T_END); + this.state = 2178; + this.match(HiveSql.T_LOOP); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -22661,7 +22701,7 @@ function LabelContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_label; + this.ruleIndex = HiveSql.RULE_label; return this; } @@ -22669,7 +22709,7 @@ LabelContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); LabelContext.prototype.constructor = LabelContext; LabelContext.prototype.L_LABEL = function() { - return this.getToken(HiveSqlParser.L_LABEL, 0); + return this.getToken(HiveSql.L_LABEL, 0); }; LabelContext.prototype.T_LESS = function(i) { @@ -22677,15 +22717,15 @@ LabelContext.prototype.T_LESS = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_LESS); + return this.getTokens(HiveSql.T_LESS); } else { - return this.getToken(HiveSqlParser.T_LESS, i); + return this.getToken(HiveSql.T_LESS, i); } }; LabelContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; LabelContext.prototype.T_GREATER = function(i) { @@ -22693,9 +22733,9 @@ LabelContext.prototype.T_GREATER = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_GREATER); + return this.getTokens(HiveSql.T_GREATER); } else { - return this.getToken(HiveSqlParser.T_GREATER, i); + return this.getToken(HiveSql.T_GREATER, i); } }; @@ -22723,33 +22763,33 @@ LabelContext.prototype.accept = function(visitor) { -HiveSqlParser.LabelContext = LabelContext; +HiveSql.LabelContext = LabelContext; -HiveSqlParser.prototype.label = function() { +HiveSql.prototype.label = function() { var localctx = new LabelContext(this, this._ctx, this.state); - this.enterRule(localctx, 276, HiveSqlParser.RULE_label); + this.enterRule(localctx, 276, HiveSql.RULE_label); try { - this.state = 2189; + this.state = 2186; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_LABEL: + case HiveSql.L_LABEL: this.enterOuterAlt(localctx, 1); - this.state = 2183; - this.match(HiveSqlParser.L_LABEL); + this.state = 2180; + this.match(HiveSql.L_LABEL); break; - case HiveSqlParser.T_LESS: + case HiveSql.T_LESS: this.enterOuterAlt(localctx, 2); + this.state = 2181; + this.match(HiveSql.T_LESS); + this.state = 2182; + this.match(HiveSql.T_LESS); + this.state = 2183; + this.match(HiveSql.L_ID); this.state = 2184; - this.match(HiveSqlParser.T_LESS); + this.match(HiveSql.T_GREATER); this.state = 2185; - this.match(HiveSqlParser.T_LESS); - this.state = 2186; - this.match(HiveSqlParser.L_ID); - this.state = 2187; - this.match(HiveSqlParser.T_GREATER); - this.state = 2188; - this.match(HiveSqlParser.T_GREATER); + this.match(HiveSql.T_GREATER); break; default: throw new antlr4.error.NoViableAltException(this); @@ -22778,7 +22818,7 @@ function Using_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_using_clause; + this.ruleIndex = HiveSql.RULE_using_clause; return this; } @@ -22786,7 +22826,7 @@ Using_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Using_clauseContext.prototype.constructor = Using_clauseContext; Using_clauseContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Using_clauseContext.prototype.expr = function(i) { @@ -22805,9 +22845,9 @@ Using_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -22835,29 +22875,29 @@ Using_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Using_clauseContext = Using_clauseContext; +HiveSql.Using_clauseContext = Using_clauseContext; -HiveSqlParser.prototype.using_clause = function() { +HiveSql.prototype.using_clause = function() { var localctx = new Using_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 278, HiveSqlParser.RULE_using_clause); + this.enterRule(localctx, 278, HiveSql.RULE_using_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2191; - this.match(HiveSqlParser.T_USING); - this.state = 2192; + this.state = 2188; + this.match(HiveSql.T_USING); + this.state = 2189; this.expr(0); - this.state = 2197; + this.state = 2194; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,257,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2193; - this.match(HiveSqlParser.T_COMMA); - this.state = 2194; + this.state = 2190; + this.match(HiveSql.T_COMMA); + this.state = 2191; this.expr(0); } - this.state = 2199; + this.state = 2196; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,257,this._ctx); } @@ -22886,7 +22926,7 @@ function Select_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_stmt; + this.ruleIndex = HiveSql.RULE_select_stmt; return this; } @@ -22924,24 +22964,24 @@ Select_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_stmtContext = Select_stmtContext; +HiveSql.Select_stmtContext = Select_stmtContext; -HiveSqlParser.prototype.select_stmt = function() { +HiveSql.prototype.select_stmt = function() { var localctx = new Select_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 280, HiveSqlParser.RULE_select_stmt); + this.enterRule(localctx, 280, HiveSql.RULE_select_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2201; + this.state = 2198; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_WITH) { - this.state = 2200; + if(_la===HiveSql.T_WITH) { + this.state = 2197; this.cte_select_stmt(); } - this.state = 2203; + this.state = 2200; this.fullselect_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -22967,7 +23007,7 @@ function Cte_select_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_stmt; + this.ruleIndex = HiveSql.RULE_cte_select_stmt; return this; } @@ -22975,7 +23015,7 @@ Cte_select_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.protot Cte_select_stmtContext.prototype.constructor = Cte_select_stmtContext; Cte_select_stmtContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Cte_select_stmtContext.prototype.cte_select_stmt_item = function(i) { @@ -22994,9 +23034,9 @@ Cte_select_stmtContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23024,28 +23064,28 @@ Cte_select_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_stmtContext = Cte_select_stmtContext; +HiveSql.Cte_select_stmtContext = Cte_select_stmtContext; -HiveSqlParser.prototype.cte_select_stmt = function() { +HiveSql.prototype.cte_select_stmt = function() { var localctx = new Cte_select_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 282, HiveSqlParser.RULE_cte_select_stmt); + this.enterRule(localctx, 282, HiveSql.RULE_cte_select_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2205; - this.match(HiveSqlParser.T_WITH); - this.state = 2206; + this.state = 2202; + this.match(HiveSql.T_WITH); + this.state = 2203; this.cte_select_stmt_item(); - this.state = 2211; + this.state = 2208; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2207; - this.match(HiveSqlParser.T_COMMA); - this.state = 2208; + while(_la===HiveSql.T_COMMA) { + this.state = 2204; + this.match(HiveSql.T_COMMA); + this.state = 2205; this.cte_select_stmt_item(); - this.state = 2213; + this.state = 2210; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -23073,7 +23113,7 @@ function Cte_select_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_stmt_item; + this.ruleIndex = HiveSql.RULE_cte_select_stmt_item; return this; } @@ -23085,11 +23125,11 @@ Cte_select_stmt_itemContext.prototype.ident = function() { }; Cte_select_stmt_itemContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Cte_select_stmt_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cte_select_stmt_itemContext.prototype.fullselect_stmt = function() { @@ -23097,7 +23137,7 @@ Cte_select_stmt_itemContext.prototype.fullselect_stmt = function() { }; Cte_select_stmt_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cte_select_stmt_itemContext.prototype.cte_select_cols = function() { @@ -23127,33 +23167,33 @@ Cte_select_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_stmt_itemContext = Cte_select_stmt_itemContext; +HiveSql.Cte_select_stmt_itemContext = Cte_select_stmt_itemContext; -HiveSqlParser.prototype.cte_select_stmt_item = function() { +HiveSql.prototype.cte_select_stmt_item = function() { var localctx = new Cte_select_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 284, HiveSqlParser.RULE_cte_select_stmt_item); + this.enterRule(localctx, 284, HiveSql.RULE_cte_select_stmt_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2214; + this.state = 2211; this.ident(); - this.state = 2216; + this.state = 2213; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2215; + if(_la===HiveSql.T_OPEN_P) { + this.state = 2212; this.cte_select_cols(); } - this.state = 2218; - this.match(HiveSqlParser.T_AS); - this.state = 2219; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2220; + this.state = 2215; + this.match(HiveSql.T_AS); + this.state = 2216; + this.match(HiveSql.T_OPEN_P); + this.state = 2217; this.fullselect_stmt(); - this.state = 2221; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2218; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -23178,7 +23218,7 @@ function Cte_select_colsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_cte_select_cols; + this.ruleIndex = HiveSql.RULE_cte_select_cols; return this; } @@ -23186,7 +23226,7 @@ Cte_select_colsContext.prototype = Object.create(antlr4.ParserRuleContext.protot Cte_select_colsContext.prototype.constructor = Cte_select_colsContext; Cte_select_colsContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Cte_select_colsContext.prototype.ident = function(i) { @@ -23201,7 +23241,7 @@ Cte_select_colsContext.prototype.ident = function(i) { }; Cte_select_colsContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Cte_select_colsContext.prototype.T_COMMA = function(i) { @@ -23209,9 +23249,9 @@ Cte_select_colsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23239,33 +23279,33 @@ Cte_select_colsContext.prototype.accept = function(visitor) { -HiveSqlParser.Cte_select_colsContext = Cte_select_colsContext; +HiveSql.Cte_select_colsContext = Cte_select_colsContext; -HiveSqlParser.prototype.cte_select_cols = function() { +HiveSql.prototype.cte_select_cols = function() { var localctx = new Cte_select_colsContext(this, this._ctx, this.state); - this.enterRule(localctx, 286, HiveSqlParser.RULE_cte_select_cols); + this.enterRule(localctx, 286, HiveSql.RULE_cte_select_cols); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2223; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2224; + this.state = 2220; + this.match(HiveSql.T_OPEN_P); + this.state = 2221; this.ident(); - this.state = 2229; + this.state = 2226; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2225; - this.match(HiveSqlParser.T_COMMA); - this.state = 2226; + while(_la===HiveSql.T_COMMA) { + this.state = 2222; + this.match(HiveSql.T_COMMA); + this.state = 2223; this.ident(); - this.state = 2231; + this.state = 2228; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2232; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2229; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -23290,7 +23330,7 @@ function Fullselect_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_stmt; + this.ruleIndex = HiveSql.RULE_fullselect_stmt; return this; } @@ -23342,27 +23382,27 @@ Fullselect_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_stmtContext = Fullselect_stmtContext; +HiveSql.Fullselect_stmtContext = Fullselect_stmtContext; -HiveSqlParser.prototype.fullselect_stmt = function() { +HiveSql.prototype.fullselect_stmt = function() { var localctx = new Fullselect_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 288, HiveSqlParser.RULE_fullselect_stmt); + this.enterRule(localctx, 288, HiveSql.RULE_fullselect_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2234; + this.state = 2231; this.fullselect_stmt_item(); - this.state = 2240; + this.state = 2237; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,262,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2235; + this.state = 2232; this.fullselect_set_clause(); - this.state = 2236; + this.state = 2233; this.fullselect_stmt_item(); } - this.state = 2242; + this.state = 2239; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,262,this._ctx); } @@ -23391,7 +23431,7 @@ function Fullselect_stmt_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_stmt_item; + this.ruleIndex = HiveSql.RULE_fullselect_stmt_item; return this; } @@ -23403,7 +23443,7 @@ Fullselect_stmt_itemContext.prototype.subselect_stmt = function() { }; Fullselect_stmt_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Fullselect_stmt_itemContext.prototype.fullselect_stmt = function() { @@ -23411,7 +23451,7 @@ Fullselect_stmt_itemContext.prototype.fullselect_stmt = function() { }; Fullselect_stmt_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Fullselect_stmt_itemContext.prototype.enterRule = function(listener) { @@ -23437,30 +23477,30 @@ Fullselect_stmt_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_stmt_itemContext = Fullselect_stmt_itemContext; +HiveSql.Fullselect_stmt_itemContext = Fullselect_stmt_itemContext; -HiveSqlParser.prototype.fullselect_stmt_item = function() { +HiveSql.prototype.fullselect_stmt_item = function() { var localctx = new Fullselect_stmt_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 290, HiveSqlParser.RULE_fullselect_stmt_item); + this.enterRule(localctx, 290, HiveSql.RULE_fullselect_stmt_item); try { - this.state = 2248; + this.state = 2245; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: this.enterOuterAlt(localctx, 1); - this.state = 2243; + this.state = 2240; this.subselect_stmt(); break; - case HiveSqlParser.T_OPEN_P: + case HiveSql.T_OPEN_P: this.enterOuterAlt(localctx, 2); - this.state = 2244; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2245; + this.state = 2241; + this.match(HiveSql.T_OPEN_P); + this.state = 2242; this.fullselect_stmt(); - this.state = 2246; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2243; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); @@ -23489,7 +23529,7 @@ function Fullselect_set_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_fullselect_set_clause; + this.ruleIndex = HiveSql.RULE_fullselect_set_clause; return this; } @@ -23497,19 +23537,19 @@ Fullselect_set_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. Fullselect_set_clauseContext.prototype.constructor = Fullselect_set_clauseContext; Fullselect_set_clauseContext.prototype.T_UNION = function() { - return this.getToken(HiveSqlParser.T_UNION, 0); + return this.getToken(HiveSql.T_UNION, 0); }; Fullselect_set_clauseContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Fullselect_set_clauseContext.prototype.T_EXCEPT = function() { - return this.getToken(HiveSqlParser.T_EXCEPT, 0); + return this.getToken(HiveSql.T_EXCEPT, 0); }; Fullselect_set_clauseContext.prototype.T_INTERSECT = function() { - return this.getToken(HiveSqlParser.T_INTERSECT, 0); + return this.getToken(HiveSql.T_INTERSECT, 0); }; Fullselect_set_clauseContext.prototype.enterRule = function(listener) { @@ -23535,53 +23575,53 @@ Fullselect_set_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Fullselect_set_clauseContext = Fullselect_set_clauseContext; +HiveSql.Fullselect_set_clauseContext = Fullselect_set_clauseContext; -HiveSqlParser.prototype.fullselect_set_clause = function() { +HiveSql.prototype.fullselect_set_clause = function() { var localctx = new Fullselect_set_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 292, HiveSqlParser.RULE_fullselect_set_clause); + this.enterRule(localctx, 292, HiveSql.RULE_fullselect_set_clause); var _la = 0; // Token type try { - this.state = 2262; + this.state = 2259; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_UNION: + case HiveSql.T_UNION: this.enterOuterAlt(localctx, 1); - this.state = 2250; - this.match(HiveSqlParser.T_UNION); - this.state = 2252; + this.state = 2247; + this.match(HiveSql.T_UNION); + this.state = 2249; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2251; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2248; + this.match(HiveSql.T_ALL); } break; - case HiveSqlParser.T_EXCEPT: + case HiveSql.T_EXCEPT: this.enterOuterAlt(localctx, 2); - this.state = 2254; - this.match(HiveSqlParser.T_EXCEPT); - this.state = 2256; + this.state = 2251; + this.match(HiveSql.T_EXCEPT); + this.state = 2253; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2255; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2252; + this.match(HiveSql.T_ALL); } break; - case HiveSqlParser.T_INTERSECT: + case HiveSql.T_INTERSECT: this.enterOuterAlt(localctx, 3); - this.state = 2258; - this.match(HiveSqlParser.T_INTERSECT); - this.state = 2260; + this.state = 2255; + this.match(HiveSql.T_INTERSECT); + this.state = 2257; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ALL) { - this.state = 2259; - this.match(HiveSqlParser.T_ALL); + if(_la===HiveSql.T_ALL) { + this.state = 2256; + this.match(HiveSql.T_ALL); } break; @@ -23612,7 +23652,7 @@ function Subselect_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_subselect_stmt; + this.ruleIndex = HiveSql.RULE_subselect_stmt; return this; } @@ -23624,11 +23664,11 @@ Subselect_stmtContext.prototype.select_list = function() { }; Subselect_stmtContext.prototype.T_SELECT = function() { - return this.getToken(HiveSqlParser.T_SELECT, 0); + return this.getToken(HiveSql.T_SELECT, 0); }; Subselect_stmtContext.prototype.T_SEL = function() { - return this.getToken(HiveSqlParser.T_SEL, 0); + return this.getToken(HiveSql.T_SEL, 0); }; Subselect_stmtContext.prototype.into_clause = function() { @@ -23686,83 +23726,83 @@ Subselect_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Subselect_stmtContext = Subselect_stmtContext; +HiveSql.Subselect_stmtContext = Subselect_stmtContext; -HiveSqlParser.prototype.subselect_stmt = function() { +HiveSql.prototype.subselect_stmt = function() { var localctx = new Subselect_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 294, HiveSqlParser.RULE_subselect_stmt); + this.enterRule(localctx, 294, HiveSql.RULE_subselect_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2264; + this.state = 2261; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_SELECT || _la===HiveSqlParser.T_SEL)) { + if(!(_la===HiveSql.T_SEL || _la===HiveSql.T_SELECT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2265; + this.state = 2262; this.select_list(); - this.state = 2267; + this.state = 2264; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,268,this._ctx); if(la_===1) { - this.state = 2266; + this.state = 2263; this.into_clause(); + } + this.state = 2267; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,269,this._ctx); + if(la_===1) { + this.state = 2266; + this.from_clause(); + } this.state = 2270; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,269,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,270,this._ctx); if(la_===1) { this.state = 2269; - this.from_clause(); + this.where_clause(); } this.state = 2273; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,270,this._ctx); - if(la_===1) { - this.state = 2272; - this.where_clause(); - - } - this.state = 2276; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,271,this._ctx); if(la_===1) { - this.state = 2275; + this.state = 2272; this.group_by_clause(); + } + this.state = 2277; + this._errHandler.sync(this); + var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + if(la_===1) { + this.state = 2275; + this.having_clause(); + + } else if(la_===2) { + this.state = 2276; + this.qualify_clause(); + } this.state = 2280; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,272,this._ctx); + var la_ = this._interp.adaptivePredict(this._input,273,this._ctx); if(la_===1) { - this.state = 2278; - this.having_clause(); - - } else if(la_===2) { this.state = 2279; - this.qualify_clause(); + this.order_by_clause(); } this.state = 2283; this._errHandler.sync(this); - var la_ = this._interp.adaptivePredict(this._input,273,this._ctx); - if(la_===1) { - this.state = 2282; - this.order_by_clause(); - - } - this.state = 2286; - this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,274,this._ctx); if(la_===1) { - this.state = 2285; + this.state = 2282; this.select_options(); } @@ -23790,7 +23830,7 @@ function Select_listContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list; + this.ruleIndex = HiveSql.RULE_select_list; return this; } @@ -23821,9 +23861,9 @@ Select_listContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -23851,43 +23891,43 @@ Select_listContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_listContext = Select_listContext; +HiveSql.Select_listContext = Select_listContext; -HiveSqlParser.prototype.select_list = function() { +HiveSql.prototype.select_list = function() { var localctx = new Select_listContext(this, this._ctx, this.state); - this.enterRule(localctx, 296, HiveSqlParser.RULE_select_list); + this.enterRule(localctx, 296, HiveSql.RULE_select_list); try { this.enterOuterAlt(localctx, 1); - this.state = 2289; + this.state = 2286; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,275,this._ctx); if(la_===1) { - this.state = 2288; + this.state = 2285; this.select_list_set(); } - this.state = 2292; + this.state = 2289; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,276,this._ctx); if(la_===1) { - this.state = 2291; + this.state = 2288; this.select_list_limit(); } - this.state = 2294; + this.state = 2291; this.select_list_item(); - this.state = 2299; + this.state = 2296; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,277,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2295; - this.match(HiveSqlParser.T_COMMA); - this.state = 2296; + this.state = 2292; + this.match(HiveSql.T_COMMA); + this.state = 2293; this.select_list_item(); } - this.state = 2301; + this.state = 2298; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,277,this._ctx); } @@ -23916,7 +23956,7 @@ function Select_list_setContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_set; + this.ruleIndex = HiveSql.RULE_select_list_set; return this; } @@ -23924,11 +23964,11 @@ Select_list_setContext.prototype = Object.create(antlr4.ParserRuleContext.protot Select_list_setContext.prototype.constructor = Select_list_setContext; Select_list_setContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Select_list_setContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Select_list_setContext.prototype.enterRule = function(listener) { @@ -23954,18 +23994,18 @@ Select_list_setContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_setContext = Select_list_setContext; +HiveSql.Select_list_setContext = Select_list_setContext; -HiveSqlParser.prototype.select_list_set = function() { +HiveSql.prototype.select_list_set = function() { var localctx = new Select_list_setContext(this, this._ctx, this.state); - this.enterRule(localctx, 298, HiveSqlParser.RULE_select_list_set); + this.enterRule(localctx, 298, HiveSql.RULE_select_list_set); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2302; + this.state = 2299; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ALL || _la===HiveSqlParser.T_DISTINCT)) { + if(!(_la===HiveSql.T_ALL || _la===HiveSql.T_DISTINCT)) { this._errHandler.recoverInline(this); } else { @@ -23996,7 +24036,7 @@ function Select_list_limitContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_limit; + this.ruleIndex = HiveSql.RULE_select_list_limit; return this; } @@ -24004,7 +24044,7 @@ Select_list_limitContext.prototype = Object.create(antlr4.ParserRuleContext.prot Select_list_limitContext.prototype.constructor = Select_list_limitContext; Select_list_limitContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Select_list_limitContext.prototype.expr = function() { @@ -24034,17 +24074,17 @@ Select_list_limitContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_limitContext = Select_list_limitContext; +HiveSql.Select_list_limitContext = Select_list_limitContext; -HiveSqlParser.prototype.select_list_limit = function() { +HiveSql.prototype.select_list_limit = function() { var localctx = new Select_list_limitContext(this, this._ctx, this.state); - this.enterRule(localctx, 300, HiveSqlParser.RULE_select_list_limit); + this.enterRule(localctx, 300, HiveSql.RULE_select_list_limit); try { this.enterOuterAlt(localctx, 1); - this.state = 2304; - this.match(HiveSqlParser.T_TOP); - this.state = 2305; + this.state = 2301; + this.match(HiveSql.T_TOP); + this.state = 2302; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -24070,7 +24110,7 @@ function Select_list_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_item; + this.ruleIndex = HiveSql.RULE_select_list_item; return this; } @@ -24090,7 +24130,7 @@ Select_list_itemContext.prototype.ident = function() { }; Select_list_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Select_list_itemContext.prototype.select_list_alias = function() { @@ -24120,43 +24160,43 @@ Select_list_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_itemContext = Select_list_itemContext; +HiveSql.Select_list_itemContext = Select_list_itemContext; -HiveSqlParser.prototype.select_list_item = function() { +HiveSql.prototype.select_list_item = function() { var localctx = new Select_list_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 302, HiveSqlParser.RULE_select_list_item); + this.enterRule(localctx, 302, HiveSql.RULE_select_list_item); try { this.enterOuterAlt(localctx, 1); - this.state = 2317; + this.state = 2314; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,280,this._ctx); switch(la_) { case 1: - this.state = 2310; + this.state = 2307; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,278,this._ctx); if(la_===1) { - this.state = 2307; + this.state = 2304; this.ident(); - this.state = 2308; - this.match(HiveSqlParser.T_EQUAL); + this.state = 2305; + this.match(HiveSql.T_EQUAL); } - this.state = 2312; + this.state = 2309; this.expr(0); - this.state = 2314; + this.state = 2311; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,279,this._ctx); if(la_===1) { - this.state = 2313; + this.state = 2310; this.select_list_alias(); } break; case 2: - this.state = 2316; + this.state = 2313; this.select_list_asterisk(); break; @@ -24185,7 +24225,7 @@ function Select_list_aliasContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_alias; + this.ruleIndex = HiveSql.RULE_select_list_alias; return this; } @@ -24197,23 +24237,23 @@ Select_list_aliasContext.prototype.ident = function() { }; Select_list_aliasContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Select_list_aliasContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Select_list_aliasContext.prototype.T_TITLE = function() { - return this.getToken(HiveSqlParser.T_TITLE, 0); + return this.getToken(HiveSql.T_TITLE, 0); }; Select_list_aliasContext.prototype.L_S_STRING = function() { - return this.getToken(HiveSqlParser.L_S_STRING, 0); + return this.getToken(HiveSql.L_S_STRING, 0); }; Select_list_aliasContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Select_list_aliasContext.prototype.enterRule = function(listener) { @@ -24239,45 +24279,45 @@ Select_list_aliasContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_aliasContext = Select_list_aliasContext; +HiveSql.Select_list_aliasContext = Select_list_aliasContext; -HiveSqlParser.prototype.select_list_alias = function() { +HiveSql.prototype.select_list_alias = function() { var localctx = new Select_list_aliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 304, HiveSqlParser.RULE_select_list_alias); + this.enterRule(localctx, 304, HiveSql.RULE_select_list_alias); try { - this.state = 2328; + this.state = 2325; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,282,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2319; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"INTO\") && !this._input.LT(1).getText().equalsIgnoreCase(\"FROM\")"); + this.state = 2316; + if (!( this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"INTO\" && this._input.LT(1).text.toUpperCase() !== \"FROM\""); } - this.state = 2321; + this.state = 2318; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,281,this._ctx); if(la_===1) { - this.state = 2320; - this.match(HiveSqlParser.T_AS); + this.state = 2317; + this.match(HiveSql.T_AS); } - this.state = 2323; + this.state = 2320; this.ident(); break; case 2: this.enterOuterAlt(localctx, 2); + this.state = 2321; + this.match(HiveSql.T_OPEN_P); + this.state = 2322; + this.match(HiveSql.T_TITLE); + this.state = 2323; + this.match(HiveSql.L_S_STRING); this.state = 2324; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2325; - this.match(HiveSqlParser.T_TITLE); - this.state = 2326; - this.match(HiveSqlParser.L_S_STRING); - this.state = 2327; - this.match(HiveSqlParser.T_CLOSE_P); + this.match(HiveSql.T_CLOSE_P); break; } @@ -24305,15 +24345,23 @@ function Select_list_asteriskContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_list_asterisk; + this.ruleIndex = HiveSql.RULE_select_list_asterisk; return this; } Select_list_asteriskContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Select_list_asteriskContext.prototype.constructor = Select_list_asteriskContext; +Select_list_asteriskContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); +}; + Select_list_asteriskContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); +}; + +Select_list_asteriskContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); }; Select_list_asteriskContext.prototype.enterRule = function(listener) { @@ -24339,27 +24387,27 @@ Select_list_asteriskContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_list_asteriskContext = Select_list_asteriskContext; +HiveSql.Select_list_asteriskContext = Select_list_asteriskContext; -HiveSqlParser.prototype.select_list_asterisk = function() { +HiveSql.prototype.select_list_asterisk = function() { var localctx = new Select_list_asteriskContext(this, this._ctx, this.state); - this.enterRule(localctx, 306, HiveSqlParser.RULE_select_list_asterisk); + this.enterRule(localctx, 306, HiveSql.RULE_select_list_asterisk); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2332; + this.state = 2329; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.L_ID) { - this.state = 2330; - this.match(HiveSqlParser.L_ID); - this.state = 2331; - this.match(HiveSqlParser.T__4); + if(_la===HiveSql.L_ID) { + this.state = 2327; + this.match(HiveSql.L_ID); + this.state = 2328; + this.match(HiveSql.T_DOT); } - this.state = 2334; - this.match(HiveSqlParser.T__5); + this.state = 2331; + this.match(HiveSql.T_MUL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -24384,7 +24432,7 @@ function Into_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_into_clause; + this.ruleIndex = HiveSql.RULE_into_clause; return this; } @@ -24392,7 +24440,7 @@ Into_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Into_clauseContext.prototype.constructor = Into_clauseContext; Into_clauseContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Into_clauseContext.prototype.ident = function(i) { @@ -24411,9 +24459,9 @@ Into_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -24441,29 +24489,29 @@ Into_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Into_clauseContext = Into_clauseContext; +HiveSql.Into_clauseContext = Into_clauseContext; -HiveSqlParser.prototype.into_clause = function() { +HiveSql.prototype.into_clause = function() { var localctx = new Into_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 308, HiveSqlParser.RULE_into_clause); + this.enterRule(localctx, 308, HiveSql.RULE_into_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2336; - this.match(HiveSqlParser.T_INTO); - this.state = 2337; + this.state = 2333; + this.match(HiveSql.T_INTO); + this.state = 2334; this.ident(); - this.state = 2342; + this.state = 2339; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,284,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2338; - this.match(HiveSqlParser.T_COMMA); - this.state = 2339; + this.state = 2335; + this.match(HiveSql.T_COMMA); + this.state = 2336; this.ident(); } - this.state = 2344; + this.state = 2341; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,284,this._ctx); } @@ -24492,7 +24540,7 @@ function From_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_clause; + this.ruleIndex = HiveSql.RULE_from_clause; return this; } @@ -24500,7 +24548,7 @@ From_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) From_clauseContext.prototype.constructor = From_clauseContext; From_clauseContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; From_clauseContext.prototype.from_table_clause = function() { @@ -24541,27 +24589,27 @@ From_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_clauseContext = From_clauseContext; +HiveSql.From_clauseContext = From_clauseContext; -HiveSqlParser.prototype.from_clause = function() { +HiveSql.prototype.from_clause = function() { var localctx = new From_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 310, HiveSqlParser.RULE_from_clause); + this.enterRule(localctx, 310, HiveSql.RULE_from_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2345; - this.match(HiveSqlParser.T_FROM); - this.state = 2346; + this.state = 2342; + this.match(HiveSql.T_FROM); + this.state = 2343; this.from_table_clause(); - this.state = 2350; + this.state = 2347; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,285,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2347; + this.state = 2344; this.from_join_clause(); } - this.state = 2352; + this.state = 2349; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,285,this._ctx); } @@ -24590,7 +24638,7 @@ function From_table_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_clause; + this.ruleIndex = HiveSql.RULE_from_table_clause; return this; } @@ -24632,32 +24680,32 @@ From_table_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_clauseContext = From_table_clauseContext; +HiveSql.From_table_clauseContext = From_table_clauseContext; -HiveSqlParser.prototype.from_table_clause = function() { +HiveSql.prototype.from_table_clause = function() { var localctx = new From_table_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 312, HiveSqlParser.RULE_from_table_clause); + this.enterRule(localctx, 312, HiveSql.RULE_from_table_clause); try { - this.state = 2356; + this.state = 2353; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,286,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2353; + this.state = 2350; this.from_table_name_clause(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2354; + this.state = 2351; this.from_subselect_clause(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2355; + this.state = 2352; this.from_table_values_clause(); break; @@ -24686,7 +24734,7 @@ function From_table_name_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_name_clause; + this.ruleIndex = HiveSql.RULE_from_table_name_clause; return this; } @@ -24724,21 +24772,21 @@ From_table_name_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_name_clauseContext = From_table_name_clauseContext; +HiveSql.From_table_name_clauseContext = From_table_name_clauseContext; -HiveSqlParser.prototype.from_table_name_clause = function() { +HiveSql.prototype.from_table_name_clause = function() { var localctx = new From_table_name_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 314, HiveSqlParser.RULE_from_table_name_clause); + this.enterRule(localctx, 314, HiveSql.RULE_from_table_name_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2358; + this.state = 2355; this.table_name(); - this.state = 2360; + this.state = 2357; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,287,this._ctx); if(la_===1) { - this.state = 2359; + this.state = 2356; this.from_alias_clause(); } @@ -24766,7 +24814,7 @@ function From_subselect_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_subselect_clause; + this.ruleIndex = HiveSql.RULE_from_subselect_clause; return this; } @@ -24774,7 +24822,7 @@ From_subselect_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. From_subselect_clauseContext.prototype.constructor = From_subselect_clauseContext; From_subselect_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_subselect_clauseContext.prototype.select_stmt = function() { @@ -24782,7 +24830,7 @@ From_subselect_clauseContext.prototype.select_stmt = function() { }; From_subselect_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_subselect_clauseContext.prototype.from_alias_clause = function() { @@ -24812,25 +24860,25 @@ From_subselect_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_subselect_clauseContext = From_subselect_clauseContext; +HiveSql.From_subselect_clauseContext = From_subselect_clauseContext; -HiveSqlParser.prototype.from_subselect_clause = function() { +HiveSql.prototype.from_subselect_clause = function() { var localctx = new From_subselect_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 316, HiveSqlParser.RULE_from_subselect_clause); + this.enterRule(localctx, 316, HiveSql.RULE_from_subselect_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2362; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2363; + this.state = 2359; + this.match(HiveSql.T_OPEN_P); + this.state = 2360; this.select_stmt(); - this.state = 2364; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2366; + this.state = 2361; + this.match(HiveSql.T_CLOSE_P); + this.state = 2363; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,288,this._ctx); if(la_===1) { - this.state = 2365; + this.state = 2362; this.from_alias_clause(); } @@ -24858,7 +24906,7 @@ function From_join_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_join_clause; + this.ruleIndex = HiveSql.RULE_from_join_clause; return this; } @@ -24866,7 +24914,7 @@ From_join_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.proto From_join_clauseContext.prototype.constructor = From_join_clauseContext; From_join_clauseContext.prototype.T_COMMA = function() { - return this.getToken(HiveSqlParser.T_COMMA, 0); + return this.getToken(HiveSql.T_COMMA, 0); }; From_join_clauseContext.prototype.from_table_clause = function() { @@ -24878,7 +24926,7 @@ From_join_clauseContext.prototype.from_join_type_clause = function() { }; From_join_clauseContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; From_join_clauseContext.prototype.bool_expr = function() { @@ -24908,36 +24956,36 @@ From_join_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_join_clauseContext = From_join_clauseContext; +HiveSql.From_join_clauseContext = From_join_clauseContext; -HiveSqlParser.prototype.from_join_clause = function() { +HiveSql.prototype.from_join_clause = function() { var localctx = new From_join_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 318, HiveSqlParser.RULE_from_join_clause); + this.enterRule(localctx, 318, HiveSql.RULE_from_join_clause); try { - this.state = 2375; + this.state = 2372; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_COMMA: + case HiveSql.T_COMMA: this.enterOuterAlt(localctx, 1); - this.state = 2368; - this.match(HiveSqlParser.T_COMMA); - this.state = 2369; + this.state = 2365; + this.match(HiveSql.T_COMMA); + this.state = 2366; this.from_table_clause(); break; - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: + case HiveSql.T_FULL: + case HiveSql.T_INNER: + case HiveSql.T_JOIN: + case HiveSql.T_LEFT: + case HiveSql.T_RIGHT: this.enterOuterAlt(localctx, 2); - this.state = 2370; + this.state = 2367; this.from_join_type_clause(); - this.state = 2371; + this.state = 2368; this.from_table_clause(); - this.state = 2372; - this.match(HiveSqlParser.T_ON); - this.state = 2373; + this.state = 2369; + this.match(HiveSql.T_ON); + this.state = 2370; this.bool_expr(0); break; default: @@ -24967,7 +25015,7 @@ function From_join_type_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_join_type_clause; + this.ruleIndex = HiveSql.RULE_from_join_type_clause; return this; } @@ -24975,27 +25023,27 @@ From_join_type_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. From_join_type_clauseContext.prototype.constructor = From_join_type_clauseContext; From_join_type_clauseContext.prototype.T_JOIN = function() { - return this.getToken(HiveSqlParser.T_JOIN, 0); + return this.getToken(HiveSql.T_JOIN, 0); }; From_join_type_clauseContext.prototype.T_INNER = function() { - return this.getToken(HiveSqlParser.T_INNER, 0); + return this.getToken(HiveSql.T_INNER, 0); }; From_join_type_clauseContext.prototype.T_LEFT = function() { - return this.getToken(HiveSqlParser.T_LEFT, 0); + return this.getToken(HiveSql.T_LEFT, 0); }; From_join_type_clauseContext.prototype.T_RIGHT = function() { - return this.getToken(HiveSqlParser.T_RIGHT, 0); + return this.getToken(HiveSql.T_RIGHT, 0); }; From_join_type_clauseContext.prototype.T_FULL = function() { - return this.getToken(HiveSqlParser.T_FULL, 0); + return this.getToken(HiveSql.T_FULL, 0); }; From_join_type_clauseContext.prototype.T_OUTER = function() { - return this.getToken(HiveSqlParser.T_OUTER, 0); + return this.getToken(HiveSql.T_OUTER, 0); }; From_join_type_clauseContext.prototype.enterRule = function(listener) { @@ -25021,54 +25069,54 @@ From_join_type_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_join_type_clauseContext = From_join_type_clauseContext; +HiveSql.From_join_type_clauseContext = From_join_type_clauseContext; -HiveSqlParser.prototype.from_join_type_clause = function() { +HiveSql.prototype.from_join_type_clause = function() { var localctx = new From_join_type_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 320, HiveSqlParser.RULE_from_join_type_clause); + this.enterRule(localctx, 320, HiveSql.RULE_from_join_type_clause); var _la = 0; // Token type try { - this.state = 2386; + this.state = 2383; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: + case HiveSql.T_INNER: + case HiveSql.T_JOIN: this.enterOuterAlt(localctx, 1); - this.state = 2378; + this.state = 2375; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_INNER) { - this.state = 2377; - this.match(HiveSqlParser.T_INNER); + if(_la===HiveSql.T_INNER) { + this.state = 2374; + this.match(HiveSql.T_INNER); } - this.state = 2380; - this.match(HiveSqlParser.T_JOIN); + this.state = 2377; + this.match(HiveSql.T_JOIN); break; - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: + case HiveSql.T_FULL: + case HiveSql.T_LEFT: + case HiveSql.T_RIGHT: this.enterOuterAlt(localctx, 2); - this.state = 2381; + this.state = 2378; _la = this._input.LA(1); - if(!(((((_la - 283)) & ~0x1f) == 0 && ((1 << (_la - 283)) & ((1 << (HiveSqlParser.T_LEFT - 283)) | (1 << (HiveSqlParser.T_RIGHT - 283)) | (1 << (HiveSqlParser.T_FULL - 283)))) !== 0))) { + if(!(_la===HiveSql.T_FULL || _la===HiveSql.T_LEFT || _la===HiveSql.T_RIGHT)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2383; + this.state = 2380; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OUTER) { - this.state = 2382; - this.match(HiveSqlParser.T_OUTER); + if(_la===HiveSql.T_OUTER) { + this.state = 2379; + this.match(HiveSql.T_OUTER); } - this.state = 2385; - this.match(HiveSqlParser.T_JOIN); + this.state = 2382; + this.match(HiveSql.T_JOIN); break; default: throw new antlr4.error.NoViableAltException(this); @@ -25097,7 +25145,7 @@ function From_table_values_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_values_clause; + this.ruleIndex = HiveSql.RULE_from_table_values_clause; return this; } @@ -25105,15 +25153,15 @@ From_table_values_clauseContext.prototype = Object.create(antlr4.ParserRuleConte From_table_values_clauseContext.prototype.constructor = From_table_values_clauseContext; From_table_values_clauseContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; From_table_values_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_table_values_clauseContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; From_table_values_clauseContext.prototype.from_table_values_row = function(i) { @@ -25128,7 +25176,7 @@ From_table_values_clauseContext.prototype.from_table_values_row = function(i) { }; From_table_values_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_table_values_clauseContext.prototype.T_COMMA = function(i) { @@ -25136,9 +25184,9 @@ From_table_values_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25170,42 +25218,42 @@ From_table_values_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_values_clauseContext = From_table_values_clauseContext; +HiveSql.From_table_values_clauseContext = From_table_values_clauseContext; -HiveSqlParser.prototype.from_table_values_clause = function() { +HiveSql.prototype.from_table_values_clause = function() { var localctx = new From_table_values_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 322, HiveSqlParser.RULE_from_table_values_clause); + this.enterRule(localctx, 322, HiveSql.RULE_from_table_values_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2385; + this.match(HiveSql.T_TABLE); + this.state = 2386; + this.match(HiveSql.T_OPEN_P); + this.state = 2387; + this.match(HiveSql.T_VALUES); this.state = 2388; - this.match(HiveSqlParser.T_TABLE); - this.state = 2389; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2390; - this.match(HiveSqlParser.T_VALUES); - this.state = 2391; this.from_table_values_row(); - this.state = 2396; + this.state = 2393; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2392; - this.match(HiveSqlParser.T_COMMA); - this.state = 2393; + while(_la===HiveSql.T_COMMA) { + this.state = 2389; + this.match(HiveSql.T_COMMA); + this.state = 2390; this.from_table_values_row(); - this.state = 2398; + this.state = 2395; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2399; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2401; + this.state = 2396; + this.match(HiveSql.T_CLOSE_P); + this.state = 2398; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,294,this._ctx); if(la_===1) { - this.state = 2400; + this.state = 2397; this.from_alias_clause(); } @@ -25233,7 +25281,7 @@ function From_table_values_rowContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_table_values_row; + this.ruleIndex = HiveSql.RULE_from_table_values_row; return this; } @@ -25252,11 +25300,11 @@ From_table_values_rowContext.prototype.expr = function(i) { }; From_table_values_rowContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_table_values_rowContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_table_values_rowContext.prototype.T_COMMA = function(i) { @@ -25264,9 +25312,9 @@ From_table_values_rowContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25294,44 +25342,44 @@ From_table_values_rowContext.prototype.accept = function(visitor) { -HiveSqlParser.From_table_values_rowContext = From_table_values_rowContext; +HiveSql.From_table_values_rowContext = From_table_values_rowContext; -HiveSqlParser.prototype.from_table_values_row = function() { +HiveSql.prototype.from_table_values_row = function() { var localctx = new From_table_values_rowContext(this, this._ctx, this.state); - this.enterRule(localctx, 324, HiveSqlParser.RULE_from_table_values_row); + this.enterRule(localctx, 324, HiveSql.RULE_from_table_values_row); var _la = 0; // Token type try { - this.state = 2415; + this.state = 2412; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,296,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2403; + this.state = 2400; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2404; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2405; + this.state = 2401; + this.match(HiveSql.T_OPEN_P); + this.state = 2402; this.expr(0); - this.state = 2410; + this.state = 2407; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2406; - this.match(HiveSqlParser.T_COMMA); - this.state = 2407; + while(_la===HiveSql.T_COMMA) { + this.state = 2403; + this.match(HiveSql.T_COMMA); + this.state = 2404; this.expr(0); - this.state = 2412; + this.state = 2409; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2413; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2410; + this.match(HiveSql.T_CLOSE_P); break; } @@ -25359,7 +25407,7 @@ function From_alias_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_from_alias_clause; + this.ruleIndex = HiveSql.RULE_from_alias_clause; return this; } @@ -25371,11 +25419,11 @@ From_alias_clauseContext.prototype.ident = function() { }; From_alias_clauseContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; From_alias_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; From_alias_clauseContext.prototype.L_ID = function(i) { @@ -25383,15 +25431,15 @@ From_alias_clauseContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; From_alias_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; From_alias_clauseContext.prototype.T_COMMA = function(i) { @@ -25399,9 +25447,9 @@ From_alias_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25429,58 +25477,59 @@ From_alias_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.From_alias_clauseContext = From_alias_clauseContext; +HiveSql.From_alias_clauseContext = From_alias_clauseContext; -HiveSqlParser.prototype.from_alias_clause = function() { +HiveSql.prototype.from_alias_clause = function() { var localctx = new From_alias_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 326, HiveSqlParser.RULE_from_alias_clause); + this.enterRule(localctx, 326, HiveSql.RULE_from_alias_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2417; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"EXEC\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"EXECUTE\") && \n !this._input.LT(1).getText().equalsIgnoreCase(\"INNER\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"LEFT\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"GROUP\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"ORDER\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"LIMIT\") &&\n !this._input.LT(1).getText().equalsIgnoreCase(\"WITH\")"); + this.state = 2414; + if (!( this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"EXEC\" &&\n this._input.LT(1).text.toUpperCase() !== \"EXECUTE\" &&\n this._input.LT(1).text.toUpperCase() !== \"INNER\" &&\n this._input.LT(1).text.toUpperCase() !== \"LEFT\" &&\n this._input.LT(1).text.toUpperCase() !== \"GROUP\" &&\n this._input.LT(1).text.toUpperCase() !== \"ORDER\" &&\n this._input.LT(1).text.toUpperCase() !== \"LIMIT\" &&\n this._input.LT(1).text.toUpperCase() !== \"WITH\" &&\n this._input.LT(1).text.toUpperCase() !== \"JOIN\""); } - this.state = 2419; + this.state = 2416; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,297,this._ctx); if(la_===1) { - this.state = 2418; - this.match(HiveSqlParser.T_AS); + this.state = 2415; + this.match(HiveSql.T_AS); } - this.state = 2421; + this.state = 2418; this.ident(); - this.state = 2432; + this.state = 2429; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,299,this._ctx); if(la_===1) { - this.state = 2422; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2423; - this.match(HiveSqlParser.L_ID); - this.state = 2428; + this.state = 2419; + this.match(HiveSql.T_OPEN_P); + this.state = 2420; + this.match(HiveSql.L_ID); + this.state = 2425; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2424; - this.match(HiveSqlParser.T_COMMA); - this.state = 2425; - this.match(HiveSqlParser.L_ID); - this.state = 2430; + while(_la===HiveSql.T_COMMA) { + this.state = 2421; + this.match(HiveSql.T_COMMA); + this.state = 2422; + this.match(HiveSql.L_ID); + this.state = 2427; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2431; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2428; + this.match(HiveSql.T_CLOSE_P); } } catch (re) { @@ -25507,7 +25556,7 @@ function Table_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_table_name; + this.ruleIndex = HiveSql.RULE_table_name; return this; } @@ -25541,15 +25590,15 @@ Table_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.Table_nameContext = Table_nameContext; +HiveSql.Table_nameContext = Table_nameContext; -HiveSqlParser.prototype.table_name = function() { +HiveSql.prototype.table_name = function() { var localctx = new Table_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 328, HiveSqlParser.RULE_table_name); + this.enterRule(localctx, 328, HiveSql.RULE_table_name); try { this.enterOuterAlt(localctx, 1); - this.state = 2434; + this.state = 2431; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25575,7 +25624,7 @@ function Where_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_where_clause; + this.ruleIndex = HiveSql.RULE_where_clause; return this; } @@ -25583,7 +25632,7 @@ Where_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Where_clauseContext.prototype.constructor = Where_clauseContext; Where_clauseContext.prototype.T_WHERE = function() { - return this.getToken(HiveSqlParser.T_WHERE, 0); + return this.getToken(HiveSql.T_WHERE, 0); }; Where_clauseContext.prototype.bool_expr = function() { @@ -25613,17 +25662,17 @@ Where_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Where_clauseContext = Where_clauseContext; +HiveSql.Where_clauseContext = Where_clauseContext; -HiveSqlParser.prototype.where_clause = function() { +HiveSql.prototype.where_clause = function() { var localctx = new Where_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 330, HiveSqlParser.RULE_where_clause); + this.enterRule(localctx, 330, HiveSql.RULE_where_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2436; - this.match(HiveSqlParser.T_WHERE); - this.state = 2437; + this.state = 2433; + this.match(HiveSql.T_WHERE); + this.state = 2434; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25649,7 +25698,7 @@ function Group_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_group_by_clause; + this.ruleIndex = HiveSql.RULE_group_by_clause; return this; } @@ -25657,11 +25706,11 @@ Group_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.protot Group_by_clauseContext.prototype.constructor = Group_by_clauseContext; Group_by_clauseContext.prototype.T_GROUP = function() { - return this.getToken(HiveSqlParser.T_GROUP, 0); + return this.getToken(HiveSql.T_GROUP, 0); }; Group_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Group_by_clauseContext.prototype.expr = function(i) { @@ -25680,9 +25729,9 @@ Group_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25710,31 +25759,31 @@ Group_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Group_by_clauseContext = Group_by_clauseContext; +HiveSql.Group_by_clauseContext = Group_by_clauseContext; -HiveSqlParser.prototype.group_by_clause = function() { +HiveSql.prototype.group_by_clause = function() { var localctx = new Group_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 332, HiveSqlParser.RULE_group_by_clause); + this.enterRule(localctx, 332, HiveSql.RULE_group_by_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2439; - this.match(HiveSqlParser.T_GROUP); - this.state = 2440; - this.match(HiveSqlParser.T_BY); - this.state = 2441; + this.state = 2436; + this.match(HiveSql.T_GROUP); + this.state = 2437; + this.match(HiveSql.T_BY); + this.state = 2438; this.expr(0); - this.state = 2446; + this.state = 2443; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,300,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2442; - this.match(HiveSqlParser.T_COMMA); - this.state = 2443; + this.state = 2439; + this.match(HiveSql.T_COMMA); + this.state = 2440; this.expr(0); } - this.state = 2448; + this.state = 2445; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,300,this._ctx); } @@ -25763,7 +25812,7 @@ function Having_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_having_clause; + this.ruleIndex = HiveSql.RULE_having_clause; return this; } @@ -25771,7 +25820,7 @@ Having_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Having_clauseContext.prototype.constructor = Having_clauseContext; Having_clauseContext.prototype.T_HAVING = function() { - return this.getToken(HiveSqlParser.T_HAVING, 0); + return this.getToken(HiveSql.T_HAVING, 0); }; Having_clauseContext.prototype.bool_expr = function() { @@ -25801,17 +25850,17 @@ Having_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Having_clauseContext = Having_clauseContext; +HiveSql.Having_clauseContext = Having_clauseContext; -HiveSqlParser.prototype.having_clause = function() { +HiveSql.prototype.having_clause = function() { var localctx = new Having_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 334, HiveSqlParser.RULE_having_clause); + this.enterRule(localctx, 334, HiveSql.RULE_having_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2449; - this.match(HiveSqlParser.T_HAVING); - this.state = 2450; + this.state = 2446; + this.match(HiveSql.T_HAVING); + this.state = 2447; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25837,7 +25886,7 @@ function Qualify_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_qualify_clause; + this.ruleIndex = HiveSql.RULE_qualify_clause; return this; } @@ -25845,7 +25894,7 @@ Qualify_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Qualify_clauseContext.prototype.constructor = Qualify_clauseContext; Qualify_clauseContext.prototype.T_QUALIFY = function() { - return this.getToken(HiveSqlParser.T_QUALIFY, 0); + return this.getToken(HiveSql.T_QUALIFY, 0); }; Qualify_clauseContext.prototype.bool_expr = function() { @@ -25875,17 +25924,17 @@ Qualify_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Qualify_clauseContext = Qualify_clauseContext; +HiveSql.Qualify_clauseContext = Qualify_clauseContext; -HiveSqlParser.prototype.qualify_clause = function() { +HiveSql.prototype.qualify_clause = function() { var localctx = new Qualify_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 336, HiveSqlParser.RULE_qualify_clause); + this.enterRule(localctx, 336, HiveSql.RULE_qualify_clause); try { this.enterOuterAlt(localctx, 1); - this.state = 2452; - this.match(HiveSqlParser.T_QUALIFY); - this.state = 2453; + this.state = 2449; + this.match(HiveSql.T_QUALIFY); + this.state = 2450; this.bool_expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -25911,7 +25960,7 @@ function Order_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_order_by_clause; + this.ruleIndex = HiveSql.RULE_order_by_clause; return this; } @@ -25919,11 +25968,11 @@ Order_by_clauseContext.prototype = Object.create(antlr4.ParserRuleContext.protot Order_by_clauseContext.prototype.constructor = Order_by_clauseContext; Order_by_clauseContext.prototype.T_ORDER = function() { - return this.getToken(HiveSqlParser.T_ORDER, 0); + return this.getToken(HiveSql.T_ORDER, 0); }; Order_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Order_by_clauseContext.prototype.expr = function(i) { @@ -25942,9 +25991,9 @@ Order_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -25954,9 +26003,9 @@ Order_by_clauseContext.prototype.T_ASC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_ASC); + return this.getTokens(HiveSql.T_ASC); } else { - return this.getToken(HiveSqlParser.T_ASC, i); + return this.getToken(HiveSql.T_ASC, i); } }; @@ -25966,9 +26015,9 @@ Order_by_clauseContext.prototype.T_DESC = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_DESC); + return this.getTokens(HiveSql.T_DESC); } else { - return this.getToken(HiveSqlParser.T_DESC, i); + return this.getToken(HiveSql.T_DESC, i); } }; @@ -25996,28 +26045,28 @@ Order_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Order_by_clauseContext = Order_by_clauseContext; +HiveSql.Order_by_clauseContext = Order_by_clauseContext; -HiveSqlParser.prototype.order_by_clause = function() { +HiveSql.prototype.order_by_clause = function() { var localctx = new Order_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 338, HiveSqlParser.RULE_order_by_clause); + this.enterRule(localctx, 338, HiveSql.RULE_order_by_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2455; - this.match(HiveSqlParser.T_ORDER); - this.state = 2456; - this.match(HiveSqlParser.T_BY); - this.state = 2457; + this.state = 2452; + this.match(HiveSql.T_ORDER); + this.state = 2453; + this.match(HiveSql.T_BY); + this.state = 2454; this.expr(0); - this.state = 2459; + this.state = 2456; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,301,this._ctx); if(la_===1) { - this.state = 2458; + this.state = 2455; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -26026,22 +26075,22 @@ HiveSqlParser.prototype.order_by_clause = function() { } } - this.state = 2468; + this.state = 2465; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,303,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2461; - this.match(HiveSqlParser.T_COMMA); - this.state = 2462; + this.state = 2458; + this.match(HiveSql.T_COMMA); + this.state = 2459; this.expr(0); - this.state = 2464; + this.state = 2461; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,302,this._ctx); if(la_===1) { - this.state = 2463; + this.state = 2460; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ASC || _la===HiveSqlParser.T_DESC)) { + if(!(_la===HiveSql.T_ASC || _la===HiveSql.T_DESC)) { this._errHandler.recoverInline(this); } else { @@ -26051,7 +26100,7 @@ HiveSqlParser.prototype.order_by_clause = function() { } } - this.state = 2470; + this.state = 2467; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,303,this._ctx); } @@ -26080,7 +26129,7 @@ function Select_optionsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_options; + this.ruleIndex = HiveSql.RULE_select_options; return this; } @@ -26121,27 +26170,27 @@ Select_optionsContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_optionsContext = Select_optionsContext; +HiveSql.Select_optionsContext = Select_optionsContext; -HiveSqlParser.prototype.select_options = function() { +HiveSql.prototype.select_options = function() { var localctx = new Select_optionsContext(this, this._ctx, this.state); - this.enterRule(localctx, 340, HiveSqlParser.RULE_select_options); + this.enterRule(localctx, 340, HiveSql.RULE_select_options); try { this.enterOuterAlt(localctx, 1); - this.state = 2472; + this.state = 2469; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 2471; + this.state = 2468; this.select_options_item(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2474; + this.state = 2471; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,304, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -26169,7 +26218,7 @@ function Select_options_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_select_options_item; + this.ruleIndex = HiveSql.RULE_select_options_item; return this; } @@ -26177,7 +26226,7 @@ Select_options_itemContext.prototype = Object.create(antlr4.ParserRuleContext.pr Select_options_itemContext.prototype.constructor = Select_options_itemContext; Select_options_itemContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Select_options_itemContext.prototype.expr = function() { @@ -26185,51 +26234,51 @@ Select_options_itemContext.prototype.expr = function() { }; Select_options_itemContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Select_options_itemContext.prototype.T_RR = function() { - return this.getToken(HiveSqlParser.T_RR, 0); + return this.getToken(HiveSql.T_RR, 0); }; Select_options_itemContext.prototype.T_RS = function() { - return this.getToken(HiveSqlParser.T_RS, 0); + return this.getToken(HiveSql.T_RS, 0); }; Select_options_itemContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Select_options_itemContext.prototype.T_UR = function() { - return this.getToken(HiveSqlParser.T_UR, 0); + return this.getToken(HiveSql.T_UR, 0); }; Select_options_itemContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Select_options_itemContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Select_options_itemContext.prototype.T_KEEP = function() { - return this.getToken(HiveSqlParser.T_KEEP, 0); + return this.getToken(HiveSql.T_KEEP, 0); }; Select_options_itemContext.prototype.T_LOCKS = function() { - return this.getToken(HiveSqlParser.T_LOCKS, 0); + return this.getToken(HiveSql.T_LOCKS, 0); }; Select_options_itemContext.prototype.T_EXCLUSIVE = function() { - return this.getToken(HiveSqlParser.T_EXCLUSIVE, 0); + return this.getToken(HiveSql.T_EXCLUSIVE, 0); }; Select_options_itemContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Select_options_itemContext.prototype.T_SHARE = function() { - return this.getToken(HiveSqlParser.T_SHARE, 0); + return this.getToken(HiveSql.T_SHARE, 0); }; Select_options_itemContext.prototype.enterRule = function(listener) { @@ -26255,58 +26304,58 @@ Select_options_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Select_options_itemContext = Select_options_itemContext; +HiveSql.Select_options_itemContext = Select_options_itemContext; -HiveSqlParser.prototype.select_options_item = function() { +HiveSql.prototype.select_options_item = function() { var localctx = new Select_options_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 342, HiveSqlParser.RULE_select_options_item); + this.enterRule(localctx, 342, HiveSql.RULE_select_options_item); var _la = 0; // Token type try { - this.state = 2487; + this.state = 2484; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_LIMIT: + case HiveSql.T_LIMIT: this.enterOuterAlt(localctx, 1); - this.state = 2476; - this.match(HiveSqlParser.T_LIMIT); - this.state = 2477; + this.state = 2473; + this.match(HiveSql.T_LIMIT); + this.state = 2474; this.expr(0); break; - case HiveSqlParser.T_WITH: + case HiveSql.T_WITH: this.enterOuterAlt(localctx, 2); - this.state = 2478; - this.match(HiveSqlParser.T_WITH); - this.state = 2479; + this.state = 2475; + this.match(HiveSql.T_WITH); + this.state = 2476; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_CS || ((((_la - 292)) & ~0x1f) == 0 && ((1 << (_la - 292)) & ((1 << (HiveSqlParser.T_RR - 292)) | (1 << (HiveSqlParser.T_RS - 292)) | (1 << (HiveSqlParser.T_UR - 292)))) !== 0))) { + if(!(_la===HiveSql.T_CS || _la===HiveSql.T_RR || _la===HiveSql.T_RS || _la===HiveSql.T_UR)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2485; + this.state = 2482; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,305,this._ctx); if(la_===1) { + this.state = 2477; + this.match(HiveSql.T_USE); + this.state = 2478; + this.match(HiveSql.T_AND); + this.state = 2479; + this.match(HiveSql.T_KEEP); this.state = 2480; - this.match(HiveSqlParser.T_USE); - this.state = 2481; - this.match(HiveSqlParser.T_AND); - this.state = 2482; - this.match(HiveSqlParser.T_KEEP); - this.state = 2483; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_UPDATE || _la===HiveSqlParser.T_EXCLUSIVE || _la===HiveSqlParser.T_SHARE)) { + if(!(_la===HiveSql.T_EXCLUSIVE || _la===HiveSql.T_SHARE || _la===HiveSql.T_UPDATE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2484; - this.match(HiveSqlParser.T_LOCKS); + this.state = 2481; + this.match(HiveSql.T_LOCKS); } break; @@ -26337,7 +26386,7 @@ function Update_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_stmt; + this.ruleIndex = HiveSql.RULE_update_stmt; return this; } @@ -26345,7 +26394,7 @@ Update_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Update_stmtContext.prototype.constructor = Update_stmtContext; Update_stmtContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Update_stmtContext.prototype.update_table = function() { @@ -26353,7 +26402,7 @@ Update_stmtContext.prototype.update_table = function() { }; Update_stmtContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Update_stmtContext.prototype.update_assignment = function() { @@ -26391,35 +26440,35 @@ Update_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_stmtContext = Update_stmtContext; +HiveSql.Update_stmtContext = Update_stmtContext; -HiveSqlParser.prototype.update_stmt = function() { +HiveSql.prototype.update_stmt = function() { var localctx = new Update_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 344, HiveSqlParser.RULE_update_stmt); + this.enterRule(localctx, 344, HiveSql.RULE_update_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2489; - this.match(HiveSqlParser.T_UPDATE); - this.state = 2490; + this.state = 2486; + this.match(HiveSql.T_UPDATE); + this.state = 2487; this.update_table(); - this.state = 2491; - this.match(HiveSqlParser.T_SET); - this.state = 2492; + this.state = 2488; + this.match(HiveSql.T_SET); + this.state = 2489; this.update_assignment(); - this.state = 2494; + this.state = 2491; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,307,this._ctx); if(la_===1) { - this.state = 2493; + this.state = 2490; this.where_clause(); } - this.state = 2497; + this.state = 2494; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,308,this._ctx); if(la_===1) { - this.state = 2496; + this.state = 2493; this.update_upsert(); } @@ -26447,7 +26496,7 @@ function Update_assignmentContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_assignment; + this.ruleIndex = HiveSql.RULE_update_assignment; return this; } @@ -26470,9 +26519,9 @@ Update_assignmentContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -26500,27 +26549,27 @@ Update_assignmentContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_assignmentContext = Update_assignmentContext; +HiveSql.Update_assignmentContext = Update_assignmentContext; -HiveSqlParser.prototype.update_assignment = function() { +HiveSql.prototype.update_assignment = function() { var localctx = new Update_assignmentContext(this, this._ctx, this.state); - this.enterRule(localctx, 346, HiveSqlParser.RULE_update_assignment); + this.enterRule(localctx, 346, HiveSql.RULE_update_assignment); try { this.enterOuterAlt(localctx, 1); - this.state = 2499; + this.state = 2496; this.assignment_stmt_item(); - this.state = 2504; + this.state = 2501; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,309,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2500; - this.match(HiveSqlParser.T_COMMA); - this.state = 2501; + this.state = 2497; + this.match(HiveSql.T_COMMA); + this.state = 2498; this.assignment_stmt_item(); } - this.state = 2506; + this.state = 2503; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,309,this._ctx); } @@ -26549,7 +26598,7 @@ function Update_tableContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_table; + this.ruleIndex = HiveSql.RULE_update_table; return this; } @@ -26561,7 +26610,7 @@ Update_tableContext.prototype.table_name = function() { }; Update_tableContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Update_tableContext.prototype.select_stmt = function() { @@ -26569,7 +26618,7 @@ Update_tableContext.prototype.select_stmt = function() { }; Update_tableContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Update_tableContext.prototype.ident = function() { @@ -26581,7 +26630,7 @@ Update_tableContext.prototype.from_clause = function() { }; Update_tableContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Update_tableContext.prototype.enterRule = function(listener) { @@ -26607,372 +26656,371 @@ Update_tableContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_tableContext = Update_tableContext; +HiveSql.Update_tableContext = Update_tableContext; -HiveSqlParser.prototype.update_table = function() { +HiveSql.prototype.update_table = function() { var localctx = new Update_tableContext(this, this._ctx, this.state); - this.enterRule(localctx, 348, HiveSqlParser.RULE_update_table); + this.enterRule(localctx, 348, HiveSql.RULE_update_table); try { this.enterOuterAlt(localctx, 1); - this.state = 2515; + this.state = 2512; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2507; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 2504; this.table_name(); - this.state = 2509; + this.state = 2506; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,310,this._ctx); if(la_===1) { - this.state = 2508; + this.state = 2505; this.from_clause(); } break; - case HiveSqlParser.T_OPEN_P: - this.state = 2511; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2512; + case HiveSql.T_OPEN_P: + this.state = 2508; + this.match(HiveSql.T_OPEN_P); + this.state = 2509; this.select_stmt(); - this.state = 2513; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2510; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2521; + this.state = 2518; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,313,this._ctx); if(la_===1) { - this.state = 2518; + this.state = 2515; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,312,this._ctx); if(la_===1) { - this.state = 2517; - this.match(HiveSqlParser.T_AS); + this.state = 2514; + this.match(HiveSql.T_AS); } - this.state = 2520; + this.state = 2517; this.ident(); } @@ -27000,7 +27048,7 @@ function Update_upsertContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_update_upsert; + this.ruleIndex = HiveSql.RULE_update_upsert; return this; } @@ -27008,7 +27056,7 @@ Update_upsertContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Update_upsertContext.prototype.constructor = Update_upsertContext; Update_upsertContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Update_upsertContext.prototype.insert_stmt = function() { @@ -27038,17 +27086,17 @@ Update_upsertContext.prototype.accept = function(visitor) { -HiveSqlParser.Update_upsertContext = Update_upsertContext; +HiveSql.Update_upsertContext = Update_upsertContext; -HiveSqlParser.prototype.update_upsert = function() { +HiveSql.prototype.update_upsert = function() { var localctx = new Update_upsertContext(this, this._ctx, this.state); - this.enterRule(localctx, 350, HiveSqlParser.RULE_update_upsert); + this.enterRule(localctx, 350, HiveSql.RULE_update_upsert); try { this.enterOuterAlt(localctx, 1); - this.state = 2523; - this.match(HiveSqlParser.T_ELSE); - this.state = 2524; + this.state = 2520; + this.match(HiveSql.T_ELSE); + this.state = 2521; this.insert_stmt(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -27074,7 +27122,7 @@ function Merge_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_stmt; + this.ruleIndex = HiveSql.RULE_merge_stmt; return this; } @@ -27082,11 +27130,11 @@ Merge_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Merge_stmtContext.prototype.constructor = Merge_stmtContext; Merge_stmtContext.prototype.T_MERGE = function() { - return this.getToken(HiveSqlParser.T_MERGE, 0); + return this.getToken(HiveSql.T_MERGE, 0); }; Merge_stmtContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Merge_stmtContext.prototype.merge_table = function(i) { @@ -27101,11 +27149,11 @@ Merge_stmtContext.prototype.merge_table = function(i) { }; Merge_stmtContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Merge_stmtContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Merge_stmtContext.prototype.bool_expr = function() { @@ -27146,41 +27194,41 @@ Merge_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_stmtContext = Merge_stmtContext; +HiveSql.Merge_stmtContext = Merge_stmtContext; -HiveSqlParser.prototype.merge_stmt = function() { +HiveSql.prototype.merge_stmt = function() { var localctx = new Merge_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 352, HiveSqlParser.RULE_merge_stmt); + this.enterRule(localctx, 352, HiveSql.RULE_merge_stmt); try { this.enterOuterAlt(localctx, 1); + this.state = 2523; + this.match(HiveSql.T_MERGE); + this.state = 2524; + this.match(HiveSql.T_INTO); + this.state = 2525; + this.merge_table(); this.state = 2526; - this.match(HiveSqlParser.T_MERGE); + this.match(HiveSql.T_USING); this.state = 2527; - this.match(HiveSqlParser.T_INTO); + this.merge_table(); this.state = 2528; - this.merge_table(); + this.match(HiveSql.T_ON); this.state = 2529; - this.match(HiveSqlParser.T_USING); - this.state = 2530; - this.merge_table(); - this.state = 2531; - this.match(HiveSqlParser.T_ON); - this.state = 2532; this.bool_expr(0); - this.state = 2534; + this.state = 2531; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 2533; + this.state = 2530; this.merge_condition(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2536; + this.state = 2533; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,314, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); @@ -27208,7 +27256,7 @@ function Merge_tableContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_table; + this.ruleIndex = HiveSql.RULE_merge_table; return this; } @@ -27224,7 +27272,7 @@ Merge_tableContext.prototype.ident = function() { }; Merge_tableContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Merge_tableContext.prototype.select_stmt = function() { @@ -27232,11 +27280,11 @@ Merge_tableContext.prototype.select_stmt = function() { }; Merge_tableContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Merge_tableContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Merge_tableContext.prototype.enterRule = function(listener) { @@ -27262,364 +27310,363 @@ Merge_tableContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_tableContext = Merge_tableContext; +HiveSql.Merge_tableContext = Merge_tableContext; -HiveSqlParser.prototype.merge_table = function() { +HiveSql.prototype.merge_table = function() { var localctx = new Merge_tableContext(this, this._ctx, this.state); - this.enterRule(localctx, 354, HiveSqlParser.RULE_merge_table); + this.enterRule(localctx, 354, HiveSql.RULE_merge_table); try { this.enterOuterAlt(localctx, 1); - this.state = 2543; + this.state = 2540; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2538; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: + this.state = 2535; this.table_name(); break; - case HiveSqlParser.T_OPEN_P: - this.state = 2539; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2540; + case HiveSql.T_OPEN_P: + this.state = 2536; + this.match(HiveSql.T_OPEN_P); + this.state = 2537; this.select_stmt(); - this.state = 2541; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2538; + this.match(HiveSql.T_CLOSE_P); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2549; + this.state = 2546; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,317,this._ctx); if(la_===1) { - this.state = 2546; + this.state = 2543; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,316,this._ctx); if(la_===1) { - this.state = 2545; - this.match(HiveSqlParser.T_AS); + this.state = 2542; + this.match(HiveSql.T_AS); } - this.state = 2548; + this.state = 2545; this.ident(); } @@ -27647,7 +27694,7 @@ function Merge_conditionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_condition; + this.ruleIndex = HiveSql.RULE_merge_condition; return this; } @@ -27655,15 +27702,15 @@ Merge_conditionContext.prototype = Object.create(antlr4.ParserRuleContext.protot Merge_conditionContext.prototype.constructor = Merge_conditionContext; Merge_conditionContext.prototype.T_WHEN = function() { - return this.getToken(HiveSqlParser.T_WHEN, 0); + return this.getToken(HiveSql.T_WHEN, 0); }; Merge_conditionContext.prototype.T_MATCHED = function() { - return this.getToken(HiveSqlParser.T_MATCHED, 0); + return this.getToken(HiveSql.T_MATCHED, 0); }; Merge_conditionContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Merge_conditionContext.prototype.merge_action = function() { @@ -27671,11 +27718,11 @@ Merge_conditionContext.prototype.merge_action = function() { }; Merge_conditionContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Merge_conditionContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Merge_conditionContext.prototype.bool_expr = function() { @@ -27683,11 +27730,11 @@ Merge_conditionContext.prototype.bool_expr = function() { }; Merge_conditionContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Merge_conditionContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Merge_conditionContext.prototype.enterRule = function(listener) { @@ -27713,52 +27760,52 @@ Merge_conditionContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_conditionContext = Merge_conditionContext; +HiveSql.Merge_conditionContext = Merge_conditionContext; -HiveSqlParser.prototype.merge_condition = function() { +HiveSql.prototype.merge_condition = function() { var localctx = new Merge_conditionContext(this, this._ctx, this.state); - this.enterRule(localctx, 356, HiveSqlParser.RULE_merge_condition); + this.enterRule(localctx, 356, HiveSql.RULE_merge_condition); var _la = 0; // Token type try { - this.state = 2564; + this.state = 2561; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_WHEN: + case HiveSql.T_WHEN: this.enterOuterAlt(localctx, 1); - this.state = 2551; - this.match(HiveSqlParser.T_WHEN); - this.state = 2553; + this.state = 2548; + this.match(HiveSql.T_WHEN); + this.state = 2550; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2552; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2549; + this.match(HiveSql.T_NOT); } + this.state = 2552; + this.match(HiveSql.T_MATCHED); this.state = 2555; - this.match(HiveSqlParser.T_MATCHED); - this.state = 2558; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_AND) { - this.state = 2556; - this.match(HiveSqlParser.T_AND); - this.state = 2557; + if(_la===HiveSql.T_AND) { + this.state = 2553; + this.match(HiveSql.T_AND); + this.state = 2554; this.bool_expr(0); } - this.state = 2560; - this.match(HiveSqlParser.T_THEN); - this.state = 2561; + this.state = 2557; + this.match(HiveSql.T_THEN); + this.state = 2558; this.merge_action(); break; - case HiveSqlParser.T_ELSE: + case HiveSql.T_ELSE: this.enterOuterAlt(localctx, 2); - this.state = 2562; - this.match(HiveSqlParser.T_ELSE); - this.state = 2563; - this.match(HiveSqlParser.T_IGNORE); + this.state = 2559; + this.match(HiveSql.T_ELSE); + this.state = 2560; + this.match(HiveSql.T_IGNORE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -27787,7 +27834,7 @@ function Merge_actionContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_merge_action; + this.ruleIndex = HiveSql.RULE_merge_action; return this; } @@ -27795,11 +27842,11 @@ Merge_actionContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Merge_actionContext.prototype.constructor = Merge_actionContext; Merge_actionContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Merge_actionContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Merge_actionContext.prototype.insert_stmt_row = function() { @@ -27811,11 +27858,11 @@ Merge_actionContext.prototype.insert_stmt_cols = function() { }; Merge_actionContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Merge_actionContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Merge_actionContext.prototype.assignment_stmt_item = function(i) { @@ -27834,9 +27881,9 @@ Merge_actionContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -27846,7 +27893,7 @@ Merge_actionContext.prototype.where_clause = function() { }; Merge_actionContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Merge_actionContext.prototype.enterRule = function(listener) { @@ -27872,70 +27919,70 @@ Merge_actionContext.prototype.accept = function(visitor) { -HiveSqlParser.Merge_actionContext = Merge_actionContext; +HiveSql.Merge_actionContext = Merge_actionContext; -HiveSqlParser.prototype.merge_action = function() { +HiveSql.prototype.merge_action = function() { var localctx = new Merge_actionContext(this, this._ctx, this.state); - this.enterRule(localctx, 358, HiveSqlParser.RULE_merge_action); + this.enterRule(localctx, 358, HiveSql.RULE_merge_action); var _la = 0; // Token type try { - this.state = 2586; + this.state = 2583; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_INSERT: + case HiveSql.T_INSERT: this.enterOuterAlt(localctx, 1); - this.state = 2566; - this.match(HiveSqlParser.T_INSERT); - this.state = 2568; + this.state = 2563; + this.match(HiveSql.T_INSERT); + this.state = 2565; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 2567; + if(_la===HiveSql.T_OPEN_P) { + this.state = 2564; this.insert_stmt_cols(); } - this.state = 2570; - this.match(HiveSqlParser.T_VALUES); - this.state = 2571; + this.state = 2567; + this.match(HiveSql.T_VALUES); + this.state = 2568; this.insert_stmt_row(); break; - case HiveSqlParser.T_UPDATE: + case HiveSql.T_UPDATE: this.enterOuterAlt(localctx, 2); - this.state = 2572; - this.match(HiveSqlParser.T_UPDATE); - this.state = 2573; - this.match(HiveSqlParser.T_SET); - this.state = 2574; + this.state = 2569; + this.match(HiveSql.T_UPDATE); + this.state = 2570; + this.match(HiveSql.T_SET); + this.state = 2571; this.assignment_stmt_item(); - this.state = 2579; + this.state = 2576; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,322,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2575; - this.match(HiveSqlParser.T_COMMA); - this.state = 2576; + this.state = 2572; + this.match(HiveSql.T_COMMA); + this.state = 2573; this.assignment_stmt_item(); } - this.state = 2581; + this.state = 2578; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,322,this._ctx); } - this.state = 2583; + this.state = 2580; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,323,this._ctx); if(la_===1) { - this.state = 2582; + this.state = 2579; this.where_clause(); } break; - case HiveSqlParser.T_DELETE: + case HiveSql.T_DELETE: this.enterOuterAlt(localctx, 3); - this.state = 2585; - this.match(HiveSqlParser.T_DELETE); + this.state = 2582; + this.match(HiveSql.T_DELETE); break; default: throw new antlr4.error.NoViableAltException(this); @@ -27964,7 +28011,7 @@ function Delete_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_delete_stmt; + this.ruleIndex = HiveSql.RULE_delete_stmt; return this; } @@ -27972,7 +28019,7 @@ Delete_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype) Delete_stmtContext.prototype.constructor = Delete_stmtContext; Delete_stmtContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Delete_stmtContext.prototype.table_name = function() { @@ -27980,7 +28027,7 @@ Delete_stmtContext.prototype.table_name = function() { }; Delete_stmtContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Delete_stmtContext.prototype.delete_alias = function() { @@ -27992,7 +28039,7 @@ Delete_stmtContext.prototype.where_clause = function() { }; Delete_stmtContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Delete_stmtContext.prototype.enterRule = function(listener) { @@ -28018,44 +28065,44 @@ Delete_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Delete_stmtContext = Delete_stmtContext; +HiveSql.Delete_stmtContext = Delete_stmtContext; -HiveSqlParser.prototype.delete_stmt = function() { +HiveSql.prototype.delete_stmt = function() { var localctx = new Delete_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 360, HiveSqlParser.RULE_delete_stmt); + this.enterRule(localctx, 360, HiveSql.RULE_delete_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 2588; - this.match(HiveSqlParser.T_DELETE); - this.state = 2590; + this.state = 2585; + this.match(HiveSql.T_DELETE); + this.state = 2587; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,325,this._ctx); if(la_===1) { - this.state = 2589; - this.match(HiveSqlParser.T_FROM); + this.state = 2586; + this.match(HiveSql.T_FROM); } - this.state = 2592; + this.state = 2589; this.table_name(); - this.state = 2594; + this.state = 2591; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,326,this._ctx); if(la_===1) { - this.state = 2593; + this.state = 2590; this.delete_alias(); } - this.state = 2598; + this.state = 2595; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,327,this._ctx); if(la_===1) { - this.state = 2596; + this.state = 2593; this.where_clause(); } else if(la_===2) { - this.state = 2597; - this.match(HiveSqlParser.T_ALL); + this.state = 2594; + this.match(HiveSql.T_ALL); } } catch (re) { @@ -28082,7 +28129,7 @@ function Delete_aliasContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_delete_alias; + this.ruleIndex = HiveSql.RULE_delete_alias; return this; } @@ -28094,7 +28141,7 @@ Delete_aliasContext.prototype.ident = function() { }; Delete_aliasContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Delete_aliasContext.prototype.enterRule = function(listener) { @@ -28120,27 +28167,27 @@ Delete_aliasContext.prototype.accept = function(visitor) { -HiveSqlParser.Delete_aliasContext = Delete_aliasContext; +HiveSql.Delete_aliasContext = Delete_aliasContext; -HiveSqlParser.prototype.delete_alias = function() { +HiveSql.prototype.delete_alias = function() { var localctx = new Delete_aliasContext(this, this._ctx, this.state); - this.enterRule(localctx, 362, HiveSqlParser.RULE_delete_alias); + this.enterRule(localctx, 362, HiveSql.RULE_delete_alias); try { this.enterOuterAlt(localctx, 1); - this.state = 2600; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("ALL"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"ALL\")"); + this.state = 2597; + if (!( this._input.LT(1).text.toUpperCase() !== "ALL")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"ALL\""); } - this.state = 2602; + this.state = 2599; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,328,this._ctx); if(la_===1) { - this.state = 2601; - this.match(HiveSqlParser.T_AS); + this.state = 2598; + this.match(HiveSql.T_AS); } - this.state = 2604; + this.state = 2601; this.ident(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -28166,7 +28213,7 @@ function Describe_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_describe_stmt; + this.ruleIndex = HiveSql.RULE_describe_stmt; return this; } @@ -28178,15 +28225,15 @@ Describe_stmtContext.prototype.table_name = function() { }; Describe_stmtContext.prototype.T_DESCRIBE = function() { - return this.getToken(HiveSqlParser.T_DESCRIBE, 0); + return this.getToken(HiveSql.T_DESCRIBE, 0); }; Describe_stmtContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Describe_stmtContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Describe_stmtContext.prototype.enterRule = function(listener) { @@ -28212,33 +28259,33 @@ Describe_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Describe_stmtContext = Describe_stmtContext; +HiveSql.Describe_stmtContext = Describe_stmtContext; -HiveSqlParser.prototype.describe_stmt = function() { +HiveSql.prototype.describe_stmt = function() { var localctx = new Describe_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 364, HiveSqlParser.RULE_describe_stmt); + this.enterRule(localctx, 364, HiveSql.RULE_describe_stmt); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2606; + this.state = 2603; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_DESC || _la===HiveSqlParser.T_DESCRIBE)) { + if(!(_la===HiveSql.T_DESC || _la===HiveSql.T_DESCRIBE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2608; + this.state = 2605; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,329,this._ctx); if(la_===1) { - this.state = 2607; - this.match(HiveSqlParser.T_TABLE); + this.state = 2604; + this.match(HiveSql.T_TABLE); } - this.state = 2610; + this.state = 2607; this.table_name(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -28264,7 +28311,7 @@ function Bool_exprContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr; + this.ruleIndex = HiveSql.RULE_bool_expr; return this; } @@ -28272,7 +28319,7 @@ Bool_exprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Bool_exprContext.prototype.constructor = Bool_exprContext; Bool_exprContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_exprContext.prototype.bool_expr = function(i) { @@ -28287,11 +28334,11 @@ Bool_exprContext.prototype.bool_expr = function(i) { }; Bool_exprContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_exprContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_exprContext.prototype.bool_expr_atom = function() { @@ -28324,7 +28371,7 @@ Bool_exprContext.prototype.accept = function(visitor) { -HiveSqlParser.prototype.bool_expr = function(_p) { +HiveSql.prototype.bool_expr = function(_p) { if(_p===undefined) { _p = 0; } @@ -28333,39 +28380,39 @@ HiveSqlParser.prototype.bool_expr = function(_p) { var localctx = new Bool_exprContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 366; - this.enterRecursionRule(localctx, 366, HiveSqlParser.RULE_bool_expr, _p); + this.enterRecursionRule(localctx, 366, HiveSql.RULE_bool_expr, _p); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2621; + this.state = 2618; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,331,this._ctx); switch(la_) { case 1: - this.state = 2614; + this.state = 2611; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2613; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2610; + this.match(HiveSql.T_NOT); } - this.state = 2616; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2617; + this.state = 2613; + this.match(HiveSql.T_OPEN_P); + this.state = 2614; this.bool_expr(0); - this.state = 2618; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2615; + this.match(HiveSql.T_CLOSE_P); break; case 2: - this.state = 2620; + this.state = 2617; this.bool_expr_atom(); break; } this._ctx.stop = this._input.LT(-1); - this.state = 2629; + this.state = 2626; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,332,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { @@ -28375,17 +28422,17 @@ HiveSqlParser.prototype.bool_expr = function(_p) { } _prevctx = localctx; localctx = new Bool_exprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_bool_expr); - this.state = 2623; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_bool_expr); + this.state = 2620; if (!( this.precpred(this._ctx, 2))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 2)"); } - this.state = 2624; + this.state = 2621; this.bool_expr_logical_operator(); - this.state = 2625; + this.state = 2622; this.bool_expr(3); } - this.state = 2631; + this.state = 2628; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,332,this._ctx); } @@ -28414,7 +28461,7 @@ function Bool_expr_atomContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_atom; + this.ruleIndex = HiveSql.RULE_bool_expr_atom; return this; } @@ -28456,32 +28503,32 @@ Bool_expr_atomContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_atomContext = Bool_expr_atomContext; +HiveSql.Bool_expr_atomContext = Bool_expr_atomContext; -HiveSqlParser.prototype.bool_expr_atom = function() { +HiveSql.prototype.bool_expr_atom = function() { var localctx = new Bool_expr_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 368, HiveSqlParser.RULE_bool_expr_atom); + this.enterRule(localctx, 368, HiveSql.RULE_bool_expr_atom); try { - this.state = 2635; + this.state = 2632; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,333,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2632; + this.state = 2629; this.bool_expr_unary(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2633; + this.state = 2630; this.bool_expr_binary(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2634; + this.state = 2631; this.expr(0); break; @@ -28510,7 +28557,7 @@ function Bool_expr_unaryContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_unary; + this.ruleIndex = HiveSql.RULE_bool_expr_unary; return this; } @@ -28529,31 +28576,31 @@ Bool_expr_unaryContext.prototype.expr = function(i) { }; Bool_expr_unaryContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Bool_expr_unaryContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Bool_expr_unaryContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_unaryContext.prototype.T_BETWEEN = function() { - return this.getToken(HiveSqlParser.T_BETWEEN, 0); + return this.getToken(HiveSql.T_BETWEEN, 0); }; Bool_expr_unaryContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Bool_expr_unaryContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Bool_expr_unaryContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_expr_unaryContext.prototype.select_stmt = function() { @@ -28561,7 +28608,7 @@ Bool_expr_unaryContext.prototype.select_stmt = function() { }; Bool_expr_unaryContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_expr_unaryContext.prototype.bool_expr_single_in = function() { @@ -28595,79 +28642,79 @@ Bool_expr_unaryContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_unaryContext = Bool_expr_unaryContext; +HiveSql.Bool_expr_unaryContext = Bool_expr_unaryContext; -HiveSqlParser.prototype.bool_expr_unary = function() { +HiveSql.prototype.bool_expr_unary = function() { var localctx = new Bool_expr_unaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 370, HiveSqlParser.RULE_bool_expr_unary); + this.enterRule(localctx, 370, HiveSql.RULE_bool_expr_unary); var _la = 0; // Token type try { - this.state = 2660; + this.state = 2657; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,336,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2637; + this.state = 2634; this.expr(0); - this.state = 2638; - this.match(HiveSqlParser.T_IS); - this.state = 2640; + this.state = 2635; + this.match(HiveSql.T_IS); + this.state = 2637; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2639; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2636; + this.match(HiveSql.T_NOT); } - this.state = 2642; - this.match(HiveSqlParser.T_NULL); + this.state = 2639; + this.match(HiveSql.T_NULL); break; case 2: this.enterOuterAlt(localctx, 2); + this.state = 2641; + this.expr(0); + this.state = 2642; + this.match(HiveSql.T_BETWEEN); + this.state = 2643; + this.expr(0); this.state = 2644; - this.expr(0); + this.match(HiveSql.T_AND); this.state = 2645; - this.match(HiveSqlParser.T_BETWEEN); - this.state = 2646; - this.expr(0); - this.state = 2647; - this.match(HiveSqlParser.T_AND); - this.state = 2648; this.expr(0); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2651; + this.state = 2648; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2650; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2647; + this.match(HiveSql.T_NOT); } - this.state = 2653; - this.match(HiveSqlParser.T_EXISTS); - this.state = 2654; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2655; + this.state = 2650; + this.match(HiveSql.T_EXISTS); + this.state = 2651; + this.match(HiveSql.T_OPEN_P); + this.state = 2652; this.select_stmt(); - this.state = 2656; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2653; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2658; + this.state = 2655; this.bool_expr_single_in(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2659; + this.state = 2656; this.bool_expr_multi_in(); break; @@ -28696,7 +28743,7 @@ function Bool_expr_single_inContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_single_in; + this.ruleIndex = HiveSql.RULE_bool_expr_single_in; return this; } @@ -28715,15 +28762,15 @@ Bool_expr_single_inContext.prototype.expr = function(i) { }; Bool_expr_single_inContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Bool_expr_single_inContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Bool_expr_single_inContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Bool_expr_single_inContext.prototype.select_stmt = function() { @@ -28731,7 +28778,7 @@ Bool_expr_single_inContext.prototype.select_stmt = function() { }; Bool_expr_single_inContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_single_inContext.prototype.T_COMMA = function(i) { @@ -28739,9 +28786,9 @@ Bool_expr_single_inContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -28769,58 +28816,58 @@ Bool_expr_single_inContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_single_inContext = Bool_expr_single_inContext; +HiveSql.Bool_expr_single_inContext = Bool_expr_single_inContext; -HiveSqlParser.prototype.bool_expr_single_in = function() { +HiveSql.prototype.bool_expr_single_in = function() { var localctx = new Bool_expr_single_inContext(this, this._ctx, this.state); - this.enterRule(localctx, 372, HiveSqlParser.RULE_bool_expr_single_in); + this.enterRule(localctx, 372, HiveSql.RULE_bool_expr_single_in); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2662; + this.state = 2659; this.expr(0); - this.state = 2664; + this.state = 2661; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2663; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2660; + this.match(HiveSql.T_NOT); } - this.state = 2666; - this.match(HiveSqlParser.T_IN); - this.state = 2667; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2677; + this.state = 2663; + this.match(HiveSql.T_IN); + this.state = 2664; + this.match(HiveSql.T_OPEN_P); + this.state = 2674; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,339,this._ctx); switch(la_) { case 1: - this.state = 2668; + this.state = 2665; this.expr(0); - this.state = 2673; + this.state = 2670; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2669; - this.match(HiveSqlParser.T_COMMA); - this.state = 2670; + while(_la===HiveSql.T_COMMA) { + this.state = 2666; + this.match(HiveSql.T_COMMA); + this.state = 2667; this.expr(0); - this.state = 2675; + this.state = 2672; this._errHandler.sync(this); _la = this._input.LA(1); } break; case 2: - this.state = 2676; + this.state = 2673; this.select_stmt(); break; } - this.state = 2679; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2676; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -28845,7 +28892,7 @@ function Bool_expr_multi_inContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_multi_in; + this.ruleIndex = HiveSql.RULE_bool_expr_multi_in; return this; } @@ -28857,9 +28904,9 @@ Bool_expr_multi_inContext.prototype.T_OPEN_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_OPEN_P); + return this.getTokens(HiveSql.T_OPEN_P); } else { - return this.getToken(HiveSqlParser.T_OPEN_P, i); + return this.getToken(HiveSql.T_OPEN_P, i); } }; @@ -28880,15 +28927,15 @@ Bool_expr_multi_inContext.prototype.T_CLOSE_P = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CLOSE_P); + return this.getTokens(HiveSql.T_CLOSE_P); } else { - return this.getToken(HiveSqlParser.T_CLOSE_P, i); + return this.getToken(HiveSql.T_CLOSE_P, i); } }; Bool_expr_multi_inContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Bool_expr_multi_inContext.prototype.select_stmt = function() { @@ -28900,15 +28947,15 @@ Bool_expr_multi_inContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Bool_expr_multi_inContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_multi_inContext.prototype.enterRule = function(listener) { @@ -28934,49 +28981,49 @@ Bool_expr_multi_inContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_multi_inContext = Bool_expr_multi_inContext; +HiveSql.Bool_expr_multi_inContext = Bool_expr_multi_inContext; -HiveSqlParser.prototype.bool_expr_multi_in = function() { +HiveSql.prototype.bool_expr_multi_in = function() { var localctx = new Bool_expr_multi_inContext(this, this._ctx, this.state); - this.enterRule(localctx, 374, HiveSqlParser.RULE_bool_expr_multi_in); + this.enterRule(localctx, 374, HiveSql.RULE_bool_expr_multi_in); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2681; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2682; + this.state = 2678; + this.match(HiveSql.T_OPEN_P); + this.state = 2679; this.expr(0); - this.state = 2687; + this.state = 2684; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 2683; - this.match(HiveSqlParser.T_COMMA); - this.state = 2684; + while(_la===HiveSql.T_COMMA) { + this.state = 2680; + this.match(HiveSql.T_COMMA); + this.state = 2681; this.expr(0); - this.state = 2689; + this.state = 2686; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 2690; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2692; + this.state = 2687; + this.match(HiveSql.T_CLOSE_P); + this.state = 2689; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2691; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2688; + this.match(HiveSql.T_NOT); } - this.state = 2694; - this.match(HiveSqlParser.T_IN); - this.state = 2695; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2696; + this.state = 2691; + this.match(HiveSql.T_IN); + this.state = 2692; + this.match(HiveSql.T_OPEN_P); + this.state = 2693; this.select_stmt(); - this.state = 2697; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2694; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -29001,7 +29048,7 @@ function Bool_expr_binaryContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_binary; + this.ruleIndex = HiveSql.RULE_bool_expr_binary; return this; } @@ -29046,19 +29093,19 @@ Bool_expr_binaryContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_binaryContext = Bool_expr_binaryContext; +HiveSql.Bool_expr_binaryContext = Bool_expr_binaryContext; -HiveSqlParser.prototype.bool_expr_binary = function() { +HiveSql.prototype.bool_expr_binary = function() { var localctx = new Bool_expr_binaryContext(this, this._ctx, this.state); - this.enterRule(localctx, 376, HiveSqlParser.RULE_bool_expr_binary); + this.enterRule(localctx, 376, HiveSql.RULE_bool_expr_binary); try { this.enterOuterAlt(localctx, 1); - this.state = 2699; + this.state = 2696; this.expr(0); - this.state = 2700; + this.state = 2697; this.bool_expr_binary_operator(); - this.state = 2701; + this.state = 2698; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -29084,7 +29131,7 @@ function Bool_expr_logical_operatorContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_logical_operator; + this.ruleIndex = HiveSql.RULE_bool_expr_logical_operator; return this; } @@ -29092,11 +29139,11 @@ Bool_expr_logical_operatorContext.prototype = Object.create(antlr4.ParserRuleCon Bool_expr_logical_operatorContext.prototype.constructor = Bool_expr_logical_operatorContext; Bool_expr_logical_operatorContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Bool_expr_logical_operatorContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Bool_expr_logical_operatorContext.prototype.enterRule = function(listener) { @@ -29122,18 +29169,18 @@ Bool_expr_logical_operatorContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_logical_operatorContext = Bool_expr_logical_operatorContext; +HiveSql.Bool_expr_logical_operatorContext = Bool_expr_logical_operatorContext; -HiveSqlParser.prototype.bool_expr_logical_operator = function() { +HiveSql.prototype.bool_expr_logical_operator = function() { var localctx = new Bool_expr_logical_operatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 378, HiveSqlParser.RULE_bool_expr_logical_operator); + this.enterRule(localctx, 378, HiveSql.RULE_bool_expr_logical_operator); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2703; + this.state = 2700; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_OR || _la===HiveSqlParser.T_AND)) { + if(!(_la===HiveSql.T_AND || _la===HiveSql.T_OR)) { this._errHandler.recoverInline(this); } else { @@ -29164,7 +29211,7 @@ function Bool_expr_binary_operatorContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_expr_binary_operator; + this.ruleIndex = HiveSql.RULE_bool_expr_binary_operator; return this; } @@ -29172,51 +29219,51 @@ Bool_expr_binary_operatorContext.prototype = Object.create(antlr4.ParserRuleCont Bool_expr_binary_operatorContext.prototype.constructor = Bool_expr_binary_operatorContext; Bool_expr_binary_operatorContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_EQUAL2 = function() { - return this.getToken(HiveSqlParser.T_EQUAL2, 0); + return this.getToken(HiveSql.T_EQUAL2, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOTEQUAL = function() { - return this.getToken(HiveSqlParser.T_NOTEQUAL, 0); + return this.getToken(HiveSql.T_NOTEQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOTEQUAL2 = function() { - return this.getToken(HiveSqlParser.T_NOTEQUAL2, 0); + return this.getToken(HiveSql.T_NOTEQUAL2, 0); }; Bool_expr_binary_operatorContext.prototype.T_LESS = function() { - return this.getToken(HiveSqlParser.T_LESS, 0); + return this.getToken(HiveSql.T_LESS, 0); }; Bool_expr_binary_operatorContext.prototype.T_LESSEQUAL = function() { - return this.getToken(HiveSqlParser.T_LESSEQUAL, 0); + return this.getToken(HiveSql.T_LESSEQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_GREATER = function() { - return this.getToken(HiveSqlParser.T_GREATER, 0); + return this.getToken(HiveSql.T_GREATER, 0); }; Bool_expr_binary_operatorContext.prototype.T_GREATEREQUAL = function() { - return this.getToken(HiveSqlParser.T_GREATEREQUAL, 0); + return this.getToken(HiveSql.T_GREATEREQUAL, 0); }; Bool_expr_binary_operatorContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); + return this.getToken(HiveSql.T_LIKE, 0); }; Bool_expr_binary_operatorContext.prototype.T_RLIKE = function() { - return this.getToken(HiveSqlParser.T_RLIKE, 0); + return this.getToken(HiveSql.T_RLIKE, 0); }; Bool_expr_binary_operatorContext.prototype.T_REGEXP = function() { - return this.getToken(HiveSqlParser.T_REGEXP, 0); + return this.getToken(HiveSql.T_REGEXP, 0); }; Bool_expr_binary_operatorContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Bool_expr_binary_operatorContext.prototype.enterRule = function(listener) { @@ -29242,73 +29289,73 @@ Bool_expr_binary_operatorContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_expr_binary_operatorContext = Bool_expr_binary_operatorContext; +HiveSql.Bool_expr_binary_operatorContext = Bool_expr_binary_operatorContext; -HiveSqlParser.prototype.bool_expr_binary_operator = function() { +HiveSql.prototype.bool_expr_binary_operator = function() { var localctx = new Bool_expr_binary_operatorContext(this, this._ctx, this.state); - this.enterRule(localctx, 380, HiveSqlParser.RULE_bool_expr_binary_operator); + this.enterRule(localctx, 380, HiveSql.RULE_bool_expr_binary_operator); var _la = 0; // Token type try { - this.state = 2717; + this.state = 2714; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_EQUAL: + case HiveSql.T_EQUAL: this.enterOuterAlt(localctx, 1); - this.state = 2705; - this.match(HiveSqlParser.T_EQUAL); + this.state = 2702; + this.match(HiveSql.T_EQUAL); break; - case HiveSqlParser.T_EQUAL2: + case HiveSql.T_EQUAL2: this.enterOuterAlt(localctx, 2); - this.state = 2706; - this.match(HiveSqlParser.T_EQUAL2); + this.state = 2703; + this.match(HiveSql.T_EQUAL2); break; - case HiveSqlParser.T_NOTEQUAL: + case HiveSql.T_NOTEQUAL: this.enterOuterAlt(localctx, 3); - this.state = 2707; - this.match(HiveSqlParser.T_NOTEQUAL); + this.state = 2704; + this.match(HiveSql.T_NOTEQUAL); break; - case HiveSqlParser.T_NOTEQUAL2: + case HiveSql.T_NOTEQUAL2: this.enterOuterAlt(localctx, 4); - this.state = 2708; - this.match(HiveSqlParser.T_NOTEQUAL2); + this.state = 2705; + this.match(HiveSql.T_NOTEQUAL2); break; - case HiveSqlParser.T_LESS: + case HiveSql.T_LESS: this.enterOuterAlt(localctx, 5); - this.state = 2709; - this.match(HiveSqlParser.T_LESS); + this.state = 2706; + this.match(HiveSql.T_LESS); break; - case HiveSqlParser.T_LESSEQUAL: + case HiveSql.T_LESSEQUAL: this.enterOuterAlt(localctx, 6); - this.state = 2710; - this.match(HiveSqlParser.T_LESSEQUAL); + this.state = 2707; + this.match(HiveSql.T_LESSEQUAL); break; - case HiveSqlParser.T_GREATER: + case HiveSql.T_GREATER: this.enterOuterAlt(localctx, 7); - this.state = 2711; - this.match(HiveSqlParser.T_GREATER); + this.state = 2708; + this.match(HiveSql.T_GREATER); break; - case HiveSqlParser.T_GREATEREQUAL: + case HiveSql.T_GREATEREQUAL: this.enterOuterAlt(localctx, 8); - this.state = 2712; - this.match(HiveSqlParser.T_GREATEREQUAL); + this.state = 2709; + this.match(HiveSql.T_GREATEREQUAL); break; - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: + case HiveSql.T_LIKE: + case HiveSql.T_NOT: + case HiveSql.T_REGEXP: + case HiveSql.T_RLIKE: this.enterOuterAlt(localctx, 9); - this.state = 2714; + this.state = 2711; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_NOT) { - this.state = 2713; - this.match(HiveSqlParser.T_NOT); + if(_la===HiveSql.T_NOT) { + this.state = 2710; + this.match(HiveSql.T_NOT); } - this.state = 2716; + this.state = 2713; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_LIKE || _la===HiveSqlParser.T_RLIKE || _la===HiveSqlParser.T_REGEXP)) { + if(!(_la===HiveSql.T_LIKE || _la===HiveSql.T_REGEXP || _la===HiveSql.T_RLIKE)) { this._errHandler.recoverInline(this); } else { @@ -29343,7 +29390,7 @@ function ExprContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr; + this.ruleIndex = HiveSql.RULE_expr; return this; } @@ -29351,7 +29398,7 @@ ExprContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); ExprContext.prototype.constructor = ExprContext; ExprContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; ExprContext.prototype.select_stmt = function() { @@ -29359,7 +29406,7 @@ ExprContext.prototype.select_stmt = function() { }; ExprContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; ExprContext.prototype.expr = function(i) { @@ -29406,19 +29453,19 @@ ExprContext.prototype.expr_atom = function() { }; ExprContext.prototype.T_MUL = function() { - return this.getToken(HiveSqlParser.T_MUL, 0); + return this.getToken(HiveSql.T_MUL, 0); }; ExprContext.prototype.T_DIV = function() { - return this.getToken(HiveSqlParser.T_DIV, 0); + return this.getToken(HiveSql.T_DIV, 0); }; ExprContext.prototype.T_ADD = function() { - return this.getToken(HiveSqlParser.T_ADD, 0); + return this.getToken(HiveSql.T_ADD, 0); }; ExprContext.prototype.T_SUB = function() { - return this.getToken(HiveSqlParser.T_SUB, 0); + return this.getToken(HiveSql.T_SUB, 0); }; ExprContext.prototype.interval_item = function() { @@ -29447,7 +29494,7 @@ ExprContext.prototype.accept = function(visitor) { -HiveSqlParser.prototype.expr = function(_p) { +HiveSql.prototype.expr = function(_p) { if(_p===undefined) { _p = 0; } @@ -29456,74 +29503,74 @@ HiveSqlParser.prototype.expr = function(_p) { var localctx = new ExprContext(this, this._ctx, _parentState); var _prevctx = localctx; var _startState = 382; - this.enterRecursionRule(localctx, 382, HiveSqlParser.RULE_expr, _p); + this.enterRecursionRule(localctx, 382, HiveSql.RULE_expr, _p); try { this.enterOuterAlt(localctx, 1); - this.state = 2736; + this.state = 2733; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,344,this._ctx); switch(la_) { case 1: - this.state = 2720; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2721; + this.state = 2717; + this.match(HiveSql.T_OPEN_P); + this.state = 2718; this.select_stmt(); - this.state = 2722; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2719; + this.match(HiveSql.T_CLOSE_P); break; case 2: - this.state = 2724; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2725; + this.state = 2721; + this.match(HiveSql.T_OPEN_P); + this.state = 2722; this.expr(0); - this.state = 2726; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2723; + this.match(HiveSql.T_CLOSE_P); break; case 3: - this.state = 2728; + this.state = 2725; this.expr_interval(); break; case 4: - this.state = 2729; + this.state = 2726; this.expr_concat(); break; case 5: - this.state = 2730; + this.state = 2727; this.expr_case(); break; case 6: - this.state = 2731; + this.state = 2728; this.expr_cursor_attribute(); break; case 7: - this.state = 2732; + this.state = 2729; this.expr_agg_window_func(); break; case 8: - this.state = 2733; + this.state = 2730; this.expr_spec_func(); break; case 9: - this.state = 2734; + this.state = 2731; this.expr_func(); break; case 10: - this.state = 2735; + this.state = 2732; this.expr_atom(); break; } this._ctx.stop = this._input.LT(-1); - this.state = 2754; + this.state = 2751; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,346,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { @@ -29532,76 +29579,76 @@ HiveSqlParser.prototype.expr = function(_p) { this.triggerExitRuleEvent(); } _prevctx = localctx; - this.state = 2752; + this.state = 2749; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,345,this._ctx); switch(la_) { case 1: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2738; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2735; if (!( this.precpred(this._ctx, 14))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 14)"); } - this.state = 2739; - this.match(HiveSqlParser.T_MUL); - this.state = 2740; + this.state = 2736; + this.match(HiveSql.T_MUL); + this.state = 2737; this.expr(15); break; case 2: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2741; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2738; if (!( this.precpred(this._ctx, 13))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 13)"); } - this.state = 2742; - this.match(HiveSqlParser.T_DIV); - this.state = 2743; + this.state = 2739; + this.match(HiveSql.T_DIV); + this.state = 2740; this.expr(14); break; case 3: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2744; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2741; if (!( this.precpred(this._ctx, 12))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 12)"); } - this.state = 2745; - this.match(HiveSqlParser.T_ADD); - this.state = 2746; + this.state = 2742; + this.match(HiveSql.T_ADD); + this.state = 2743; this.expr(13); break; case 4: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2747; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2744; if (!( this.precpred(this._ctx, 11))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 11)"); } - this.state = 2748; - this.match(HiveSqlParser.T_SUB); - this.state = 2749; + this.state = 2745; + this.match(HiveSql.T_SUB); + this.state = 2746; this.expr(12); break; case 5: localctx = new ExprContext(this, _parentctx, _parentState); - this.pushNewRecursionContext(localctx, _startState, HiveSqlParser.RULE_expr); - this.state = 2750; + this.pushNewRecursionContext(localctx, _startState, HiveSql.RULE_expr); + this.state = 2747; if (!( this.precpred(this._ctx, 15))) { throw new antlr4.error.FailedPredicateException(this, "this.precpred(this._ctx, 15)"); } - this.state = 2751; + this.state = 2748; this.interval_item(); break; } } - this.state = 2756; + this.state = 2753; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,346,this._ctx); } @@ -29630,7 +29677,7 @@ function Expr_atomContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_atom; + this.ruleIndex = HiveSql.RULE_expr_atom; return this; } @@ -29692,62 +29739,62 @@ Expr_atomContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_atomContext = Expr_atomContext; +HiveSql.Expr_atomContext = Expr_atomContext; -HiveSqlParser.prototype.expr_atom = function() { +HiveSql.prototype.expr_atom = function() { var localctx = new Expr_atomContext(this, this._ctx, this.state); - this.enterRule(localctx, 384, HiveSqlParser.RULE_expr_atom); + this.enterRule(localctx, 384, HiveSql.RULE_expr_atom); try { - this.state = 2765; + this.state = 2762; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,347,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2757; + this.state = 2754; this.date_literal(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2758; + this.state = 2755; this.timestamp_literal(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2759; + this.state = 2756; this.bool_literal(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2760; + this.state = 2757; this.ident(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2761; + this.state = 2758; this.string(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 2762; + this.state = 2759; this.dec_number(); break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 2763; + this.state = 2760; this.int_number(); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 2764; + this.state = 2761; this.null_const(); break; @@ -29776,7 +29823,7 @@ function Expr_intervalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_interval; + this.ruleIndex = HiveSql.RULE_expr_interval; return this; } @@ -29784,7 +29831,7 @@ Expr_intervalContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Expr_intervalContext.prototype.constructor = Expr_intervalContext; Expr_intervalContext.prototype.T_INTERVAL = function() { - return this.getToken(HiveSqlParser.T_INTERVAL, 0); + return this.getToken(HiveSql.T_INTERVAL, 0); }; Expr_intervalContext.prototype.expr = function() { @@ -29818,19 +29865,19 @@ Expr_intervalContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_intervalContext = Expr_intervalContext; +HiveSql.Expr_intervalContext = Expr_intervalContext; -HiveSqlParser.prototype.expr_interval = function() { +HiveSql.prototype.expr_interval = function() { var localctx = new Expr_intervalContext(this, this._ctx, this.state); - this.enterRule(localctx, 386, HiveSqlParser.RULE_expr_interval); + this.enterRule(localctx, 386, HiveSql.RULE_expr_interval); try { this.enterOuterAlt(localctx, 1); - this.state = 2767; - this.match(HiveSqlParser.T_INTERVAL); - this.state = 2768; + this.state = 2764; + this.match(HiveSql.T_INTERVAL); + this.state = 2765; this.expr(0); - this.state = 2769; + this.state = 2766; this.interval_item(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -29856,7 +29903,7 @@ function Interval_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_interval_item; + this.ruleIndex = HiveSql.RULE_interval_item; return this; } @@ -29864,27 +29911,27 @@ Interval_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototyp Interval_itemContext.prototype.constructor = Interval_itemContext; Interval_itemContext.prototype.T_DAY = function() { - return this.getToken(HiveSqlParser.T_DAY, 0); + return this.getToken(HiveSql.T_DAY, 0); }; Interval_itemContext.prototype.T_DAYS = function() { - return this.getToken(HiveSqlParser.T_DAYS, 0); + return this.getToken(HiveSql.T_DAYS, 0); }; Interval_itemContext.prototype.T_MICROSECOND = function() { - return this.getToken(HiveSqlParser.T_MICROSECOND, 0); + return this.getToken(HiveSql.T_MICROSECOND, 0); }; Interval_itemContext.prototype.T_MICROSECONDS = function() { - return this.getToken(HiveSqlParser.T_MICROSECONDS, 0); + return this.getToken(HiveSql.T_MICROSECONDS, 0); }; Interval_itemContext.prototype.T_SECOND = function() { - return this.getToken(HiveSqlParser.T_SECOND, 0); + return this.getToken(HiveSql.T_SECOND, 0); }; Interval_itemContext.prototype.T_SECONDS = function() { - return this.getToken(HiveSqlParser.T_SECONDS, 0); + return this.getToken(HiveSql.T_SECONDS, 0); }; Interval_itemContext.prototype.enterRule = function(listener) { @@ -29910,18 +29957,18 @@ Interval_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Interval_itemContext = Interval_itemContext; +HiveSql.Interval_itemContext = Interval_itemContext; -HiveSqlParser.prototype.interval_item = function() { +HiveSql.prototype.interval_item = function() { var localctx = new Interval_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 388, HiveSqlParser.RULE_interval_item); + this.enterRule(localctx, 388, HiveSql.RULE_interval_item); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2771; + this.state = 2768; _la = this._input.LA(1); - if(!(((((_la - 316)) & ~0x1f) == 0 && ((1 << (_la - 316)) & ((1 << (HiveSqlParser.T_DAY - 316)) | (1 << (HiveSqlParser.T_DAYS - 316)) | (1 << (HiveSqlParser.T_MICROSECOND - 316)) | (1 << (HiveSqlParser.T_MICROSECONDS - 316)) | (1 << (HiveSqlParser.T_SECOND - 316)) | (1 << (HiveSqlParser.T_SECONDS - 316)))) !== 0))) { + if(!(_la===HiveSql.T_DAY || _la===HiveSql.T_DAYS || _la===HiveSql.T_MICROSECOND || _la===HiveSql.T_MICROSECONDS || _la===HiveSql.T_SECOND || _la===HiveSql.T_SECONDS)) { this._errHandler.recoverInline(this); } else { @@ -29952,7 +29999,7 @@ function Expr_concatContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_concat; + this.ruleIndex = HiveSql.RULE_expr_concat; return this; } @@ -29975,9 +30022,9 @@ Expr_concatContext.prototype.T_PIPE = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_PIPE); + return this.getTokens(HiveSql.T_PIPE); } else { - return this.getToken(HiveSqlParser.T_PIPE, i); + return this.getToken(HiveSql.T_PIPE, i); } }; @@ -29987,9 +30034,9 @@ Expr_concatContext.prototype.T_CONCAT = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_CONCAT); + return this.getTokens(HiveSql.T_CONCAT); } else { - return this.getToken(HiveSqlParser.T_CONCAT, i); + return this.getToken(HiveSql.T_CONCAT, i); } }; @@ -30017,46 +30064,46 @@ Expr_concatContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_concatContext = Expr_concatContext; +HiveSql.Expr_concatContext = Expr_concatContext; -HiveSqlParser.prototype.expr_concat = function() { +HiveSql.prototype.expr_concat = function() { var localctx = new Expr_concatContext(this, this._ctx, this.state); - this.enterRule(localctx, 390, HiveSqlParser.RULE_expr_concat); + this.enterRule(localctx, 390, HiveSql.RULE_expr_concat); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2773; + this.state = 2770; this.expr_concat_item(); - this.state = 2774; + this.state = 2771; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PIPE || _la===HiveSqlParser.T_CONCAT)) { + if(!(_la===HiveSql.T_CONCAT || _la===HiveSql.T_PIPE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2775; + this.state = 2772; this.expr_concat_item(); - this.state = 2780; + this.state = 2777; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,348,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 2776; + this.state = 2773; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_PIPE || _la===HiveSqlParser.T_CONCAT)) { + if(!(_la===HiveSql.T_CONCAT || _la===HiveSql.T_PIPE)) { this._errHandler.recoverInline(this); } else { this._errHandler.reportMatch(this); this.consume(); } - this.state = 2777; + this.state = 2774; this.expr_concat_item(); } - this.state = 2782; + this.state = 2779; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,348,this._ctx); } @@ -30085,7 +30132,7 @@ function Expr_concat_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_concat_item; + this.ruleIndex = HiveSql.RULE_expr_concat_item; return this; } @@ -30093,7 +30140,7 @@ Expr_concat_itemContext.prototype = Object.create(antlr4.ParserRuleContext.proto Expr_concat_itemContext.prototype.constructor = Expr_concat_itemContext; Expr_concat_itemContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_concat_itemContext.prototype.expr = function() { @@ -30101,7 +30148,7 @@ Expr_concat_itemContext.prototype.expr = function() { }; Expr_concat_itemContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_concat_itemContext.prototype.expr_case = function() { @@ -30147,54 +30194,54 @@ Expr_concat_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_concat_itemContext = Expr_concat_itemContext; +HiveSql.Expr_concat_itemContext = Expr_concat_itemContext; -HiveSqlParser.prototype.expr_concat_item = function() { +HiveSql.prototype.expr_concat_item = function() { var localctx = new Expr_concat_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 392, HiveSqlParser.RULE_expr_concat_item); + this.enterRule(localctx, 392, HiveSql.RULE_expr_concat_item); try { - this.state = 2792; + this.state = 2789; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,349,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2783; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2784; + this.state = 2780; + this.match(HiveSql.T_OPEN_P); + this.state = 2781; this.expr(0); - this.state = 2785; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2782; + this.match(HiveSql.T_CLOSE_P); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2787; + this.state = 2784; this.expr_case(); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 2788; + this.state = 2785; this.expr_agg_window_func(); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 2789; + this.state = 2786; this.expr_spec_func(); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 2790; + this.state = 2787; this.expr_func(); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 2791; + this.state = 2788; this.expr_atom(); break; @@ -30223,7 +30270,7 @@ function Expr_caseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case; + this.ruleIndex = HiveSql.RULE_expr_case; return this; } @@ -30261,26 +30308,26 @@ Expr_caseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_caseContext = Expr_caseContext; +HiveSql.Expr_caseContext = Expr_caseContext; -HiveSqlParser.prototype.expr_case = function() { +HiveSql.prototype.expr_case = function() { var localctx = new Expr_caseContext(this, this._ctx, this.state); - this.enterRule(localctx, 394, HiveSqlParser.RULE_expr_case); + this.enterRule(localctx, 394, HiveSql.RULE_expr_case); try { - this.state = 2796; + this.state = 2793; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,350,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 2794; + this.state = 2791; this.expr_case_simple(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 2795; + this.state = 2792; this.expr_case_searched(); break; @@ -30309,7 +30356,7 @@ function Expr_case_simpleContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case_simple; + this.ruleIndex = HiveSql.RULE_expr_case_simple; return this; } @@ -30317,7 +30364,7 @@ Expr_case_simpleContext.prototype = Object.create(antlr4.ParserRuleContext.proto Expr_case_simpleContext.prototype.constructor = Expr_case_simpleContext; Expr_case_simpleContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Expr_case_simpleContext.prototype.expr = function(i) { @@ -30332,7 +30379,7 @@ Expr_case_simpleContext.prototype.expr = function(i) { }; Expr_case_simpleContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Expr_case_simpleContext.prototype.T_WHEN = function(i) { @@ -30340,9 +30387,9 @@ Expr_case_simpleContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; @@ -30352,15 +30399,15 @@ Expr_case_simpleContext.prototype.T_THEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_THEN); + return this.getTokens(HiveSql.T_THEN); } else { - return this.getToken(HiveSqlParser.T_THEN, i); + return this.getToken(HiveSql.T_THEN, i); } }; Expr_case_simpleContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Expr_case_simpleContext.prototype.enterRule = function(listener) { @@ -30386,47 +30433,47 @@ Expr_case_simpleContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_case_simpleContext = Expr_case_simpleContext; +HiveSql.Expr_case_simpleContext = Expr_case_simpleContext; -HiveSqlParser.prototype.expr_case_simple = function() { +HiveSql.prototype.expr_case_simple = function() { var localctx = new Expr_case_simpleContext(this, this._ctx, this.state); - this.enterRule(localctx, 396, HiveSqlParser.RULE_expr_case_simple); + this.enterRule(localctx, 396, HiveSql.RULE_expr_case_simple); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2798; - this.match(HiveSqlParser.T_CASE); - this.state = 2799; + this.state = 2795; + this.match(HiveSql.T_CASE); + this.state = 2796; this.expr(0); - this.state = 2805; + this.state = 2802; this._errHandler.sync(this); _la = this._input.LA(1); do { + this.state = 2797; + this.match(HiveSql.T_WHEN); + this.state = 2798; + this.expr(0); + this.state = 2799; + this.match(HiveSql.T_THEN); this.state = 2800; - this.match(HiveSqlParser.T_WHEN); - this.state = 2801; this.expr(0); - this.state = 2802; - this.match(HiveSqlParser.T_THEN); - this.state = 2803; - this.expr(0); - this.state = 2807; + this.state = 2804; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_WHEN); - this.state = 2811; + } while(_la===HiveSql.T_WHEN); + this.state = 2808; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 2809; - this.match(HiveSqlParser.T_ELSE); - this.state = 2810; + if(_la===HiveSql.T_ELSE) { + this.state = 2806; + this.match(HiveSql.T_ELSE); + this.state = 2807; this.expr(0); } - this.state = 2813; - this.match(HiveSqlParser.T_END); + this.state = 2810; + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -30451,7 +30498,7 @@ function Expr_case_searchedContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_case_searched; + this.ruleIndex = HiveSql.RULE_expr_case_searched; return this; } @@ -30459,11 +30506,11 @@ Expr_case_searchedContext.prototype = Object.create(antlr4.ParserRuleContext.pro Expr_case_searchedContext.prototype.constructor = Expr_case_searchedContext; Expr_case_searchedContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Expr_case_searchedContext.prototype.T_END = function() { - return this.getToken(HiveSqlParser.T_END, 0); + return this.getToken(HiveSql.T_END, 0); }; Expr_case_searchedContext.prototype.T_WHEN = function(i) { @@ -30471,9 +30518,9 @@ Expr_case_searchedContext.prototype.T_WHEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_WHEN); + return this.getTokens(HiveSql.T_WHEN); } else { - return this.getToken(HiveSqlParser.T_WHEN, i); + return this.getToken(HiveSql.T_WHEN, i); } }; @@ -30494,9 +30541,9 @@ Expr_case_searchedContext.prototype.T_THEN = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_THEN); + return this.getTokens(HiveSql.T_THEN); } else { - return this.getToken(HiveSqlParser.T_THEN, i); + return this.getToken(HiveSql.T_THEN, i); } }; @@ -30513,7 +30560,7 @@ Expr_case_searchedContext.prototype.expr = function(i) { }; Expr_case_searchedContext.prototype.T_ELSE = function() { - return this.getToken(HiveSqlParser.T_ELSE, 0); + return this.getToken(HiveSql.T_ELSE, 0); }; Expr_case_searchedContext.prototype.enterRule = function(listener) { @@ -30539,45 +30586,45 @@ Expr_case_searchedContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_case_searchedContext = Expr_case_searchedContext; +HiveSql.Expr_case_searchedContext = Expr_case_searchedContext; -HiveSqlParser.prototype.expr_case_searched = function() { +HiveSql.prototype.expr_case_searched = function() { var localctx = new Expr_case_searchedContext(this, this._ctx, this.state); - this.enterRule(localctx, 398, HiveSqlParser.RULE_expr_case_searched); + this.enterRule(localctx, 398, HiveSql.RULE_expr_case_searched); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2815; - this.match(HiveSqlParser.T_CASE); - this.state = 2821; + this.state = 2812; + this.match(HiveSql.T_CASE); + this.state = 2818; this._errHandler.sync(this); _la = this._input.LA(1); do { - this.state = 2816; - this.match(HiveSqlParser.T_WHEN); - this.state = 2817; + this.state = 2813; + this.match(HiveSql.T_WHEN); + this.state = 2814; this.bool_expr(0); - this.state = 2818; - this.match(HiveSqlParser.T_THEN); - this.state = 2819; + this.state = 2815; + this.match(HiveSql.T_THEN); + this.state = 2816; this.expr(0); - this.state = 2823; + this.state = 2820; this._errHandler.sync(this); _la = this._input.LA(1); - } while(_la===HiveSqlParser.T_WHEN); - this.state = 2827; + } while(_la===HiveSql.T_WHEN); + this.state = 2824; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ELSE) { - this.state = 2825; - this.match(HiveSqlParser.T_ELSE); - this.state = 2826; + if(_la===HiveSql.T_ELSE) { + this.state = 2822; + this.match(HiveSql.T_ELSE); + this.state = 2823; this.expr(0); } - this.state = 2829; - this.match(HiveSqlParser.T_END); + this.state = 2826; + this.match(HiveSql.T_END); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -30602,7 +30649,7 @@ function Expr_cursor_attributeContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_cursor_attribute; + this.ruleIndex = HiveSql.RULE_expr_cursor_attribute; return this; } @@ -30613,16 +30660,20 @@ Expr_cursor_attributeContext.prototype.ident = function() { return this.getTypedRuleContext(IdentContext,0); }; +Expr_cursor_attributeContext.prototype.T_PRECENT = function() { + return this.getToken(HiveSql.T_PRECENT, 0); +}; + Expr_cursor_attributeContext.prototype.T_ISOPEN = function() { - return this.getToken(HiveSqlParser.T_ISOPEN, 0); + return this.getToken(HiveSql.T_ISOPEN, 0); }; Expr_cursor_attributeContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Expr_cursor_attributeContext.prototype.T_NOTFOUND = function() { - return this.getToken(HiveSqlParser.T_NOTFOUND, 0); + return this.getToken(HiveSql.T_NOTFOUND, 0); }; Expr_cursor_attributeContext.prototype.enterRule = function(listener) { @@ -30648,22 +30699,22 @@ Expr_cursor_attributeContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_cursor_attributeContext = Expr_cursor_attributeContext; +HiveSql.Expr_cursor_attributeContext = Expr_cursor_attributeContext; -HiveSqlParser.prototype.expr_cursor_attribute = function() { +HiveSql.prototype.expr_cursor_attribute = function() { var localctx = new Expr_cursor_attributeContext(this, this._ctx, this.state); - this.enterRule(localctx, 400, HiveSqlParser.RULE_expr_cursor_attribute); + this.enterRule(localctx, 400, HiveSql.RULE_expr_cursor_attribute); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2831; + this.state = 2828; this.ident(); - this.state = 2832; - this.match(HiveSqlParser.T__3); - this.state = 2833; + this.state = 2829; + this.match(HiveSql.T_PRECENT); + this.state = 2830; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_FOUND || _la===HiveSqlParser.T_ISOPEN || _la===HiveSqlParser.T_NOTFOUND)) { + if(!(_la===HiveSql.T_FOUND || _la===HiveSql.T_ISOPEN || _la===HiveSql.T_NOTFOUND)) { this._errHandler.recoverInline(this); } else { @@ -30694,7 +30745,7 @@ function Expr_agg_window_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_agg_window_func; + this.ruleIndex = HiveSql.RULE_expr_agg_window_func; return this; } @@ -30702,11 +30753,11 @@ Expr_agg_window_funcContext.prototype = Object.create(antlr4.ParserRuleContext.p Expr_agg_window_funcContext.prototype.constructor = Expr_agg_window_funcContext; Expr_agg_window_funcContext.prototype.T_AVG = function() { - return this.getToken(HiveSqlParser.T_AVG, 0); + return this.getToken(HiveSql.T_AVG, 0); }; Expr_agg_window_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_agg_window_funcContext.prototype.expr = function(i) { @@ -30721,7 +30772,7 @@ Expr_agg_window_funcContext.prototype.expr = function(i) { }; Expr_agg_window_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_agg_window_funcContext.prototype.expr_func_all_distinct = function() { @@ -30733,27 +30784,31 @@ Expr_agg_window_funcContext.prototype.expr_func_over_clause = function() { }; Expr_agg_window_funcContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); +}; + +Expr_agg_window_funcContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); }; Expr_agg_window_funcContext.prototype.T_COUNT_BIG = function() { - return this.getToken(HiveSqlParser.T_COUNT_BIG, 0); + return this.getToken(HiveSql.T_COUNT_BIG, 0); }; Expr_agg_window_funcContext.prototype.T_CUME_DIST = function() { - return this.getToken(HiveSqlParser.T_CUME_DIST, 0); + return this.getToken(HiveSql.T_CUME_DIST, 0); }; Expr_agg_window_funcContext.prototype.T_DENSE_RANK = function() { - return this.getToken(HiveSqlParser.T_DENSE_RANK, 0); + return this.getToken(HiveSql.T_DENSE_RANK, 0); }; Expr_agg_window_funcContext.prototype.T_FIRST_VALUE = function() { - return this.getToken(HiveSqlParser.T_FIRST_VALUE, 0); + return this.getToken(HiveSql.T_FIRST_VALUE, 0); }; Expr_agg_window_funcContext.prototype.T_LAG = function() { - return this.getToken(HiveSqlParser.T_LAG, 0); + return this.getToken(HiveSql.T_LAG, 0); }; Expr_agg_window_funcContext.prototype.T_COMMA = function(i) { @@ -30761,51 +30816,51 @@ Expr_agg_window_funcContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; Expr_agg_window_funcContext.prototype.T_LAST_VALUE = function() { - return this.getToken(HiveSqlParser.T_LAST_VALUE, 0); + return this.getToken(HiveSql.T_LAST_VALUE, 0); }; Expr_agg_window_funcContext.prototype.T_LEAD = function() { - return this.getToken(HiveSqlParser.T_LEAD, 0); + return this.getToken(HiveSql.T_LEAD, 0); }; Expr_agg_window_funcContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Expr_agg_window_funcContext.prototype.T_MIN = function() { - return this.getToken(HiveSqlParser.T_MIN, 0); + return this.getToken(HiveSql.T_MIN, 0); }; Expr_agg_window_funcContext.prototype.T_RANK = function() { - return this.getToken(HiveSqlParser.T_RANK, 0); + return this.getToken(HiveSql.T_RANK, 0); }; Expr_agg_window_funcContext.prototype.T_ROW_NUMBER = function() { - return this.getToken(HiveSqlParser.T_ROW_NUMBER, 0); + return this.getToken(HiveSql.T_ROW_NUMBER, 0); }; Expr_agg_window_funcContext.prototype.T_STDEV = function() { - return this.getToken(HiveSqlParser.T_STDEV, 0); + return this.getToken(HiveSql.T_STDEV, 0); }; Expr_agg_window_funcContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Expr_agg_window_funcContext.prototype.T_VAR = function() { - return this.getToken(HiveSqlParser.T_VAR, 0); + return this.getToken(HiveSql.T_VAR, 0); }; Expr_agg_window_funcContext.prototype.T_VARIANCE = function() { - return this.getToken(HiveSqlParser.T_VARIANCE, 0); + return this.getToken(HiveSql.T_VARIANCE, 0); }; Expr_agg_window_funcContext.prototype.enterRule = function(listener) { @@ -30831,1080 +30886,1080 @@ Expr_agg_window_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_agg_window_funcContext = Expr_agg_window_funcContext; +HiveSql.Expr_agg_window_funcContext = Expr_agg_window_funcContext; -HiveSqlParser.prototype.expr_agg_window_func = function() { +HiveSql.prototype.expr_agg_window_func = function() { var localctx = new Expr_agg_window_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 402, HiveSqlParser.RULE_expr_agg_window_func); + this.enterRule(localctx, 402, HiveSql.RULE_expr_agg_window_func); var _la = 0; // Token type try { - this.state = 2987; + this.state = 2984; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_AVG: + case HiveSql.T_AVG: this.enterOuterAlt(localctx, 1); + this.state = 2832; + this.match(HiveSql.T_AVG); + this.state = 2833; + this.match(HiveSql.T_OPEN_P); this.state = 2835; - this.match(HiveSqlParser.T_AVG); - this.state = 2836; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2838; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,355,this._ctx); if(la_===1) { - this.state = 2837; + this.state = 2834; this.expr_func_all_distinct(); } - this.state = 2840; + this.state = 2837; this.expr(0); - this.state = 2841; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2843; + this.state = 2838; + this.match(HiveSql.T_CLOSE_P); + this.state = 2840; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,356,this._ctx); if(la_===1) { - this.state = 2842; + this.state = 2839; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_COUNT: + case HiveSql.T_COUNT: this.enterOuterAlt(localctx, 2); - this.state = 2845; - this.match(HiveSqlParser.T_COUNT); - this.state = 2846; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2852; + this.state = 2842; + this.match(HiveSql.T_COUNT); + this.state = 2843; + this.match(HiveSql.T_OPEN_P); + this.state = 2849; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2848; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 2845; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,357,this._ctx); if(la_===1) { - this.state = 2847; + this.state = 2844; this.expr_func_all_distinct(); } - this.state = 2850; + this.state = 2847; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 2851; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 2848; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2854; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2856; + this.state = 2851; + this.match(HiveSql.T_CLOSE_P); + this.state = 2853; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,359,this._ctx); if(la_===1) { - this.state = 2855; + this.state = 2852; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_COUNT_BIG: + case HiveSql.T_COUNT_BIG: this.enterOuterAlt(localctx, 3); - this.state = 2858; - this.match(HiveSqlParser.T_COUNT_BIG); - this.state = 2859; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2865; + this.state = 2855; + this.match(HiveSql.T_COUNT_BIG); + this.state = 2856; + this.match(HiveSql.T_OPEN_P); + this.state = 2862; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 2861; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 2858; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,360,this._ctx); if(la_===1) { - this.state = 2860; + this.state = 2857; this.expr_func_all_distinct(); } - this.state = 2863; + this.state = 2860; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 2864; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 2861; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 2867; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2869; + this.state = 2864; + this.match(HiveSql.T_CLOSE_P); + this.state = 2866; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,362,this._ctx); if(la_===1) { - this.state = 2868; + this.state = 2865; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_CUME_DIST: + case HiveSql.T_CUME_DIST: this.enterOuterAlt(localctx, 4); + this.state = 2868; + this.match(HiveSql.T_CUME_DIST); + this.state = 2869; + this.match(HiveSql.T_OPEN_P); + this.state = 2870; + this.match(HiveSql.T_CLOSE_P); this.state = 2871; - this.match(HiveSqlParser.T_CUME_DIST); - this.state = 2872; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2873; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2874; this.expr_func_over_clause(); break; - case HiveSqlParser.T_DENSE_RANK: + case HiveSql.T_DENSE_RANK: this.enterOuterAlt(localctx, 5); + this.state = 2872; + this.match(HiveSql.T_DENSE_RANK); + this.state = 2873; + this.match(HiveSql.T_OPEN_P); + this.state = 2874; + this.match(HiveSql.T_CLOSE_P); this.state = 2875; - this.match(HiveSqlParser.T_DENSE_RANK); - this.state = 2876; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2877; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2878; this.expr_func_over_clause(); break; - case HiveSqlParser.T_FIRST_VALUE: + case HiveSql.T_FIRST_VALUE: this.enterOuterAlt(localctx, 6); + this.state = 2876; + this.match(HiveSql.T_FIRST_VALUE); + this.state = 2877; + this.match(HiveSql.T_OPEN_P); + this.state = 2878; + this.expr(0); this.state = 2879; - this.match(HiveSqlParser.T_FIRST_VALUE); + this.match(HiveSql.T_CLOSE_P); this.state = 2880; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2881; - this.expr(0); - this.state = 2882; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2883; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LAG: + case HiveSql.T_LAG: this.enterOuterAlt(localctx, 7); - this.state = 2885; - this.match(HiveSqlParser.T_LAG); - this.state = 2886; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2887; + this.state = 2882; + this.match(HiveSql.T_LAG); + this.state = 2883; + this.match(HiveSql.T_OPEN_P); + this.state = 2884; this.expr(0); - this.state = 2894; + this.state = 2891; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2888; - this.match(HiveSqlParser.T_COMMA); + if(_la===HiveSql.T_COMMA) { + this.state = 2885; + this.match(HiveSql.T_COMMA); + this.state = 2886; + this.expr(0); this.state = 2889; - this.expr(0); - this.state = 2892; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2890; - this.match(HiveSqlParser.T_COMMA); - this.state = 2891; + if(_la===HiveSql.T_COMMA) { + this.state = 2887; + this.match(HiveSql.T_COMMA); + this.state = 2888; this.expr(0); } } - this.state = 2896; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2897; + this.state = 2893; + this.match(HiveSql.T_CLOSE_P); + this.state = 2894; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LAST_VALUE: + case HiveSql.T_LAST_VALUE: this.enterOuterAlt(localctx, 8); - this.state = 2899; - this.match(HiveSqlParser.T_LAST_VALUE); - this.state = 2900; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2901; + this.state = 2896; + this.match(HiveSql.T_LAST_VALUE); + this.state = 2897; + this.match(HiveSql.T_OPEN_P); + this.state = 2898; this.expr(0); - this.state = 2902; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2903; + this.state = 2899; + this.match(HiveSql.T_CLOSE_P); + this.state = 2900; this.expr_func_over_clause(); break; - case HiveSqlParser.T_LEAD: + case HiveSql.T_LEAD: this.enterOuterAlt(localctx, 9); - this.state = 2905; - this.match(HiveSqlParser.T_LEAD); - this.state = 2906; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2907; + this.state = 2902; + this.match(HiveSql.T_LEAD); + this.state = 2903; + this.match(HiveSql.T_OPEN_P); + this.state = 2904; this.expr(0); - this.state = 2914; + this.state = 2911; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2908; - this.match(HiveSqlParser.T_COMMA); - this.state = 2909; + if(_la===HiveSql.T_COMMA) { + this.state = 2905; + this.match(HiveSql.T_COMMA); + this.state = 2906; this.expr(0); - this.state = 2912; + this.state = 2909; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 2910; - this.match(HiveSqlParser.T_COMMA); - this.state = 2911; + if(_la===HiveSql.T_COMMA) { + this.state = 2907; + this.match(HiveSql.T_COMMA); + this.state = 2908; this.expr(0); } } - this.state = 2916; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2917; + this.state = 2913; + this.match(HiveSql.T_CLOSE_P); + this.state = 2914; this.expr_func_over_clause(); break; - case HiveSqlParser.T_MAX: + case HiveSql.T_MAX: this.enterOuterAlt(localctx, 10); + this.state = 2916; + this.match(HiveSql.T_MAX); + this.state = 2917; + this.match(HiveSql.T_OPEN_P); this.state = 2919; - this.match(HiveSqlParser.T_MAX); - this.state = 2920; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2922; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,367,this._ctx); if(la_===1) { - this.state = 2921; + this.state = 2918; this.expr_func_all_distinct(); } - this.state = 2924; + this.state = 2921; this.expr(0); - this.state = 2925; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2927; + this.state = 2922; + this.match(HiveSql.T_CLOSE_P); + this.state = 2924; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,368,this._ctx); if(la_===1) { - this.state = 2926; + this.state = 2923; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_MIN: + case HiveSql.T_MIN: this.enterOuterAlt(localctx, 11); + this.state = 2926; + this.match(HiveSql.T_MIN); + this.state = 2927; + this.match(HiveSql.T_OPEN_P); this.state = 2929; - this.match(HiveSqlParser.T_MIN); - this.state = 2930; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2932; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,369,this._ctx); if(la_===1) { - this.state = 2931; + this.state = 2928; this.expr_func_all_distinct(); } - this.state = 2934; + this.state = 2931; this.expr(0); - this.state = 2935; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2937; + this.state = 2932; + this.match(HiveSql.T_CLOSE_P); + this.state = 2934; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,370,this._ctx); if(la_===1) { - this.state = 2936; + this.state = 2933; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_RANK: + case HiveSql.T_RANK: this.enterOuterAlt(localctx, 12); + this.state = 2936; + this.match(HiveSql.T_RANK); + this.state = 2937; + this.match(HiveSql.T_OPEN_P); + this.state = 2938; + this.match(HiveSql.T_CLOSE_P); this.state = 2939; - this.match(HiveSqlParser.T_RANK); - this.state = 2940; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2941; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2942; this.expr_func_over_clause(); break; - case HiveSqlParser.T_ROW_NUMBER: + case HiveSql.T_ROW_NUMBER: this.enterOuterAlt(localctx, 13); + this.state = 2940; + this.match(HiveSql.T_ROW_NUMBER); + this.state = 2941; + this.match(HiveSql.T_OPEN_P); + this.state = 2942; + this.match(HiveSql.T_CLOSE_P); this.state = 2943; - this.match(HiveSqlParser.T_ROW_NUMBER); - this.state = 2944; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2945; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2946; this.expr_func_over_clause(); break; - case HiveSqlParser.T_STDEV: + case HiveSql.T_STDEV: this.enterOuterAlt(localctx, 14); + this.state = 2944; + this.match(HiveSql.T_STDEV); + this.state = 2945; + this.match(HiveSql.T_OPEN_P); this.state = 2947; - this.match(HiveSqlParser.T_STDEV); - this.state = 2948; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2950; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,371,this._ctx); if(la_===1) { - this.state = 2949; + this.state = 2946; this.expr_func_all_distinct(); } - this.state = 2952; + this.state = 2949; this.expr(0); - this.state = 2953; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2955; + this.state = 2950; + this.match(HiveSql.T_CLOSE_P); + this.state = 2952; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,372,this._ctx); if(la_===1) { - this.state = 2954; + this.state = 2951; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_SUM: + case HiveSql.T_SUM: this.enterOuterAlt(localctx, 15); + this.state = 2954; + this.match(HiveSql.T_SUM); + this.state = 2955; + this.match(HiveSql.T_OPEN_P); this.state = 2957; - this.match(HiveSqlParser.T_SUM); - this.state = 2958; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2960; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,373,this._ctx); if(la_===1) { - this.state = 2959; + this.state = 2956; this.expr_func_all_distinct(); } - this.state = 2962; + this.state = 2959; this.expr(0); - this.state = 2963; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2965; + this.state = 2960; + this.match(HiveSql.T_CLOSE_P); + this.state = 2962; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,374,this._ctx); if(la_===1) { - this.state = 2964; + this.state = 2961; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_VAR: + case HiveSql.T_VAR: this.enterOuterAlt(localctx, 16); + this.state = 2964; + this.match(HiveSql.T_VAR); + this.state = 2965; + this.match(HiveSql.T_OPEN_P); this.state = 2967; - this.match(HiveSqlParser.T_VAR); - this.state = 2968; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2970; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,375,this._ctx); if(la_===1) { - this.state = 2969; + this.state = 2966; this.expr_func_all_distinct(); } - this.state = 2972; + this.state = 2969; this.expr(0); - this.state = 2973; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2975; + this.state = 2970; + this.match(HiveSql.T_CLOSE_P); + this.state = 2972; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,376,this._ctx); if(la_===1) { - this.state = 2974; + this.state = 2971; this.expr_func_over_clause(); } break; - case HiveSqlParser.T_VARIANCE: + case HiveSql.T_VARIANCE: this.enterOuterAlt(localctx, 17); + this.state = 2974; + this.match(HiveSql.T_VARIANCE); + this.state = 2975; + this.match(HiveSql.T_OPEN_P); this.state = 2977; - this.match(HiveSqlParser.T_VARIANCE); - this.state = 2978; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2980; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,377,this._ctx); if(la_===1) { - this.state = 2979; + this.state = 2976; this.expr_func_all_distinct(); } - this.state = 2982; + this.state = 2979; this.expr(0); - this.state = 2983; - this.match(HiveSqlParser.T_CLOSE_P); - this.state = 2985; + this.state = 2980; + this.match(HiveSql.T_CLOSE_P); + this.state = 2982; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,378,this._ctx); if(la_===1) { - this.state = 2984; + this.state = 2981; this.expr_func_over_clause(); } @@ -31936,7 +31991,7 @@ function Expr_func_all_distinctContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_all_distinct; + this.ruleIndex = HiveSql.RULE_expr_func_all_distinct; return this; } @@ -31944,11 +31999,11 @@ Expr_func_all_distinctContext.prototype = Object.create(antlr4.ParserRuleContext Expr_func_all_distinctContext.prototype.constructor = Expr_func_all_distinctContext; Expr_func_all_distinctContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Expr_func_all_distinctContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Expr_func_all_distinctContext.prototype.enterRule = function(listener) { @@ -31974,18 +32029,18 @@ Expr_func_all_distinctContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_all_distinctContext = Expr_func_all_distinctContext; +HiveSql.Expr_func_all_distinctContext = Expr_func_all_distinctContext; -HiveSqlParser.prototype.expr_func_all_distinct = function() { +HiveSql.prototype.expr_func_all_distinct = function() { var localctx = new Expr_func_all_distinctContext(this, this._ctx, this.state); - this.enterRule(localctx, 404, HiveSqlParser.RULE_expr_func_all_distinct); + this.enterRule(localctx, 404, HiveSql.RULE_expr_func_all_distinct); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 2989; + this.state = 2986; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_ALL || _la===HiveSqlParser.T_DISTINCT)) { + if(!(_la===HiveSql.T_ALL || _la===HiveSql.T_DISTINCT)) { this._errHandler.recoverInline(this); } else { @@ -32016,7 +32071,7 @@ function Expr_func_over_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_over_clause; + this.ruleIndex = HiveSql.RULE_expr_func_over_clause; return this; } @@ -32024,15 +32079,15 @@ Expr_func_over_clauseContext.prototype = Object.create(antlr4.ParserRuleContext. Expr_func_over_clauseContext.prototype.constructor = Expr_func_over_clauseContext; Expr_func_over_clauseContext.prototype.T_OVER = function() { - return this.getToken(HiveSqlParser.T_OVER, 0); + return this.getToken(HiveSql.T_OVER, 0); }; Expr_func_over_clauseContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_func_over_clauseContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_func_over_clauseContext.prototype.expr_func_partition_by_clause = function() { @@ -32066,37 +32121,37 @@ Expr_func_over_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_over_clauseContext = Expr_func_over_clauseContext; +HiveSql.Expr_func_over_clauseContext = Expr_func_over_clauseContext; -HiveSqlParser.prototype.expr_func_over_clause = function() { +HiveSql.prototype.expr_func_over_clause = function() { var localctx = new Expr_func_over_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 406, HiveSqlParser.RULE_expr_func_over_clause); + this.enterRule(localctx, 406, HiveSql.RULE_expr_func_over_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); + this.state = 2988; + this.match(HiveSql.T_OVER); + this.state = 2989; + this.match(HiveSql.T_OPEN_P); this.state = 2991; - this.match(HiveSqlParser.T_OVER); - this.state = 2992; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 2994; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_PARTITION) { - this.state = 2993; + if(_la===HiveSql.T_PARTITION) { + this.state = 2990; this.expr_func_partition_by_clause(); } - this.state = 2997; + this.state = 2994; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_ORDER) { - this.state = 2996; + if(_la===HiveSql.T_ORDER) { + this.state = 2993; this.order_by_clause(); } - this.state = 2999; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 2996; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -32121,7 +32176,7 @@ function Expr_func_partition_by_clauseContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_partition_by_clause; + this.ruleIndex = HiveSql.RULE_expr_func_partition_by_clause; return this; } @@ -32129,11 +32184,11 @@ Expr_func_partition_by_clauseContext.prototype = Object.create(antlr4.ParserRule Expr_func_partition_by_clauseContext.prototype.constructor = Expr_func_partition_by_clauseContext; Expr_func_partition_by_clauseContext.prototype.T_PARTITION = function() { - return this.getToken(HiveSqlParser.T_PARTITION, 0); + return this.getToken(HiveSql.T_PARTITION, 0); }; Expr_func_partition_by_clauseContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Expr_func_partition_by_clauseContext.prototype.expr = function(i) { @@ -32152,9 +32207,9 @@ Expr_func_partition_by_clauseContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -32182,30 +32237,30 @@ Expr_func_partition_by_clauseContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_partition_by_clauseContext = Expr_func_partition_by_clauseContext; +HiveSql.Expr_func_partition_by_clauseContext = Expr_func_partition_by_clauseContext; -HiveSqlParser.prototype.expr_func_partition_by_clause = function() { +HiveSql.prototype.expr_func_partition_by_clause = function() { var localctx = new Expr_func_partition_by_clauseContext(this, this._ctx, this.state); - this.enterRule(localctx, 408, HiveSqlParser.RULE_expr_func_partition_by_clause); + this.enterRule(localctx, 408, HiveSql.RULE_expr_func_partition_by_clause); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3001; - this.match(HiveSqlParser.T_PARTITION); - this.state = 3002; - this.match(HiveSqlParser.T_BY); - this.state = 3003; + this.state = 2998; + this.match(HiveSql.T_PARTITION); + this.state = 2999; + this.match(HiveSql.T_BY); + this.state = 3000; this.expr(0); - this.state = 3008; + this.state = 3005; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { - this.state = 3004; - this.match(HiveSqlParser.T_COMMA); - this.state = 3005; + while(_la===HiveSql.T_COMMA) { + this.state = 3001; + this.match(HiveSql.T_COMMA); + this.state = 3002; this.expr(0); - this.state = 3010; + this.state = 3007; this._errHandler.sync(this); _la = this._input.LA(1); } @@ -32233,7 +32288,7 @@ function Expr_spec_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_spec_func; + this.ruleIndex = HiveSql.RULE_expr_spec_func; return this; } @@ -32241,15 +32296,15 @@ Expr_spec_funcContext.prototype = Object.create(antlr4.ParserRuleContext.prototy Expr_spec_funcContext.prototype.constructor = Expr_spec_funcContext; Expr_spec_funcContext.prototype.T_ACTIVITY_COUNT = function() { - return this.getToken(HiveSqlParser.T_ACTIVITY_COUNT, 0); + return this.getToken(HiveSql.T_ACTIVITY_COUNT, 0); }; Expr_spec_funcContext.prototype.T_CAST = function() { - return this.getToken(HiveSqlParser.T_CAST, 0); + return this.getToken(HiveSql.T_CAST, 0); }; Expr_spec_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_spec_funcContext.prototype.expr = function(i) { @@ -32264,7 +32319,7 @@ Expr_spec_funcContext.prototype.expr = function(i) { }; Expr_spec_funcContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Expr_spec_funcContext.prototype.dtype = function() { @@ -32272,7 +32327,7 @@ Expr_spec_funcContext.prototype.dtype = function() { }; Expr_spec_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_spec_funcContext.prototype.dtype_len = function() { @@ -32280,39 +32335,43 @@ Expr_spec_funcContext.prototype.dtype_len = function() { }; Expr_spec_funcContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); +}; + +Expr_spec_funcContext.prototype.T_MUL = function() { + return this.getToken(HiveSql.T_MUL, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_DATE = function() { - return this.getToken(HiveSqlParser.T_CURRENT_DATE, 0); + return this.getToken(HiveSql.T_CURRENT_DATE, 0); }; Expr_spec_funcContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Expr_spec_funcContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_CURRENT_TIMESTAMP, 0); + return this.getToken(HiveSql.T_CURRENT_TIMESTAMP, 0); }; Expr_spec_funcContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Expr_spec_funcContext.prototype.T_CURRENT_USER = function() { - return this.getToken(HiveSqlParser.T_CURRENT_USER, 0); + return this.getToken(HiveSql.T_CURRENT_USER, 0); }; Expr_spec_funcContext.prototype.T_USER = function() { - return this.getToken(HiveSqlParser.T_USER, 0); + return this.getToken(HiveSql.T_USER, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_STRING = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_STRING, 0); + return this.getToken(HiveSql.T_MAX_PART_STRING, 0); }; Expr_spec_funcContext.prototype.T_COMMA = function(i) { @@ -32320,9 +32379,9 @@ Expr_spec_funcContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -32332,59 +32391,59 @@ Expr_spec_funcContext.prototype.T_EQUAL = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_EQUAL); + return this.getTokens(HiveSql.T_EQUAL); } else { - return this.getToken(HiveSqlParser.T_EQUAL, i); + return this.getToken(HiveSql.T_EQUAL, i); } }; Expr_spec_funcContext.prototype.T_MIN_PART_STRING = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_STRING, 0); + return this.getToken(HiveSql.T_MIN_PART_STRING, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_INT = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_INT, 0); + return this.getToken(HiveSql.T_MAX_PART_INT, 0); }; Expr_spec_funcContext.prototype.T_MIN_PART_INT = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_INT, 0); + return this.getToken(HiveSql.T_MIN_PART_INT, 0); }; Expr_spec_funcContext.prototype.T_MAX_PART_DATE = function() { - return this.getToken(HiveSqlParser.T_MAX_PART_DATE, 0); + return this.getToken(HiveSql.T_MAX_PART_DATE, 0); }; Expr_spec_funcContext.prototype.T_MIN_PART_DATE = function() { - return this.getToken(HiveSqlParser.T_MIN_PART_DATE, 0); + return this.getToken(HiveSql.T_MIN_PART_DATE, 0); }; Expr_spec_funcContext.prototype.T_PART_COUNT = function() { - return this.getToken(HiveSqlParser.T_PART_COUNT, 0); + return this.getToken(HiveSql.T_PART_COUNT, 0); }; Expr_spec_funcContext.prototype.T_PART_LOC = function() { - return this.getToken(HiveSqlParser.T_PART_LOC, 0); + return this.getToken(HiveSql.T_PART_LOC, 0); }; Expr_spec_funcContext.prototype.T_TRIM = function() { - return this.getToken(HiveSqlParser.T_TRIM, 0); + return this.getToken(HiveSql.T_TRIM, 0); }; Expr_spec_funcContext.prototype.T_SUBSTRING = function() { - return this.getToken(HiveSqlParser.T_SUBSTRING, 0); + return this.getToken(HiveSql.T_SUBSTRING, 0); }; Expr_spec_funcContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Expr_spec_funcContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Expr_spec_funcContext.prototype.T_SYSDATE = function() { - return this.getToken(HiveSqlParser.T_SYSDATE, 0); + return this.getToken(HiveSql.T_SYSDATE, 0); }; Expr_spec_funcContext.prototype.enterRule = function(listener) { @@ -32410,812 +32469,812 @@ Expr_spec_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_spec_funcContext = Expr_spec_funcContext; +HiveSql.Expr_spec_funcContext = Expr_spec_funcContext; -HiveSqlParser.prototype.expr_spec_func = function() { +HiveSql.prototype.expr_spec_func = function() { var localctx = new Expr_spec_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 410, HiveSqlParser.RULE_expr_spec_func); + this.enterRule(localctx, 410, HiveSql.RULE_expr_spec_func); var _la = 0; // Token type try { - this.state = 3211; + this.state = 3208; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,403,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3011; - this.match(HiveSqlParser.T_ACTIVITY_COUNT); + this.state = 3008; + this.match(HiveSql.T_ACTIVITY_COUNT); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3012; - this.match(HiveSqlParser.T_CAST); - this.state = 3013; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3014; + this.state = 3009; + this.match(HiveSql.T_CAST); + this.state = 3010; + this.match(HiveSql.T_OPEN_P); + this.state = 3011; this.expr(0); - this.state = 3015; - this.match(HiveSqlParser.T_AS); - this.state = 3016; + this.state = 3012; + this.match(HiveSql.T_AS); + this.state = 3013; this.dtype(); - this.state = 3018; + this.state = 3015; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_OPEN_P) { - this.state = 3017; + if(_la===HiveSql.T_OPEN_P) { + this.state = 3014; this.dtype_len(); } - this.state = 3020; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3017; + this.match(HiveSql.T_CLOSE_P); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 3022; - this.match(HiveSqlParser.T_COUNT); + this.state = 3019; + this.match(HiveSql.T_COUNT); + this.state = 3020; + this.match(HiveSql.T_OPEN_P); this.state = 3023; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3026; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__8: - case HiveSqlParser.T__9: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_NULL: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_OPEN_P: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.L_INT: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.L_S_STRING: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_MAX_PART_STRING: - case HiveSqlParser.T_MIN_PART_STRING: - case HiveSqlParser.T_MAX_PART_INT: - case HiveSqlParser.T_MIN_PART_INT: - case HiveSqlParser.T_MAX_PART_DATE: - case HiveSqlParser.T_MIN_PART_DATE: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.L_D_STRING: - case HiveSqlParser.L_DEC: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3024; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NULL: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_MAX_PART_STRING: + case HiveSql.T_MIN_PART_STRING: + case HiveSql.T_MAX_PART_INT: + case HiveSql.T_MIN_PART_INT: + case HiveSql.T_MAX_PART_DATE: + case HiveSql.T_MIN_PART_DATE: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_ADD: + case HiveSql.T_OPEN_P: + case HiveSql.T_SUB: + case HiveSql.L_ID: + case HiveSql.L_S_STRING: + case HiveSql.L_D_STRING: + case HiveSql.L_INT: + case HiveSql.L_DEC: + this.state = 3021; this.expr(0); break; - case HiveSqlParser.T__5: - this.state = 3025; - this.match(HiveSqlParser.T__5); + case HiveSql.T_MUL: + this.state = 3022; + this.match(HiveSql.T_MUL); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3028; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3025; + this.match(HiveSql.T_CLOSE_P); break; case 4: this.enterOuterAlt(localctx, 4); - this.state = 3029; - this.match(HiveSqlParser.T_CURRENT_DATE); + this.state = 3026; + this.match(HiveSql.T_CURRENT_DATE); break; case 5: this.enterOuterAlt(localctx, 5); - this.state = 3030; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3031; - this.match(HiveSqlParser.T_DATE); + this.state = 3027; + this.match(HiveSql.T_CURRENT); + this.state = 3028; + this.match(HiveSql.T_DATE); break; case 6: this.enterOuterAlt(localctx, 6); - this.state = 3035; + this.state = 3032; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T_CURRENT_TIMESTAMP: - this.state = 3032; - this.match(HiveSqlParser.T_CURRENT_TIMESTAMP); + case HiveSql.T_CURRENT_TIMESTAMP: + this.state = 3029; + this.match(HiveSql.T_CURRENT_TIMESTAMP); break; - case HiveSqlParser.T_CURRENT: - this.state = 3033; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3034; - this.match(HiveSqlParser.T_TIMESTAMP); + case HiveSql.T_CURRENT: + this.state = 3030; + this.match(HiveSql.T_CURRENT); + this.state = 3031; + this.match(HiveSql.T_TIMESTAMP); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3041; + this.state = 3038; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,386,this._ctx); if(la_===1) { - this.state = 3037; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3038; + this.state = 3034; + this.match(HiveSql.T_OPEN_P); + this.state = 3035; this.expr(0); - this.state = 3039; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3036; + this.match(HiveSql.T_CLOSE_P); } break; case 7: this.enterOuterAlt(localctx, 7); - this.state = 3043; - this.match(HiveSqlParser.T_CURRENT_USER); + this.state = 3040; + this.match(HiveSql.T_CURRENT_USER); break; case 8: this.enterOuterAlt(localctx, 8); - this.state = 3044; - this.match(HiveSqlParser.T_CURRENT); - this.state = 3045; - this.match(HiveSqlParser.T_USER); + this.state = 3041; + this.match(HiveSql.T_CURRENT); + this.state = 3042; + this.match(HiveSql.T_USER); break; case 9: this.enterOuterAlt(localctx, 9); - this.state = 3046; - this.match(HiveSqlParser.T_MAX_PART_STRING); - this.state = 3047; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3048; + this.state = 3043; + this.match(HiveSql.T_MAX_PART_STRING); + this.state = 3044; + this.match(HiveSql.T_OPEN_P); + this.state = 3045; this.expr(0); - this.state = 3061; + this.state = 3058; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3049; - this.match(HiveSqlParser.T_COMMA); - this.state = 3050; + if(_la===HiveSql.T_COMMA) { + this.state = 3046; + this.match(HiveSql.T_COMMA); + this.state = 3047; this.expr(0); - this.state = 3058; + this.state = 3055; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3048; + this.match(HiveSql.T_COMMA); + this.state = 3049; + this.expr(0); + this.state = 3050; + this.match(HiveSql.T_EQUAL); this.state = 3051; - this.match(HiveSqlParser.T_COMMA); - this.state = 3052; this.expr(0); - this.state = 3053; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3054; - this.expr(0); - this.state = 3060; + this.state = 3057; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3063; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3060; + this.match(HiveSql.T_CLOSE_P); break; case 10: this.enterOuterAlt(localctx, 10); - this.state = 3065; - this.match(HiveSqlParser.T_MIN_PART_STRING); - this.state = 3066; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3067; + this.state = 3062; + this.match(HiveSql.T_MIN_PART_STRING); + this.state = 3063; + this.match(HiveSql.T_OPEN_P); + this.state = 3064; this.expr(0); - this.state = 3080; + this.state = 3077; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3068; - this.match(HiveSqlParser.T_COMMA); - this.state = 3069; + if(_la===HiveSql.T_COMMA) { + this.state = 3065; + this.match(HiveSql.T_COMMA); + this.state = 3066; this.expr(0); - this.state = 3077; + this.state = 3074; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3067; + this.match(HiveSql.T_COMMA); + this.state = 3068; + this.expr(0); + this.state = 3069; + this.match(HiveSql.T_EQUAL); this.state = 3070; - this.match(HiveSqlParser.T_COMMA); - this.state = 3071; this.expr(0); - this.state = 3072; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3073; - this.expr(0); - this.state = 3079; + this.state = 3076; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3082; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3079; + this.match(HiveSql.T_CLOSE_P); break; case 11: this.enterOuterAlt(localctx, 11); - this.state = 3084; - this.match(HiveSqlParser.T_MAX_PART_INT); - this.state = 3085; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3086; + this.state = 3081; + this.match(HiveSql.T_MAX_PART_INT); + this.state = 3082; + this.match(HiveSql.T_OPEN_P); + this.state = 3083; this.expr(0); - this.state = 3099; + this.state = 3096; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3087; - this.match(HiveSqlParser.T_COMMA); - this.state = 3088; + if(_la===HiveSql.T_COMMA) { + this.state = 3084; + this.match(HiveSql.T_COMMA); + this.state = 3085; this.expr(0); - this.state = 3096; + this.state = 3093; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3086; + this.match(HiveSql.T_COMMA); + this.state = 3087; + this.expr(0); + this.state = 3088; + this.match(HiveSql.T_EQUAL); this.state = 3089; - this.match(HiveSqlParser.T_COMMA); - this.state = 3090; this.expr(0); - this.state = 3091; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3092; - this.expr(0); - this.state = 3098; + this.state = 3095; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3101; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3098; + this.match(HiveSql.T_CLOSE_P); break; case 12: this.enterOuterAlt(localctx, 12); - this.state = 3103; - this.match(HiveSqlParser.T_MIN_PART_INT); - this.state = 3104; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3105; + this.state = 3100; + this.match(HiveSql.T_MIN_PART_INT); + this.state = 3101; + this.match(HiveSql.T_OPEN_P); + this.state = 3102; this.expr(0); - this.state = 3118; + this.state = 3115; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3106; - this.match(HiveSqlParser.T_COMMA); - this.state = 3107; + if(_la===HiveSql.T_COMMA) { + this.state = 3103; + this.match(HiveSql.T_COMMA); + this.state = 3104; this.expr(0); - this.state = 3115; + this.state = 3112; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3105; + this.match(HiveSql.T_COMMA); + this.state = 3106; + this.expr(0); + this.state = 3107; + this.match(HiveSql.T_EQUAL); this.state = 3108; - this.match(HiveSqlParser.T_COMMA); - this.state = 3109; this.expr(0); - this.state = 3110; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3111; - this.expr(0); - this.state = 3117; + this.state = 3114; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3120; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3117; + this.match(HiveSql.T_CLOSE_P); break; case 13: this.enterOuterAlt(localctx, 13); - this.state = 3122; - this.match(HiveSqlParser.T_MAX_PART_DATE); - this.state = 3123; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3124; + this.state = 3119; + this.match(HiveSql.T_MAX_PART_DATE); + this.state = 3120; + this.match(HiveSql.T_OPEN_P); + this.state = 3121; this.expr(0); - this.state = 3137; + this.state = 3134; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3125; - this.match(HiveSqlParser.T_COMMA); - this.state = 3126; + if(_la===HiveSql.T_COMMA) { + this.state = 3122; + this.match(HiveSql.T_COMMA); + this.state = 3123; this.expr(0); - this.state = 3134; + this.state = 3131; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3124; + this.match(HiveSql.T_COMMA); + this.state = 3125; + this.expr(0); + this.state = 3126; + this.match(HiveSql.T_EQUAL); this.state = 3127; - this.match(HiveSqlParser.T_COMMA); - this.state = 3128; this.expr(0); - this.state = 3129; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3130; - this.expr(0); - this.state = 3136; + this.state = 3133; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3139; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3136; + this.match(HiveSql.T_CLOSE_P); break; case 14: this.enterOuterAlt(localctx, 14); - this.state = 3141; - this.match(HiveSqlParser.T_MIN_PART_DATE); - this.state = 3142; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3143; + this.state = 3138; + this.match(HiveSql.T_MIN_PART_DATE); + this.state = 3139; + this.match(HiveSql.T_OPEN_P); + this.state = 3140; this.expr(0); - this.state = 3156; + this.state = 3153; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3144; - this.match(HiveSqlParser.T_COMMA); - this.state = 3145; + if(_la===HiveSql.T_COMMA) { + this.state = 3141; + this.match(HiveSql.T_COMMA); + this.state = 3142; this.expr(0); - this.state = 3153; + this.state = 3150; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3143; + this.match(HiveSql.T_COMMA); + this.state = 3144; + this.expr(0); + this.state = 3145; + this.match(HiveSql.T_EQUAL); this.state = 3146; - this.match(HiveSqlParser.T_COMMA); - this.state = 3147; this.expr(0); - this.state = 3148; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3149; - this.expr(0); - this.state = 3155; + this.state = 3152; this._errHandler.sync(this); _la = this._input.LA(1); } } - this.state = 3158; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3155; + this.match(HiveSql.T_CLOSE_P); break; case 15: this.enterOuterAlt(localctx, 15); - this.state = 3160; - this.match(HiveSqlParser.T_PART_COUNT); - this.state = 3161; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3162; + this.state = 3157; + this.match(HiveSql.T_PART_COUNT); + this.state = 3158; + this.match(HiveSql.T_OPEN_P); + this.state = 3159; this.expr(0); - this.state = 3170; + this.state = 3167; this._errHandler.sync(this); _la = this._input.LA(1); - while(_la===HiveSqlParser.T_COMMA) { + while(_la===HiveSql.T_COMMA) { + this.state = 3160; + this.match(HiveSql.T_COMMA); + this.state = 3161; + this.expr(0); + this.state = 3162; + this.match(HiveSql.T_EQUAL); this.state = 3163; - this.match(HiveSqlParser.T_COMMA); - this.state = 3164; this.expr(0); - this.state = 3165; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3166; - this.expr(0); - this.state = 3172; + this.state = 3169; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 3173; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3170; + this.match(HiveSql.T_CLOSE_P); break; case 16: this.enterOuterAlt(localctx, 16); - this.state = 3175; - this.match(HiveSqlParser.T_PART_LOC); - this.state = 3176; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3177; + this.state = 3172; + this.match(HiveSql.T_PART_LOC); + this.state = 3173; + this.match(HiveSql.T_OPEN_P); + this.state = 3174; this.expr(0); - this.state = 3183; + this.state = 3180; this._errHandler.sync(this); var _alt = 1; do { switch (_alt) { case 1: - this.state = 3178; - this.match(HiveSqlParser.T_COMMA); - this.state = 3179; + this.state = 3175; + this.match(HiveSql.T_COMMA); + this.state = 3176; this.expr(0); - this.state = 3180; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3181; + this.state = 3177; + this.match(HiveSql.T_EQUAL); + this.state = 3178; this.expr(0); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3185; + this.state = 3182; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,400, this._ctx); } while ( _alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER ); - this.state = 3189; + this.state = 3186; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_COMMA) { - this.state = 3187; - this.match(HiveSqlParser.T_COMMA); - this.state = 3188; + if(_la===HiveSql.T_COMMA) { + this.state = 3184; + this.match(HiveSql.T_COMMA); + this.state = 3185; this.expr(0); } - this.state = 3191; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3188; + this.match(HiveSql.T_CLOSE_P); break; case 17: this.enterOuterAlt(localctx, 17); - this.state = 3193; - this.match(HiveSqlParser.T_TRIM); - this.state = 3194; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3195; + this.state = 3190; + this.match(HiveSql.T_TRIM); + this.state = 3191; + this.match(HiveSql.T_OPEN_P); + this.state = 3192; this.expr(0); - this.state = 3196; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3193; + this.match(HiveSql.T_CLOSE_P); break; case 18: this.enterOuterAlt(localctx, 18); + this.state = 3195; + this.match(HiveSql.T_SUBSTRING); + this.state = 3196; + this.match(HiveSql.T_OPEN_P); + this.state = 3197; + this.expr(0); this.state = 3198; - this.match(HiveSqlParser.T_SUBSTRING); + this.match(HiveSql.T_FROM); this.state = 3199; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3200; this.expr(0); - this.state = 3201; - this.match(HiveSqlParser.T_FROM); this.state = 3202; - this.expr(0); - this.state = 3205; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_FOR) { - this.state = 3203; - this.match(HiveSqlParser.T_FOR); - this.state = 3204; + if(_la===HiveSql.T_FOR) { + this.state = 3200; + this.match(HiveSql.T_FOR); + this.state = 3201; this.expr(0); } - this.state = 3207; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3204; + this.match(HiveSql.T_CLOSE_P); break; case 19: this.enterOuterAlt(localctx, 19); - this.state = 3209; - this.match(HiveSqlParser.T_SYSDATE); + this.state = 3206; + this.match(HiveSql.T_SYSDATE); break; case 20: this.enterOuterAlt(localctx, 20); - this.state = 3210; - this.match(HiveSqlParser.T_USER); + this.state = 3207; + this.match(HiveSql.T_USER); break; } @@ -33243,7 +33302,7 @@ function Expr_funcContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func; + this.ruleIndex = HiveSql.RULE_expr_func; return this; } @@ -33255,11 +33314,11 @@ Expr_funcContext.prototype.ident = function() { }; Expr_funcContext.prototype.T_OPEN_P = function() { - return this.getToken(HiveSqlParser.T_OPEN_P, 0); + return this.getToken(HiveSql.T_OPEN_P, 0); }; Expr_funcContext.prototype.T_CLOSE_P = function() { - return this.getToken(HiveSqlParser.T_CLOSE_P, 0); + return this.getToken(HiveSql.T_CLOSE_P, 0); }; Expr_funcContext.prototype.expr_func_params = function() { @@ -33289,28 +33348,28 @@ Expr_funcContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_funcContext = Expr_funcContext; +HiveSql.Expr_funcContext = Expr_funcContext; -HiveSqlParser.prototype.expr_func = function() { +HiveSql.prototype.expr_func = function() { var localctx = new Expr_funcContext(this, this._ctx, this.state); - this.enterRule(localctx, 412, HiveSqlParser.RULE_expr_func); + this.enterRule(localctx, 412, HiveSql.RULE_expr_func); try { this.enterOuterAlt(localctx, 1); - this.state = 3213; + this.state = 3210; this.ident(); - this.state = 3214; - this.match(HiveSqlParser.T_OPEN_P); - this.state = 3216; + this.state = 3211; + this.match(HiveSql.T_OPEN_P); + this.state = 3213; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,404,this._ctx); if(la_===1) { - this.state = 3215; + this.state = 3212; this.expr_func_params(); } - this.state = 3218; - this.match(HiveSqlParser.T_CLOSE_P); + this.state = 3215; + this.match(HiveSql.T_CLOSE_P); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -33335,7 +33394,7 @@ function Expr_func_paramsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_func_params; + this.ruleIndex = HiveSql.RULE_expr_func_params; return this; } @@ -33358,9 +33417,9 @@ Expr_func_paramsContext.prototype.T_COMMA = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.T_COMMA); + return this.getTokens(HiveSql.T_COMMA); } else { - return this.getToken(HiveSqlParser.T_COMMA, i); + return this.getToken(HiveSql.T_COMMA, i); } }; @@ -33388,27 +33447,27 @@ Expr_func_paramsContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_func_paramsContext = Expr_func_paramsContext; +HiveSql.Expr_func_paramsContext = Expr_func_paramsContext; -HiveSqlParser.prototype.expr_func_params = function() { +HiveSql.prototype.expr_func_params = function() { var localctx = new Expr_func_paramsContext(this, this._ctx, this.state); - this.enterRule(localctx, 414, HiveSqlParser.RULE_expr_func_params); + this.enterRule(localctx, 414, HiveSql.RULE_expr_func_params); try { this.enterOuterAlt(localctx, 1); - this.state = 3220; + this.state = 3217; this.func_param(); - this.state = 3225; + this.state = 3222; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,405,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3221; - this.match(HiveSqlParser.T_COMMA); - this.state = 3222; + this.state = 3218; + this.match(HiveSql.T_COMMA); + this.state = 3219; this.func_param(); } - this.state = 3227; + this.state = 3224; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,405,this._ctx); } @@ -33437,7 +33496,7 @@ function Func_paramContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_func_param; + this.ruleIndex = HiveSql.RULE_func_param; return this; } @@ -33453,11 +33512,11 @@ Func_paramContext.prototype.ident = function() { }; Func_paramContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Func_paramContext.prototype.T_GREATER = function() { - return this.getToken(HiveSqlParser.T_GREATER, 0); + return this.getToken(HiveSql.T_GREATER, 0); }; Func_paramContext.prototype.enterRule = function(listener) { @@ -33483,38 +33542,38 @@ Func_paramContext.prototype.accept = function(visitor) { -HiveSqlParser.Func_paramContext = Func_paramContext; +HiveSql.Func_paramContext = Func_paramContext; -HiveSqlParser.prototype.func_param = function() { +HiveSql.prototype.func_param = function() { var localctx = new Func_paramContext(this, this._ctx, this.state); - this.enterRule(localctx, 416, HiveSqlParser.RULE_func_param); + this.enterRule(localctx, 416, HiveSql.RULE_func_param); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3228; - if (!( !this._input.LT(1).getText().equalsIgnoreCase("INTO"))) { - throw new antlr4.error.FailedPredicateException(this, "!this._input.LT(1).getText().equalsIgnoreCase(\"INTO\")"); + this.state = 3225; + if (!( this._input.LT(1).text.toUpperCase() !== "INTO")) { + throw new antlr4.error.FailedPredicateException(this, "this._input.LT(1).text.toUpperCase() !== \"INTO\""); } - this.state = 3234; + this.state = 3231; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,407,this._ctx); if(la_===1) { - this.state = 3229; + this.state = 3226; this.ident(); - this.state = 3230; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3232; + this.state = 3227; + this.match(HiveSql.T_EQUAL); + this.state = 3229; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T_GREATER) { - this.state = 3231; - this.match(HiveSqlParser.T_GREATER); + if(_la===HiveSql.T_GREATER) { + this.state = 3228; + this.match(HiveSql.T_GREATER); } } - this.state = 3236; + this.state = 3233; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -33540,7 +33599,7 @@ function Expr_selectContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_select; + this.ruleIndex = HiveSql.RULE_expr_select; return this; } @@ -33578,26 +33637,26 @@ Expr_selectContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_selectContext = Expr_selectContext; +HiveSql.Expr_selectContext = Expr_selectContext; -HiveSqlParser.prototype.expr_select = function() { +HiveSql.prototype.expr_select = function() { var localctx = new Expr_selectContext(this, this._ctx, this.state); - this.enterRule(localctx, 418, HiveSqlParser.RULE_expr_select); + this.enterRule(localctx, 418, HiveSql.RULE_expr_select); try { - this.state = 3240; + this.state = 3237; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,408,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3238; + this.state = 3235; this.select_stmt(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3239; + this.state = 3236; this.expr(0); break; @@ -33626,7 +33685,7 @@ function Expr_fileContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_expr_file; + this.ruleIndex = HiveSql.RULE_expr_file; return this; } @@ -33664,26 +33723,26 @@ Expr_fileContext.prototype.accept = function(visitor) { -HiveSqlParser.Expr_fileContext = Expr_fileContext; +HiveSql.Expr_fileContext = Expr_fileContext; -HiveSqlParser.prototype.expr_file = function() { +HiveSql.prototype.expr_file = function() { var localctx = new Expr_fileContext(this, this._ctx, this.state); - this.enterRule(localctx, 420, HiveSqlParser.RULE_expr_file); + this.enterRule(localctx, 420, HiveSql.RULE_expr_file); try { - this.state = 3244; + this.state = 3241; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,409,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3242; + this.state = 3239; this.file_name(); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3243; + this.state = 3240; this.expr(0); break; @@ -33712,7 +33771,7 @@ function HiveContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_hive; + this.ruleIndex = HiveSql.RULE_hive; return this; } @@ -33720,7 +33779,7 @@ HiveContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); HiveContext.prototype.constructor = HiveContext; HiveContext.prototype.T_HIVE = function() { - return this.getToken(HiveSqlParser.T_HIVE, 0); + return this.getToken(HiveSql.T_HIVE, 0); }; HiveContext.prototype.hive_item = function(i) { @@ -33757,25 +33816,25 @@ HiveContext.prototype.accept = function(visitor) { -HiveSqlParser.HiveContext = HiveContext; +HiveSql.HiveContext = HiveContext; -HiveSqlParser.prototype.hive = function() { +HiveSql.prototype.hive = function() { var localctx = new HiveContext(this, this._ctx, this.state); - this.enterRule(localctx, 422, HiveSqlParser.RULE_hive); + this.enterRule(localctx, 422, HiveSql.RULE_hive); try { this.enterOuterAlt(localctx, 1); - this.state = 3246; - this.match(HiveSqlParser.T_HIVE); - this.state = 3250; + this.state = 3243; + this.match(HiveSql.T_HIVE); + this.state = 3247; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,410,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3247; + this.state = 3244; this.hive_item(); } - this.state = 3252; + this.state = 3249; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,410,this._ctx); } @@ -33804,7 +33863,7 @@ function Hive_itemContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_hive_item; + this.ruleIndex = HiveSql.RULE_hive_item; return this; } @@ -33812,7 +33871,7 @@ Hive_itemContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Hive_itemContext.prototype.constructor = Hive_itemContext; Hive_itemContext.prototype.T_SUB = function() { - return this.getToken(HiveSqlParser.T_SUB, 0); + return this.getToken(HiveSql.T_SUB, 0); }; Hive_itemContext.prototype.ident = function() { @@ -33824,11 +33883,11 @@ Hive_itemContext.prototype.expr = function() { }; Hive_itemContext.prototype.L_ID = function() { - return this.getToken(HiveSqlParser.L_ID, 0); + return this.getToken(HiveSql.L_ID, 0); }; Hive_itemContext.prototype.T_EQUAL = function() { - return this.getToken(HiveSqlParser.T_EQUAL, 0); + return this.getToken(HiveSql.T_EQUAL, 0); }; Hive_itemContext.prototype.enterRule = function(listener) { @@ -33854,46 +33913,46 @@ Hive_itemContext.prototype.accept = function(visitor) { -HiveSqlParser.Hive_itemContext = Hive_itemContext; +HiveSql.Hive_itemContext = Hive_itemContext; -HiveSqlParser.prototype.hive_item = function() { +HiveSql.prototype.hive_item = function() { var localctx = new Hive_itemContext(this, this._ctx, this.state); - this.enterRule(localctx, 424, HiveSqlParser.RULE_hive_item); + this.enterRule(localctx, 424, HiveSql.RULE_hive_item); try { - this.state = 3265; + this.state = 3262; this._errHandler.sync(this); var la_ = this._interp.adaptivePredict(this._input,411,this._ctx); switch(la_) { case 1: this.enterOuterAlt(localctx, 1); - this.state = 3253; - this.match(HiveSqlParser.T_SUB); - this.state = 3254; + this.state = 3250; + this.match(HiveSql.T_SUB); + this.state = 3251; this.ident(); - this.state = 3255; + this.state = 3252; this.expr(0); break; case 2: this.enterOuterAlt(localctx, 2); - this.state = 3257; - this.match(HiveSqlParser.T_SUB); - this.state = 3258; + this.state = 3254; + this.match(HiveSql.T_SUB); + this.state = 3255; this.ident(); - this.state = 3259; - this.match(HiveSqlParser.L_ID); - this.state = 3260; - this.match(HiveSqlParser.T_EQUAL); - this.state = 3261; + this.state = 3256; + this.match(HiveSql.L_ID); + this.state = 3257; + this.match(HiveSql.T_EQUAL); + this.state = 3258; this.expr(0); break; case 3: this.enterOuterAlt(localctx, 3); - this.state = 3263; - this.match(HiveSqlParser.T_SUB); - this.state = 3264; + this.state = 3260; + this.match(HiveSql.T_SUB); + this.state = 3261; this.ident(); break; @@ -33922,17 +33981,25 @@ function HostContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host; + this.ruleIndex = HiveSql.RULE_host; return this; } HostContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); HostContext.prototype.constructor = HostContext; +HostContext.prototype.T_NOTE = function() { + return this.getToken(HiveSql.T_NOTE, 0); +}; + HostContext.prototype.host_cmd = function() { return this.getTypedRuleContext(Host_cmdContext,0); }; +HostContext.prototype.T_SEMICOLON = function() { + return this.getToken(HiveSql.T_SEMICOLON, 0); +}; + HostContext.prototype.host_stmt = function() { return this.getTypedRuleContext(Host_stmtContext,0); }; @@ -33960,28 +34027,28 @@ HostContext.prototype.accept = function(visitor) { -HiveSqlParser.HostContext = HostContext; +HiveSql.HostContext = HostContext; -HiveSqlParser.prototype.host = function() { +HiveSql.prototype.host = function() { var localctx = new HostContext(this, this._ctx, this.state); - this.enterRule(localctx, 426, HiveSqlParser.RULE_host); + this.enterRule(localctx, 426, HiveSql.RULE_host); try { - this.state = 3272; + this.state = 3269; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.T__6: + case HiveSql.T_NOTE: this.enterOuterAlt(localctx, 1); - this.state = 3267; - this.match(HiveSqlParser.T__6); - this.state = 3268; + this.state = 3264; + this.match(HiveSql.T_NOTE); + this.state = 3265; this.host_cmd(); - this.state = 3269; - this.match(HiveSqlParser.T__7); + this.state = 3266; + this.match(HiveSql.T_SEMICOLON); break; - case HiveSqlParser.T_HOST: + case HiveSql.T_HOST: this.enterOuterAlt(localctx, 2); - this.state = 3271; + this.state = 3268; this.host_stmt(); break; default: @@ -34011,7 +34078,7 @@ function Host_cmdContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host_cmd; + this.ruleIndex = HiveSql.RULE_host_cmd; return this; } @@ -34042,23 +34109,23 @@ Host_cmdContext.prototype.accept = function(visitor) { -HiveSqlParser.Host_cmdContext = Host_cmdContext; +HiveSql.Host_cmdContext = Host_cmdContext; -HiveSqlParser.prototype.host_cmd = function() { +HiveSql.prototype.host_cmd = function() { var localctx = new Host_cmdContext(this, this._ctx, this.state); - this.enterRule(localctx, 428, HiveSqlParser.RULE_host_cmd); + this.enterRule(localctx, 428, HiveSql.RULE_host_cmd); try { this.enterOuterAlt(localctx, 1); - this.state = 3277; + this.state = 3274; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,413,this._ctx) while(_alt!=1 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1+1) { - this.state = 3274; + this.state = 3271; this.matchWildcard(); } - this.state = 3279; + this.state = 3276; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,413,this._ctx); } @@ -34087,7 +34154,7 @@ function Host_stmtContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_host_stmt; + this.ruleIndex = HiveSql.RULE_host_stmt; return this; } @@ -34095,7 +34162,7 @@ Host_stmtContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Host_stmtContext.prototype.constructor = Host_stmtContext; Host_stmtContext.prototype.T_HOST = function() { - return this.getToken(HiveSqlParser.T_HOST, 0); + return this.getToken(HiveSql.T_HOST, 0); }; Host_stmtContext.prototype.expr = function() { @@ -34125,17 +34192,17 @@ Host_stmtContext.prototype.accept = function(visitor) { -HiveSqlParser.Host_stmtContext = Host_stmtContext; +HiveSql.Host_stmtContext = Host_stmtContext; -HiveSqlParser.prototype.host_stmt = function() { +HiveSql.prototype.host_stmt = function() { var localctx = new Host_stmtContext(this, this._ctx, this.state); - this.enterRule(localctx, 430, HiveSqlParser.RULE_host_stmt); + this.enterRule(localctx, 430, HiveSql.RULE_host_stmt); try { this.enterOuterAlt(localctx, 1); - this.state = 3280; - this.match(HiveSqlParser.T_HOST); - this.state = 3281; + this.state = 3277; + this.match(HiveSql.T_HOST); + this.state = 3278; this.expr(0); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -34161,7 +34228,7 @@ function File_nameContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_file_name; + this.ruleIndex = HiveSql.RULE_file_name; return this; } @@ -34169,7 +34236,7 @@ File_nameContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); File_nameContext.prototype.constructor = File_nameContext; File_nameContext.prototype.L_FILE = function() { - return this.getToken(HiveSqlParser.L_FILE, 0); + return this.getToken(HiveSql.L_FILE, 0); }; File_nameContext.prototype.ident = function(i) { @@ -34183,6 +34250,22 @@ File_nameContext.prototype.ident = function(i) { } }; +File_nameContext.prototype.T_DIV = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(HiveSql.T_DIV); + } else { + return this.getToken(HiveSql.T_DIV, i); + } +}; + + +File_nameContext.prototype.T_DOT = function() { + return this.getToken(HiveSql.T_DOT, 0); +}; + File_nameContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { listener.enterFile_name(this); @@ -34206,694 +34289,692 @@ File_nameContext.prototype.accept = function(visitor) { -HiveSqlParser.File_nameContext = File_nameContext; +HiveSql.File_nameContext = File_nameContext; -HiveSqlParser.prototype.file_name = function() { +HiveSql.prototype.file_name = function() { var localctx = new File_nameContext(this, this._ctx, this.state); - this.enterRule(localctx, 432, HiveSqlParser.RULE_file_name); + this.enterRule(localctx, 432, HiveSql.RULE_file_name); try { - this.state = 3297; + this.state = 3294; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_FILE: + case HiveSql.L_FILE: this.enterOuterAlt(localctx, 1); - this.state = 3283; - this.match(HiveSqlParser.L_FILE); + this.state = 3280; + this.match(HiveSql.L_FILE); break; - case HiveSqlParser.T__2: - case HiveSqlParser.T__4: - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.T_DIV: + case HiveSql.T_DOT: + case HiveSql.L_ID: this.enterOuterAlt(localctx, 2); - this.state = 3287; + this.state = 3284; this._errHandler.sync(this); switch (this._input.LA(1)) { - case HiveSqlParser.T__2: - this.state = 3284; - this.match(HiveSqlParser.T__2); + case HiveSql.T_DIV: + this.state = 3281; + this.match(HiveSql.T_DIV); break; - case HiveSqlParser.T__4: - this.state = 3285; - this.match(HiveSqlParser.T__4); - this.state = 3286; - this.match(HiveSqlParser.T__2); + case HiveSql.T_DOT: + this.state = 3282; + this.match(HiveSql.T_DOT); + this.state = 3283; + this.match(HiveSql.T_DIV); break; - case HiveSqlParser.T__8: - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.L_ID: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + case HiveSql.L_ID: break; default: break; } - this.state = 3289; + this.state = 3286; this.ident(); - this.state = 3294; + this.state = 3291; this._errHandler.sync(this); var _alt = this._interp.adaptivePredict(this._input,415,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3290; - this.match(HiveSqlParser.T__2); - this.state = 3291; + this.state = 3287; + this.match(HiveSql.T_DIV); + this.state = 3288; this.ident(); } - this.state = 3296; + this.state = 3293; this._errHandler.sync(this); _alt = this._interp.adaptivePredict(this._input,415,this._ctx); } @@ -34926,7 +35007,7 @@ function Date_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_date_literal; + this.ruleIndex = HiveSql.RULE_date_literal; return this; } @@ -34934,7 +35015,7 @@ Date_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Date_literalContext.prototype.constructor = Date_literalContext; Date_literalContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Date_literalContext.prototype.string = function() { @@ -34964,17 +35045,17 @@ Date_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Date_literalContext = Date_literalContext; +HiveSql.Date_literalContext = Date_literalContext; -HiveSqlParser.prototype.date_literal = function() { +HiveSql.prototype.date_literal = function() { var localctx = new Date_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 434, HiveSqlParser.RULE_date_literal); + this.enterRule(localctx, 434, HiveSql.RULE_date_literal); try { this.enterOuterAlt(localctx, 1); - this.state = 3299; - this.match(HiveSqlParser.T_DATE); - this.state = 3300; + this.state = 3296; + this.match(HiveSql.T_DATE); + this.state = 3297; this.string(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -35000,7 +35081,7 @@ function Timestamp_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_timestamp_literal; + this.ruleIndex = HiveSql.RULE_timestamp_literal; return this; } @@ -35008,7 +35089,7 @@ Timestamp_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prot Timestamp_literalContext.prototype.constructor = Timestamp_literalContext; Timestamp_literalContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Timestamp_literalContext.prototype.string = function() { @@ -35038,17 +35119,17 @@ Timestamp_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Timestamp_literalContext = Timestamp_literalContext; +HiveSql.Timestamp_literalContext = Timestamp_literalContext; -HiveSqlParser.prototype.timestamp_literal = function() { +HiveSql.prototype.timestamp_literal = function() { var localctx = new Timestamp_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 436, HiveSqlParser.RULE_timestamp_literal); + this.enterRule(localctx, 436, HiveSql.RULE_timestamp_literal); try { this.enterOuterAlt(localctx, 1); - this.state = 3302; - this.match(HiveSqlParser.T_TIMESTAMP); - this.state = 3303; + this.state = 3299; + this.match(HiveSql.T_TIMESTAMP); + this.state = 3300; this.string(); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { @@ -35074,7 +35155,7 @@ function IdentContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_ident; + this.ruleIndex = HiveSql.RULE_ident; return this; } @@ -35086,9 +35167,9 @@ IdentContext.prototype.L_ID = function(i) { i = null; } if(i===null) { - return this.getTokens(HiveSqlParser.L_ID); + return this.getTokens(HiveSql.L_ID); } else { - return this.getToken(HiveSqlParser.L_ID, i); + return this.getToken(HiveSql.L_ID, i); } }; @@ -35104,6 +35185,18 @@ IdentContext.prototype.non_reserved_words = function(i) { } }; +IdentContext.prototype.T_DOT = function(i) { + if(i===undefined) { + i = null; + } + if(i===null) { + return this.getTokens(HiveSql.T_DOT); + } else { + return this.getToken(HiveSql.T_DOT, i); + } +}; + + IdentContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { listener.enterIdent(this); @@ -35127,696 +35220,687 @@ IdentContext.prototype.accept = function(visitor) { -HiveSqlParser.IdentContext = IdentContext; +HiveSql.IdentContext = IdentContext; -HiveSqlParser.prototype.ident = function() { +HiveSql.prototype.ident = function() { var localctx = new IdentContext(this, this._ctx, this.state); - this.enterRule(localctx, 438, HiveSqlParser.RULE_ident); - var _la = 0; // Token type + this.enterRule(localctx, 438, HiveSql.RULE_ident); try { this.enterOuterAlt(localctx, 1); - this.state = 3306; - this._errHandler.sync(this); - _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8) { - this.state = 3305; - this.match(HiveSqlParser.T__8); - } - - this.state = 3310; + this.state = 3304; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_ID: - this.state = 3308; - this.match(HiveSqlParser.L_ID); + case HiveSql.L_ID: + this.state = 3302; + this.match(HiveSql.L_ID); break; - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3309; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + this.state = 3303; this.non_reserved_words(); break; default: throw new antlr4.error.NoViableAltException(this); } - this.state = 3319; + this.state = 3313; this._errHandler.sync(this); - var _alt = this._interp.adaptivePredict(this._input,420,this._ctx) + var _alt = this._interp.adaptivePredict(this._input,419,this._ctx) while(_alt!=2 && _alt!=antlr4.atn.ATN.INVALID_ALT_NUMBER) { if(_alt===1) { - this.state = 3312; - this.match(HiveSqlParser.T__4); - this.state = 3315; + this.state = 3306; + this.match(HiveSql.T_DOT); + this.state = 3309; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_ID: - this.state = 3313; - this.match(HiveSqlParser.L_ID); + case HiveSql.L_ID: + this.state = 3307; + this.match(HiveSql.L_ID); break; - case HiveSqlParser.T_GO: - case HiveSqlParser.T_BEGIN: - case HiveSqlParser.T_EXCEPTION: - case HiveSqlParser.T_THEN: - case HiveSqlParser.T_SET: - case HiveSqlParser.T_ALLOCATE: - case HiveSqlParser.T_CURSOR: - case HiveSqlParser.T_FOR: - case HiveSqlParser.T_RESULT: - case HiveSqlParser.T_PROCEDURE: - case HiveSqlParser.T_ASSOCIATE: - case HiveSqlParser.T_LOCATOR: - case HiveSqlParser.T_LOCATORS: - case HiveSqlParser.T_WITH: - case HiveSqlParser.T_TRANSACTION: - case HiveSqlParser.T_BREAK: - case HiveSqlParser.T_CALL: - case HiveSqlParser.T_DECLARE: - case HiveSqlParser.T_AS: - case HiveSqlParser.T_CONSTANT: - case HiveSqlParser.T_CONDITION: - case HiveSqlParser.T_IS: - case HiveSqlParser.T_RETURN: - case HiveSqlParser.T_ONLY: - case HiveSqlParser.T_TO: - case HiveSqlParser.T_CALLER: - case HiveSqlParser.T_CLIENT: - case HiveSqlParser.T_WITHOUT: - case HiveSqlParser.T_CONTINUE: - case HiveSqlParser.T_EXIT: - case HiveSqlParser.T_HANDLER: - case HiveSqlParser.T_SQLEXCEPTION: - case HiveSqlParser.T_SQLWARNING: - case HiveSqlParser.T_NOT: - case HiveSqlParser.T_FOUND: - case HiveSqlParser.T_GLOBAL: - case HiveSqlParser.T_TEMPORARY: - case HiveSqlParser.T_TABLE: - case HiveSqlParser.T_CREATE: - case HiveSqlParser.T_IF: - case HiveSqlParser.T_EXISTS: - case HiveSqlParser.T_LOCAL: - case HiveSqlParser.T_MULTISET: - case HiveSqlParser.T_VOLATILE: - case HiveSqlParser.T_LIKE: - case HiveSqlParser.T_CONSTRAINT: - case HiveSqlParser.T_PRIMARY: - case HiveSqlParser.T_KEY: - case HiveSqlParser.T_UNIQUE: - case HiveSqlParser.T_REFERENCES: - case HiveSqlParser.T_IDENTITY: - case HiveSqlParser.T_AUTO_INCREMENT: - case HiveSqlParser.T_ENABLE: - case HiveSqlParser.T_CLUSTERED: - case HiveSqlParser.T_ASC: - case HiveSqlParser.T_DESC: - case HiveSqlParser.T_FOREIGN: - case HiveSqlParser.T_ON: - case HiveSqlParser.T_UPDATE: - case HiveSqlParser.T_DELETE: - case HiveSqlParser.T_NO: - case HiveSqlParser.T_ACTION: - case HiveSqlParser.T_RESTRICT: - case HiveSqlParser.T_DEFAULT: - case HiveSqlParser.T_CASCADE: - case HiveSqlParser.T_LOG: - case HiveSqlParser.T_FALLBACK: - case HiveSqlParser.T_COMMIT: - case HiveSqlParser.T_PRESERVE: - case HiveSqlParser.T_ROWS: - case HiveSqlParser.T_SEGMENT: - case HiveSqlParser.T_CREATION: - case HiveSqlParser.T_IMMEDIATE: - case HiveSqlParser.T_DEFERRED: - case HiveSqlParser.T_PCTFREE: - case HiveSqlParser.T_PCTUSED: - case HiveSqlParser.T_INITRANS: - case HiveSqlParser.T_MAXTRANS: - case HiveSqlParser.T_NOCOMPRESS: - case HiveSqlParser.T_LOGGING: - case HiveSqlParser.T_NOLOGGING: - case HiveSqlParser.T_STORAGE: - case HiveSqlParser.T_TABLESPACE: - case HiveSqlParser.T_INDEX: - case HiveSqlParser.T_IN: - case HiveSqlParser.T_REPLACE: - case HiveSqlParser.T_DISTRIBUTE: - case HiveSqlParser.T_BY: - case HiveSqlParser.T_HASH: - case HiveSqlParser.T_LOGGED: - case HiveSqlParser.T_COMPRESS: - case HiveSqlParser.T_YES: - case HiveSqlParser.T_DEFINITION: - case HiveSqlParser.T_DROP: - case HiveSqlParser.T_DATA: - case HiveSqlParser.T_STORED: - case HiveSqlParser.T_ROW: - case HiveSqlParser.T_FORMAT: - case HiveSqlParser.T_DELIMITED: - case HiveSqlParser.T_FIELDS: - case HiveSqlParser.T_TERMINATED: - case HiveSqlParser.T_ESCAPED: - case HiveSqlParser.T_COLLECTION: - case HiveSqlParser.T_ITEMS: - case HiveSqlParser.T_MAP: - case HiveSqlParser.T_KEYS: - case HiveSqlParser.T_LINES: - case HiveSqlParser.T_DEFINED: - case HiveSqlParser.T_TEXTIMAGE_ON: - case HiveSqlParser.T_COMMENT: - case HiveSqlParser.T_CHARACTER: - case HiveSqlParser.T_CHARSET: - case HiveSqlParser.T_ENGINE: - case HiveSqlParser.T_ALTER: - case HiveSqlParser.T_ADD2: - case HiveSqlParser.T_CHAR: - case HiveSqlParser.T_BIGINT: - case HiveSqlParser.T_BINARY_DOUBLE: - case HiveSqlParser.T_BINARY_FLOAT: - case HiveSqlParser.T_BIT: - case HiveSqlParser.T_DATE: - case HiveSqlParser.T_DATETIME: - case HiveSqlParser.T_DEC: - case HiveSqlParser.T_DECIMAL: - case HiveSqlParser.T_DOUBLE: - case HiveSqlParser.T_PRECISION: - case HiveSqlParser.T_FLOAT: - case HiveSqlParser.T_INT: - case HiveSqlParser.T_INT2: - case HiveSqlParser.T_INT4: - case HiveSqlParser.T_INT8: - case HiveSqlParser.T_INTEGER: - case HiveSqlParser.T_NCHAR: - case HiveSqlParser.T_NVARCHAR: - case HiveSqlParser.T_NUMBER: - case HiveSqlParser.T_NUMERIC: - case HiveSqlParser.T_REAL: - case HiveSqlParser.T_RESULT_SET_LOCATOR: - case HiveSqlParser.T_VARYING: - case HiveSqlParser.T_SIMPLE_FLOAT: - case HiveSqlParser.T_SIMPLE_DOUBLE: - case HiveSqlParser.T_SMALLINT: - case HiveSqlParser.T_SMALLDATETIME: - case HiveSqlParser.T_STRING: - case HiveSqlParser.T_SYS_REFCURSOR: - case HiveSqlParser.T_TIMESTAMP: - case HiveSqlParser.T_VARCHAR: - case HiveSqlParser.T_VARCHAR2: - case HiveSqlParser.T_XML: - case HiveSqlParser.T_MAX: - case HiveSqlParser.T_BYTE: - case HiveSqlParser.T_CASESPECIFIC: - case HiveSqlParser.T_CS: - case HiveSqlParser.T_DATABASE: - case HiveSqlParser.T_SCHEMA: - case HiveSqlParser.T_LOCATION: - case HiveSqlParser.T_OR: - case HiveSqlParser.T_FUNCTION: - case HiveSqlParser.T_RETURNS: - case HiveSqlParser.T_PACKAGE: - case HiveSqlParser.T_PROC: - case HiveSqlParser.T_BODY: - case HiveSqlParser.T_OUT: - case HiveSqlParser.T_INOUT: - case HiveSqlParser.T_LANGUAGE: - case HiveSqlParser.T_SQL: - case HiveSqlParser.T_SECURITY: - case HiveSqlParser.T_CREATOR: - case HiveSqlParser.T_DEFINER: - case HiveSqlParser.T_INVOKER: - case HiveSqlParser.T_OWNER: - case HiveSqlParser.T_DYNAMIC: - case HiveSqlParser.T_SETS: - case HiveSqlParser.T_EXEC: - case HiveSqlParser.T_EXECUTE: - case HiveSqlParser.T_INTO: - case HiveSqlParser.T_INCLUDE: - case HiveSqlParser.T_INSERT: - case HiveSqlParser.T_OVERWRITE: - case HiveSqlParser.T_VALUES: - case HiveSqlParser.T_DIRECTORY: - case HiveSqlParser.T_GET: - case HiveSqlParser.T_DIAGNOSTICS: - case HiveSqlParser.T_MESSAGE_TEXT: - case HiveSqlParser.T_ROW_COUNT: - case HiveSqlParser.T_GRANT: - case HiveSqlParser.T_ROLE: - case HiveSqlParser.T_LEAVE: - case HiveSqlParser.T_OBJECT: - case HiveSqlParser.T_AT: - case HiveSqlParser.T_OPEN: - case HiveSqlParser.T_FETCH: - case HiveSqlParser.T_FROM: - case HiveSqlParser.T_COLLECT: - case HiveSqlParser.T_STATISTICS: - case HiveSqlParser.T_STATS: - case HiveSqlParser.T_COLUMN: - case HiveSqlParser.T_CLOSE: - case HiveSqlParser.T_CMP: - case HiveSqlParser.T_SUM: - case HiveSqlParser.T_COPY: - case HiveSqlParser.T_HDFS: - case HiveSqlParser.T_BATCHSIZE: - case HiveSqlParser.T_DELIMITER: - case HiveSqlParser.T_SQLINSERT: - case HiveSqlParser.T_IGNORE: - case HiveSqlParser.T_WORK: - case HiveSqlParser.T_PRINT: - case HiveSqlParser.T_QUIT: - case HiveSqlParser.T_RAISE: - case HiveSqlParser.T_RESIGNAL: - case HiveSqlParser.T_SQLSTATE: - case HiveSqlParser.T_VALUE: - case HiveSqlParser.T_ROLLBACK: - case HiveSqlParser.T_CURRENT: - case HiveSqlParser.T_CURRENT_SCHEMA: - case HiveSqlParser.T_ANSI_NULLS: - case HiveSqlParser.T_ANSI_PADDING: - case HiveSqlParser.T_NOCOUNT: - case HiveSqlParser.T_QUOTED_IDENTIFIER: - case HiveSqlParser.T_XACT_ABORT: - case HiveSqlParser.T_OFF: - case HiveSqlParser.T_QUERY_BAND: - case HiveSqlParser.T_NONE: - case HiveSqlParser.T_SESSION: - case HiveSqlParser.T_SIGNAL: - case HiveSqlParser.T_SUMMARY: - case HiveSqlParser.T_TOP: - case HiveSqlParser.T_LIMIT: - case HiveSqlParser.T_TRUNCATE: - case HiveSqlParser.T_USE: - case HiveSqlParser.T_WHILE: - case HiveSqlParser.T_DO: - case HiveSqlParser.T_LOOP: - case HiveSqlParser.T_REVERSE: - case HiveSqlParser.T_STEP: - case HiveSqlParser.T_USING: - case HiveSqlParser.T_ALL: - case HiveSqlParser.T_EXCEPT: - case HiveSqlParser.T_INTERSECT: - case HiveSqlParser.T_SELECT: - case HiveSqlParser.T_SEL: - case HiveSqlParser.T_DISTINCT: - case HiveSqlParser.T_TITLE: - case HiveSqlParser.T_INNER: - case HiveSqlParser.T_JOIN: - case HiveSqlParser.T_LEFT: - case HiveSqlParser.T_RIGHT: - case HiveSqlParser.T_FULL: - case HiveSqlParser.T_OUTER: - case HiveSqlParser.T_GROUP: - case HiveSqlParser.T_HAVING: - case HiveSqlParser.T_QUALIFY: - case HiveSqlParser.T_ORDER: - case HiveSqlParser.T_RR: - case HiveSqlParser.T_RS: - case HiveSqlParser.T_UR: - case HiveSqlParser.T_AND: - case HiveSqlParser.T_KEEP: - case HiveSqlParser.T_EXCLUSIVE: - case HiveSqlParser.T_SHARE: - case HiveSqlParser.T_LOCKS: - case HiveSqlParser.T_MERGE: - case HiveSqlParser.T_MATCHED: - case HiveSqlParser.T_DESCRIBE: - case HiveSqlParser.T_BETWEEN: - case HiveSqlParser.T_RLIKE: - case HiveSqlParser.T_REGEXP: - case HiveSqlParser.T_INTERVAL: - case HiveSqlParser.T_DAY: - case HiveSqlParser.T_DAYS: - case HiveSqlParser.T_MICROSECOND: - case HiveSqlParser.T_MICROSECONDS: - case HiveSqlParser.T_SECOND: - case HiveSqlParser.T_SECONDS: - case HiveSqlParser.T_CONCAT: - case HiveSqlParser.T_CASE: - case HiveSqlParser.T_ISOPEN: - case HiveSqlParser.T_NOTFOUND: - case HiveSqlParser.T_AVG: - case HiveSqlParser.T_COUNT: - case HiveSqlParser.T_COUNT_BIG: - case HiveSqlParser.T_CUME_DIST: - case HiveSqlParser.T_DENSE_RANK: - case HiveSqlParser.T_FIRST_VALUE: - case HiveSqlParser.T_LAG: - case HiveSqlParser.T_LAST_VALUE: - case HiveSqlParser.T_LEAD: - case HiveSqlParser.T_MIN: - case HiveSqlParser.T_RANK: - case HiveSqlParser.T_ROW_NUMBER: - case HiveSqlParser.T_STDEV: - case HiveSqlParser.T_VAR: - case HiveSqlParser.T_VARIANCE: - case HiveSqlParser.T_OVER: - case HiveSqlParser.T_PARTITION: - case HiveSqlParser.T_ACTIVITY_COUNT: - case HiveSqlParser.T_CAST: - case HiveSqlParser.T_CURRENT_DATE: - case HiveSqlParser.T_CURRENT_TIMESTAMP: - case HiveSqlParser.T_CURRENT_USER: - case HiveSqlParser.T_USER: - case HiveSqlParser.T_PART_COUNT: - case HiveSqlParser.T_PART_LOC: - case HiveSqlParser.T_TRIM: - case HiveSqlParser.T_SUBSTRING: - case HiveSqlParser.T_SYSDATE: - case HiveSqlParser.T_HIVE: - case HiveSqlParser.T_HOST: - case HiveSqlParser.T_TRUE: - case HiveSqlParser.T_FALSE: - case HiveSqlParser.T_DIR: - case HiveSqlParser.T_FILE: - case HiveSqlParser.T_FILES: - case HiveSqlParser.T_NEW: - case HiveSqlParser.T_PWD: - case HiveSqlParser.T_SESSIONS: - case HiveSqlParser.T_SUBDIR: - this.state = 3314; + case HiveSql.T_ACTION: + case HiveSql.T_ADD2: + case HiveSql.T_ALL: + case HiveSql.T_ALLOCATE: + case HiveSql.T_ALTER: + case HiveSql.T_AND: + case HiveSql.T_ANSI_NULLS: + case HiveSql.T_ANSI_PADDING: + case HiveSql.T_AS: + case HiveSql.T_ASC: + case HiveSql.T_ASSOCIATE: + case HiveSql.T_AT: + case HiveSql.T_AUTO_INCREMENT: + case HiveSql.T_AVG: + case HiveSql.T_BATCHSIZE: + case HiveSql.T_BEGIN: + case HiveSql.T_BETWEEN: + case HiveSql.T_BIGINT: + case HiveSql.T_BINARY_DOUBLE: + case HiveSql.T_BINARY_FLOAT: + case HiveSql.T_BIT: + case HiveSql.T_BODY: + case HiveSql.T_BREAK: + case HiveSql.T_BY: + case HiveSql.T_BYTE: + case HiveSql.T_CALL: + case HiveSql.T_CALLER: + case HiveSql.T_CASCADE: + case HiveSql.T_CASE: + case HiveSql.T_CASESPECIFIC: + case HiveSql.T_CAST: + case HiveSql.T_CHAR: + case HiveSql.T_CHARACTER: + case HiveSql.T_CHARSET: + case HiveSql.T_CLIENT: + case HiveSql.T_CLOSE: + case HiveSql.T_CLUSTERED: + case HiveSql.T_CMP: + case HiveSql.T_COLLECT: + case HiveSql.T_COLLECTION: + case HiveSql.T_COLUMN: + case HiveSql.T_COMMENT: + case HiveSql.T_CONSTANT: + case HiveSql.T_COMMIT: + case HiveSql.T_COMPRESS: + case HiveSql.T_CONCAT: + case HiveSql.T_CONDITION: + case HiveSql.T_CONSTRAINT: + case HiveSql.T_CONTINUE: + case HiveSql.T_COPY: + case HiveSql.T_COUNT: + case HiveSql.T_COUNT_BIG: + case HiveSql.T_CREATE: + case HiveSql.T_CREATION: + case HiveSql.T_CREATOR: + case HiveSql.T_CS: + case HiveSql.T_CURRENT: + case HiveSql.T_CURRENT_SCHEMA: + case HiveSql.T_CURSOR: + case HiveSql.T_DATABASE: + case HiveSql.T_DATA: + case HiveSql.T_DATE: + case HiveSql.T_DATETIME: + case HiveSql.T_DAY: + case HiveSql.T_DAYS: + case HiveSql.T_DEC: + case HiveSql.T_DECIMAL: + case HiveSql.T_DECLARE: + case HiveSql.T_DEFAULT: + case HiveSql.T_DEFERRED: + case HiveSql.T_DEFINED: + case HiveSql.T_DEFINER: + case HiveSql.T_DEFINITION: + case HiveSql.T_DELETE: + case HiveSql.T_DELIMITED: + case HiveSql.T_DELIMITER: + case HiveSql.T_DESC: + case HiveSql.T_DESCRIBE: + case HiveSql.T_DIAGNOSTICS: + case HiveSql.T_DIR: + case HiveSql.T_DIRECTORY: + case HiveSql.T_DISTINCT: + case HiveSql.T_DISTRIBUTE: + case HiveSql.T_DO: + case HiveSql.T_DOUBLE: + case HiveSql.T_DROP: + case HiveSql.T_DYNAMIC: + case HiveSql.T_ENABLE: + case HiveSql.T_ENGINE: + case HiveSql.T_ESCAPED: + case HiveSql.T_EXCEPT: + case HiveSql.T_EXEC: + case HiveSql.T_EXECUTE: + case HiveSql.T_EXCEPTION: + case HiveSql.T_EXCLUSIVE: + case HiveSql.T_EXISTS: + case HiveSql.T_EXIT: + case HiveSql.T_FALLBACK: + case HiveSql.T_FALSE: + case HiveSql.T_FETCH: + case HiveSql.T_FIELDS: + case HiveSql.T_FILE: + case HiveSql.T_FILES: + case HiveSql.T_FLOAT: + case HiveSql.T_FOR: + case HiveSql.T_FOREIGN: + case HiveSql.T_FORMAT: + case HiveSql.T_FOUND: + case HiveSql.T_FROM: + case HiveSql.T_FULL: + case HiveSql.T_FUNCTION: + case HiveSql.T_GET: + case HiveSql.T_GLOBAL: + case HiveSql.T_GO: + case HiveSql.T_GRANT: + case HiveSql.T_GROUP: + case HiveSql.T_HANDLER: + case HiveSql.T_HASH: + case HiveSql.T_HAVING: + case HiveSql.T_HDFS: + case HiveSql.T_HIVE: + case HiveSql.T_HOST: + case HiveSql.T_IDENTITY: + case HiveSql.T_IF: + case HiveSql.T_IGNORE: + case HiveSql.T_IMMEDIATE: + case HiveSql.T_IN: + case HiveSql.T_INCLUDE: + case HiveSql.T_INDEX: + case HiveSql.T_INITRANS: + case HiveSql.T_INNER: + case HiveSql.T_INOUT: + case HiveSql.T_INSERT: + case HiveSql.T_INT: + case HiveSql.T_INT2: + case HiveSql.T_INT4: + case HiveSql.T_INT8: + case HiveSql.T_INTEGER: + case HiveSql.T_INTERSECT: + case HiveSql.T_INTERVAL: + case HiveSql.T_INTO: + case HiveSql.T_INVOKER: + case HiveSql.T_IS: + case HiveSql.T_ISOPEN: + case HiveSql.T_ITEMS: + case HiveSql.T_JOIN: + case HiveSql.T_KEEP: + case HiveSql.T_KEY: + case HiveSql.T_KEYS: + case HiveSql.T_LANGUAGE: + case HiveSql.T_LEAVE: + case HiveSql.T_LEFT: + case HiveSql.T_LIKE: + case HiveSql.T_LIMIT: + case HiveSql.T_LINES: + case HiveSql.T_LOCAL: + case HiveSql.T_LOCATION: + case HiveSql.T_LOCATOR: + case HiveSql.T_LOCATORS: + case HiveSql.T_LOCKS: + case HiveSql.T_LOG: + case HiveSql.T_LOGGED: + case HiveSql.T_LOGGING: + case HiveSql.T_LOOP: + case HiveSql.T_MAP: + case HiveSql.T_MATCHED: + case HiveSql.T_MAX: + case HiveSql.T_MAXTRANS: + case HiveSql.T_MERGE: + case HiveSql.T_MESSAGE_TEXT: + case HiveSql.T_MICROSECOND: + case HiveSql.T_MICROSECONDS: + case HiveSql.T_MIN: + case HiveSql.T_MULTISET: + case HiveSql.T_NCHAR: + case HiveSql.T_NEW: + case HiveSql.T_NVARCHAR: + case HiveSql.T_NO: + case HiveSql.T_NOCOUNT: + case HiveSql.T_NOCOMPRESS: + case HiveSql.T_NOLOGGING: + case HiveSql.T_NONE: + case HiveSql.T_NOT: + case HiveSql.T_NOTFOUND: + case HiveSql.T_NUMERIC: + case HiveSql.T_NUMBER: + case HiveSql.T_OBJECT: + case HiveSql.T_OFF: + case HiveSql.T_ON: + case HiveSql.T_ONLY: + case HiveSql.T_OPEN: + case HiveSql.T_OR: + case HiveSql.T_ORDER: + case HiveSql.T_OUT: + case HiveSql.T_OUTER: + case HiveSql.T_OVER: + case HiveSql.T_OVERWRITE: + case HiveSql.T_OWNER: + case HiveSql.T_PACKAGE: + case HiveSql.T_PARTITION: + case HiveSql.T_PCTFREE: + case HiveSql.T_PCTUSED: + case HiveSql.T_PRECISION: + case HiveSql.T_PRESERVE: + case HiveSql.T_PRIMARY: + case HiveSql.T_PRINT: + case HiveSql.T_PROC: + case HiveSql.T_PROCEDURE: + case HiveSql.T_QUALIFY: + case HiveSql.T_QUERY_BAND: + case HiveSql.T_QUIT: + case HiveSql.T_QUOTED_IDENTIFIER: + case HiveSql.T_RAISE: + case HiveSql.T_REAL: + case HiveSql.T_REFERENCES: + case HiveSql.T_REGEXP: + case HiveSql.T_REPLACE: + case HiveSql.T_RESIGNAL: + case HiveSql.T_RESTRICT: + case HiveSql.T_RESULT: + case HiveSql.T_RESULT_SET_LOCATOR: + case HiveSql.T_RETURN: + case HiveSql.T_RETURNS: + case HiveSql.T_REVERSE: + case HiveSql.T_RIGHT: + case HiveSql.T_RLIKE: + case HiveSql.T_ROLE: + case HiveSql.T_ROLLBACK: + case HiveSql.T_ROW: + case HiveSql.T_ROWS: + case HiveSql.T_ROW_COUNT: + case HiveSql.T_RR: + case HiveSql.T_RS: + case HiveSql.T_PWD: + case HiveSql.T_TRIM: + case HiveSql.T_SCHEMA: + case HiveSql.T_SECOND: + case HiveSql.T_SECONDS: + case HiveSql.T_SECURITY: + case HiveSql.T_SEGMENT: + case HiveSql.T_SEL: + case HiveSql.T_SELECT: + case HiveSql.T_SET: + case HiveSql.T_SESSION: + case HiveSql.T_SESSIONS: + case HiveSql.T_SETS: + case HiveSql.T_SHARE: + case HiveSql.T_SIGNAL: + case HiveSql.T_SIMPLE_DOUBLE: + case HiveSql.T_SIMPLE_FLOAT: + case HiveSql.T_SMALLDATETIME: + case HiveSql.T_SMALLINT: + case HiveSql.T_SQL: + case HiveSql.T_SQLEXCEPTION: + case HiveSql.T_SQLINSERT: + case HiveSql.T_SQLSTATE: + case HiveSql.T_SQLWARNING: + case HiveSql.T_STATS: + case HiveSql.T_STATISTICS: + case HiveSql.T_STEP: + case HiveSql.T_STORAGE: + case HiveSql.T_STORED: + case HiveSql.T_STRING: + case HiveSql.T_SUBDIR: + case HiveSql.T_SUBSTRING: + case HiveSql.T_SUM: + case HiveSql.T_SUMMARY: + case HiveSql.T_SYS_REFCURSOR: + case HiveSql.T_TABLE: + case HiveSql.T_TABLESPACE: + case HiveSql.T_TEMPORARY: + case HiveSql.T_TERMINATED: + case HiveSql.T_TEXTIMAGE_ON: + case HiveSql.T_THEN: + case HiveSql.T_TIMESTAMP: + case HiveSql.T_TITLE: + case HiveSql.T_TO: + case HiveSql.T_TOP: + case HiveSql.T_TRANSACTION: + case HiveSql.T_TRUE: + case HiveSql.T_TRUNCATE: + case HiveSql.T_UNIQUE: + case HiveSql.T_UPDATE: + case HiveSql.T_UR: + case HiveSql.T_USE: + case HiveSql.T_USING: + case HiveSql.T_VALUE: + case HiveSql.T_VALUES: + case HiveSql.T_VAR: + case HiveSql.T_VARCHAR: + case HiveSql.T_VARCHAR2: + case HiveSql.T_VARYING: + case HiveSql.T_VOLATILE: + case HiveSql.T_WHILE: + case HiveSql.T_WITH: + case HiveSql.T_WITHOUT: + case HiveSql.T_WORK: + case HiveSql.T_XACT_ABORT: + case HiveSql.T_XML: + case HiveSql.T_YES: + case HiveSql.T_ACTIVITY_COUNT: + case HiveSql.T_CUME_DIST: + case HiveSql.T_CURRENT_DATE: + case HiveSql.T_CURRENT_TIMESTAMP: + case HiveSql.T_CURRENT_USER: + case HiveSql.T_DENSE_RANK: + case HiveSql.T_FIRST_VALUE: + case HiveSql.T_LAG: + case HiveSql.T_LAST_VALUE: + case HiveSql.T_LEAD: + case HiveSql.T_PART_COUNT: + case HiveSql.T_PART_LOC: + case HiveSql.T_RANK: + case HiveSql.T_ROW_NUMBER: + case HiveSql.T_STDEV: + case HiveSql.T_SYSDATE: + case HiveSql.T_VARIANCE: + case HiveSql.T_USER: + this.state = 3308; this.non_reserved_words(); break; default: throw new antlr4.error.NoViableAltException(this); } } - this.state = 3321; + this.state = 3315; this._errHandler.sync(this); - _alt = this._interp.adaptivePredict(this._input,420,this._ctx); + _alt = this._interp.adaptivePredict(this._input,419,this._ctx); } } catch (re) { @@ -35843,7 +35927,7 @@ function StringContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_string; + this.ruleIndex = HiveSql.RULE_string; return this; } @@ -35866,10 +35950,10 @@ function Double_quotedStringContext(parser, ctx) { Double_quotedStringContext.prototype = Object.create(StringContext.prototype); Double_quotedStringContext.prototype.constructor = Double_quotedStringContext; -HiveSqlParser.Double_quotedStringContext = Double_quotedStringContext; +HiveSql.Double_quotedStringContext = Double_quotedStringContext; Double_quotedStringContext.prototype.L_D_STRING = function() { - return this.getToken(HiveSqlParser.L_D_STRING, 0); + return this.getToken(HiveSql.L_D_STRING, 0); }; Double_quotedStringContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { @@ -35901,10 +35985,10 @@ function Single_quotedStringContext(parser, ctx) { Single_quotedStringContext.prototype = Object.create(StringContext.prototype); Single_quotedStringContext.prototype.constructor = Single_quotedStringContext; -HiveSqlParser.Single_quotedStringContext = Single_quotedStringContext; +HiveSql.Single_quotedStringContext = Single_quotedStringContext; Single_quotedStringContext.prototype.L_S_STRING = function() { - return this.getToken(HiveSqlParser.L_S_STRING, 0); + return this.getToken(HiveSql.L_S_STRING, 0); }; Single_quotedStringContext.prototype.enterRule = function(listener) { if(listener instanceof HiveSqlListener ) { @@ -35928,27 +36012,27 @@ Single_quotedStringContext.prototype.accept = function(visitor) { -HiveSqlParser.StringContext = StringContext; +HiveSql.StringContext = StringContext; -HiveSqlParser.prototype.string = function() { +HiveSql.prototype.string = function() { var localctx = new StringContext(this, this._ctx, this.state); - this.enterRule(localctx, 440, HiveSqlParser.RULE_string); + this.enterRule(localctx, 440, HiveSql.RULE_string); try { - this.state = 3324; + this.state = 3318; this._errHandler.sync(this); switch(this._input.LA(1)) { - case HiveSqlParser.L_S_STRING: + case HiveSql.L_S_STRING: localctx = new Single_quotedStringContext(this, localctx); this.enterOuterAlt(localctx, 1); - this.state = 3322; - this.match(HiveSqlParser.L_S_STRING); + this.state = 3316; + this.match(HiveSql.L_S_STRING); break; - case HiveSqlParser.L_D_STRING: + case HiveSql.L_D_STRING: localctx = new Double_quotedStringContext(this, localctx); this.enterOuterAlt(localctx, 2); - this.state = 3323; - this.match(HiveSqlParser.L_D_STRING); + this.state = 3317; + this.match(HiveSql.L_D_STRING); break; default: throw new antlr4.error.NoViableAltException(this); @@ -35977,7 +36061,7 @@ function Int_numberContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_int_number; + this.ruleIndex = HiveSql.RULE_int_number; return this; } @@ -35985,7 +36069,15 @@ Int_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Int_numberContext.prototype.constructor = Int_numberContext; Int_numberContext.prototype.L_INT = function() { - return this.getToken(HiveSqlParser.L_INT, 0); + return this.getToken(HiveSql.L_INT, 0); +}; + +Int_numberContext.prototype.T_SUB = function() { + return this.getToken(HiveSql.T_SUB, 0); +}; + +Int_numberContext.prototype.T_ADD = function() { + return this.getToken(HiveSql.T_ADD, 0); }; Int_numberContext.prototype.enterRule = function(listener) { @@ -36011,22 +36103,22 @@ Int_numberContext.prototype.accept = function(visitor) { -HiveSqlParser.Int_numberContext = Int_numberContext; +HiveSql.Int_numberContext = Int_numberContext; -HiveSqlParser.prototype.int_number = function() { +HiveSql.prototype.int_number = function() { var localctx = new Int_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 442, HiveSqlParser.RULE_int_number); + this.enterRule(localctx, 442, HiveSql.RULE_int_number); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3327; + this.state = 3321; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9) { - this.state = 3326; + if(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB) { + this.state = 3320; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9)) { + if(!(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB)) { this._errHandler.recoverInline(this); } else { @@ -36035,8 +36127,8 @@ HiveSqlParser.prototype.int_number = function() { } } - this.state = 3329; - this.match(HiveSqlParser.L_INT); + this.state = 3323; + this.match(HiveSql.L_INT); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36061,7 +36153,7 @@ function Dec_numberContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_dec_number; + this.ruleIndex = HiveSql.RULE_dec_number; return this; } @@ -36069,7 +36161,15 @@ Dec_numberContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Dec_numberContext.prototype.constructor = Dec_numberContext; Dec_numberContext.prototype.L_DEC = function() { - return this.getToken(HiveSqlParser.L_DEC, 0); + return this.getToken(HiveSql.L_DEC, 0); +}; + +Dec_numberContext.prototype.T_SUB = function() { + return this.getToken(HiveSql.T_SUB, 0); +}; + +Dec_numberContext.prototype.T_ADD = function() { + return this.getToken(HiveSql.T_ADD, 0); }; Dec_numberContext.prototype.enterRule = function(listener) { @@ -36095,22 +36195,22 @@ Dec_numberContext.prototype.accept = function(visitor) { -HiveSqlParser.Dec_numberContext = Dec_numberContext; +HiveSql.Dec_numberContext = Dec_numberContext; -HiveSqlParser.prototype.dec_number = function() { +HiveSql.prototype.dec_number = function() { var localctx = new Dec_numberContext(this, this._ctx, this.state); - this.enterRule(localctx, 444, HiveSqlParser.RULE_dec_number); + this.enterRule(localctx, 444, HiveSql.RULE_dec_number); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3332; + this.state = 3326; this._errHandler.sync(this); _la = this._input.LA(1); - if(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9) { - this.state = 3331; + if(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB) { + this.state = 3325; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T__8 || _la===HiveSqlParser.T__9)) { + if(!(_la===HiveSql.T_ADD || _la===HiveSql.T_SUB)) { this._errHandler.recoverInline(this); } else { @@ -36119,8 +36219,8 @@ HiveSqlParser.prototype.dec_number = function() { } } - this.state = 3334; - this.match(HiveSqlParser.L_DEC); + this.state = 3328; + this.match(HiveSql.L_DEC); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36145,7 +36245,7 @@ function Bool_literalContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_bool_literal; + this.ruleIndex = HiveSql.RULE_bool_literal; return this; } @@ -36153,11 +36253,11 @@ Bool_literalContext.prototype = Object.create(antlr4.ParserRuleContext.prototype Bool_literalContext.prototype.constructor = Bool_literalContext; Bool_literalContext.prototype.T_TRUE = function() { - return this.getToken(HiveSqlParser.T_TRUE, 0); + return this.getToken(HiveSql.T_TRUE, 0); }; Bool_literalContext.prototype.T_FALSE = function() { - return this.getToken(HiveSqlParser.T_FALSE, 0); + return this.getToken(HiveSql.T_FALSE, 0); }; Bool_literalContext.prototype.enterRule = function(listener) { @@ -36183,18 +36283,18 @@ Bool_literalContext.prototype.accept = function(visitor) { -HiveSqlParser.Bool_literalContext = Bool_literalContext; +HiveSql.Bool_literalContext = Bool_literalContext; -HiveSqlParser.prototype.bool_literal = function() { +HiveSql.prototype.bool_literal = function() { var localctx = new Bool_literalContext(this, this._ctx, this.state); - this.enterRule(localctx, 446, HiveSqlParser.RULE_bool_literal); + this.enterRule(localctx, 446, HiveSql.RULE_bool_literal); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3336; + this.state = 3330; _la = this._input.LA(1); - if(!(_la===HiveSqlParser.T_TRUE || _la===HiveSqlParser.T_FALSE)) { + if(!(_la===HiveSql.T_FALSE || _la===HiveSql.T_TRUE)) { this._errHandler.recoverInline(this); } else { @@ -36225,7 +36325,7 @@ function Null_constContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_null_const; + this.ruleIndex = HiveSql.RULE_null_const; return this; } @@ -36233,7 +36333,7 @@ Null_constContext.prototype = Object.create(antlr4.ParserRuleContext.prototype); Null_constContext.prototype.constructor = Null_constContext; Null_constContext.prototype.T_NULL = function() { - return this.getToken(HiveSqlParser.T_NULL, 0); + return this.getToken(HiveSql.T_NULL, 0); }; Null_constContext.prototype.enterRule = function(listener) { @@ -36259,16 +36359,16 @@ Null_constContext.prototype.accept = function(visitor) { -HiveSqlParser.Null_constContext = Null_constContext; +HiveSql.Null_constContext = Null_constContext; -HiveSqlParser.prototype.null_const = function() { +HiveSql.prototype.null_const = function() { var localctx = new Null_constContext(this, this._ctx, this.state); - this.enterRule(localctx, 448, HiveSqlParser.RULE_null_const); + this.enterRule(localctx, 448, HiveSql.RULE_null_const); try { this.enterOuterAlt(localctx, 1); - this.state = 3338; - this.match(HiveSqlParser.T_NULL); + this.state = 3332; + this.match(HiveSql.T_NULL); } catch (re) { if(re instanceof antlr4.error.RecognitionException) { localctx.exception = re; @@ -36293,7 +36393,7 @@ function Non_reserved_wordsContext(parser, parent, invokingState) { } antlr4.ParserRuleContext.call(this, parent, invokingState); this.parser = parser; - this.ruleIndex = HiveSqlParser.RULE_non_reserved_words; + this.ruleIndex = HiveSql.RULE_non_reserved_words; return this; } @@ -36301,1275 +36401,1275 @@ Non_reserved_wordsContext.prototype = Object.create(antlr4.ParserRuleContext.pro Non_reserved_wordsContext.prototype.constructor = Non_reserved_wordsContext; Non_reserved_wordsContext.prototype.T_ACTION = function() { - return this.getToken(HiveSqlParser.T_ACTION, 0); + return this.getToken(HiveSql.T_ACTION, 0); }; Non_reserved_wordsContext.prototype.T_ACTIVITY_COUNT = function() { - return this.getToken(HiveSqlParser.T_ACTIVITY_COUNT, 0); + return this.getToken(HiveSql.T_ACTIVITY_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_ADD2 = function() { - return this.getToken(HiveSqlParser.T_ADD2, 0); + return this.getToken(HiveSql.T_ADD2, 0); }; Non_reserved_wordsContext.prototype.T_ALL = function() { - return this.getToken(HiveSqlParser.T_ALL, 0); + return this.getToken(HiveSql.T_ALL, 0); }; Non_reserved_wordsContext.prototype.T_ALLOCATE = function() { - return this.getToken(HiveSqlParser.T_ALLOCATE, 0); + return this.getToken(HiveSql.T_ALLOCATE, 0); }; Non_reserved_wordsContext.prototype.T_ALTER = function() { - return this.getToken(HiveSqlParser.T_ALTER, 0); + return this.getToken(HiveSql.T_ALTER, 0); }; Non_reserved_wordsContext.prototype.T_AND = function() { - return this.getToken(HiveSqlParser.T_AND, 0); + return this.getToken(HiveSql.T_AND, 0); }; Non_reserved_wordsContext.prototype.T_ANSI_NULLS = function() { - return this.getToken(HiveSqlParser.T_ANSI_NULLS, 0); + return this.getToken(HiveSql.T_ANSI_NULLS, 0); }; Non_reserved_wordsContext.prototype.T_ANSI_PADDING = function() { - return this.getToken(HiveSqlParser.T_ANSI_PADDING, 0); + return this.getToken(HiveSql.T_ANSI_PADDING, 0); }; Non_reserved_wordsContext.prototype.T_AS = function() { - return this.getToken(HiveSqlParser.T_AS, 0); + return this.getToken(HiveSql.T_AS, 0); }; Non_reserved_wordsContext.prototype.T_ASC = function() { - return this.getToken(HiveSqlParser.T_ASC, 0); + return this.getToken(HiveSql.T_ASC, 0); }; Non_reserved_wordsContext.prototype.T_ASSOCIATE = function() { - return this.getToken(HiveSqlParser.T_ASSOCIATE, 0); + return this.getToken(HiveSql.T_ASSOCIATE, 0); }; Non_reserved_wordsContext.prototype.T_AT = function() { - return this.getToken(HiveSqlParser.T_AT, 0); + return this.getToken(HiveSql.T_AT, 0); }; Non_reserved_wordsContext.prototype.T_AUTO_INCREMENT = function() { - return this.getToken(HiveSqlParser.T_AUTO_INCREMENT, 0); + return this.getToken(HiveSql.T_AUTO_INCREMENT, 0); }; Non_reserved_wordsContext.prototype.T_AVG = function() { - return this.getToken(HiveSqlParser.T_AVG, 0); + return this.getToken(HiveSql.T_AVG, 0); }; Non_reserved_wordsContext.prototype.T_BATCHSIZE = function() { - return this.getToken(HiveSqlParser.T_BATCHSIZE, 0); + return this.getToken(HiveSql.T_BATCHSIZE, 0); }; Non_reserved_wordsContext.prototype.T_BEGIN = function() { - return this.getToken(HiveSqlParser.T_BEGIN, 0); + return this.getToken(HiveSql.T_BEGIN, 0); }; Non_reserved_wordsContext.prototype.T_BETWEEN = function() { - return this.getToken(HiveSqlParser.T_BETWEEN, 0); + return this.getToken(HiveSql.T_BETWEEN, 0); }; Non_reserved_wordsContext.prototype.T_BIGINT = function() { - return this.getToken(HiveSqlParser.T_BIGINT, 0); + return this.getToken(HiveSql.T_BIGINT, 0); }; Non_reserved_wordsContext.prototype.T_BINARY_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_BINARY_DOUBLE, 0); + return this.getToken(HiveSql.T_BINARY_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_BINARY_FLOAT = function() { - return this.getToken(HiveSqlParser.T_BINARY_FLOAT, 0); + return this.getToken(HiveSql.T_BINARY_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_BIT = function() { - return this.getToken(HiveSqlParser.T_BIT, 0); + return this.getToken(HiveSql.T_BIT, 0); }; Non_reserved_wordsContext.prototype.T_BODY = function() { - return this.getToken(HiveSqlParser.T_BODY, 0); + return this.getToken(HiveSql.T_BODY, 0); }; Non_reserved_wordsContext.prototype.T_BREAK = function() { - return this.getToken(HiveSqlParser.T_BREAK, 0); + return this.getToken(HiveSql.T_BREAK, 0); }; Non_reserved_wordsContext.prototype.T_BY = function() { - return this.getToken(HiveSqlParser.T_BY, 0); + return this.getToken(HiveSql.T_BY, 0); }; Non_reserved_wordsContext.prototype.T_BYTE = function() { - return this.getToken(HiveSqlParser.T_BYTE, 0); + return this.getToken(HiveSql.T_BYTE, 0); }; Non_reserved_wordsContext.prototype.T_CALL = function() { - return this.getToken(HiveSqlParser.T_CALL, 0); + return this.getToken(HiveSql.T_CALL, 0); }; Non_reserved_wordsContext.prototype.T_CALLER = function() { - return this.getToken(HiveSqlParser.T_CALLER, 0); + return this.getToken(HiveSql.T_CALLER, 0); }; Non_reserved_wordsContext.prototype.T_CASCADE = function() { - return this.getToken(HiveSqlParser.T_CASCADE, 0); + return this.getToken(HiveSql.T_CASCADE, 0); }; Non_reserved_wordsContext.prototype.T_CASE = function() { - return this.getToken(HiveSqlParser.T_CASE, 0); + return this.getToken(HiveSql.T_CASE, 0); }; Non_reserved_wordsContext.prototype.T_CASESPECIFIC = function() { - return this.getToken(HiveSqlParser.T_CASESPECIFIC, 0); + return this.getToken(HiveSql.T_CASESPECIFIC, 0); }; Non_reserved_wordsContext.prototype.T_CAST = function() { - return this.getToken(HiveSqlParser.T_CAST, 0); + return this.getToken(HiveSql.T_CAST, 0); }; Non_reserved_wordsContext.prototype.T_CHAR = function() { - return this.getToken(HiveSqlParser.T_CHAR, 0); + return this.getToken(HiveSql.T_CHAR, 0); }; Non_reserved_wordsContext.prototype.T_CHARACTER = function() { - return this.getToken(HiveSqlParser.T_CHARACTER, 0); + return this.getToken(HiveSql.T_CHARACTER, 0); }; Non_reserved_wordsContext.prototype.T_CHARSET = function() { - return this.getToken(HiveSqlParser.T_CHARSET, 0); + return this.getToken(HiveSql.T_CHARSET, 0); }; Non_reserved_wordsContext.prototype.T_CLIENT = function() { - return this.getToken(HiveSqlParser.T_CLIENT, 0); + return this.getToken(HiveSql.T_CLIENT, 0); }; Non_reserved_wordsContext.prototype.T_CLOSE = function() { - return this.getToken(HiveSqlParser.T_CLOSE, 0); + return this.getToken(HiveSql.T_CLOSE, 0); }; Non_reserved_wordsContext.prototype.T_CLUSTERED = function() { - return this.getToken(HiveSqlParser.T_CLUSTERED, 0); + return this.getToken(HiveSql.T_CLUSTERED, 0); }; Non_reserved_wordsContext.prototype.T_CMP = function() { - return this.getToken(HiveSqlParser.T_CMP, 0); + return this.getToken(HiveSql.T_CMP, 0); }; Non_reserved_wordsContext.prototype.T_COLLECT = function() { - return this.getToken(HiveSqlParser.T_COLLECT, 0); + return this.getToken(HiveSql.T_COLLECT, 0); }; Non_reserved_wordsContext.prototype.T_COLLECTION = function() { - return this.getToken(HiveSqlParser.T_COLLECTION, 0); + return this.getToken(HiveSql.T_COLLECTION, 0); }; Non_reserved_wordsContext.prototype.T_COLUMN = function() { - return this.getToken(HiveSqlParser.T_COLUMN, 0); + return this.getToken(HiveSql.T_COLUMN, 0); }; Non_reserved_wordsContext.prototype.T_COMMENT = function() { - return this.getToken(HiveSqlParser.T_COMMENT, 0); + return this.getToken(HiveSql.T_COMMENT, 0); }; Non_reserved_wordsContext.prototype.T_COMPRESS = function() { - return this.getToken(HiveSqlParser.T_COMPRESS, 0); + return this.getToken(HiveSql.T_COMPRESS, 0); }; Non_reserved_wordsContext.prototype.T_CONSTANT = function() { - return this.getToken(HiveSqlParser.T_CONSTANT, 0); + return this.getToken(HiveSql.T_CONSTANT, 0); }; Non_reserved_wordsContext.prototype.T_COPY = function() { - return this.getToken(HiveSqlParser.T_COPY, 0); + return this.getToken(HiveSql.T_COPY, 0); }; Non_reserved_wordsContext.prototype.T_COMMIT = function() { - return this.getToken(HiveSqlParser.T_COMMIT, 0); + return this.getToken(HiveSql.T_COMMIT, 0); }; Non_reserved_wordsContext.prototype.T_CONCAT = function() { - return this.getToken(HiveSqlParser.T_CONCAT, 0); + return this.getToken(HiveSql.T_CONCAT, 0); }; Non_reserved_wordsContext.prototype.T_CONDITION = function() { - return this.getToken(HiveSqlParser.T_CONDITION, 0); + return this.getToken(HiveSql.T_CONDITION, 0); }; Non_reserved_wordsContext.prototype.T_CONSTRAINT = function() { - return this.getToken(HiveSqlParser.T_CONSTRAINT, 0); + return this.getToken(HiveSql.T_CONSTRAINT, 0); }; Non_reserved_wordsContext.prototype.T_CONTINUE = function() { - return this.getToken(HiveSqlParser.T_CONTINUE, 0); + return this.getToken(HiveSql.T_CONTINUE, 0); }; Non_reserved_wordsContext.prototype.T_COUNT = function() { - return this.getToken(HiveSqlParser.T_COUNT, 0); + return this.getToken(HiveSql.T_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_COUNT_BIG = function() { - return this.getToken(HiveSqlParser.T_COUNT_BIG, 0); + return this.getToken(HiveSql.T_COUNT_BIG, 0); }; Non_reserved_wordsContext.prototype.T_CREATE = function() { - return this.getToken(HiveSqlParser.T_CREATE, 0); + return this.getToken(HiveSql.T_CREATE, 0); }; Non_reserved_wordsContext.prototype.T_CREATION = function() { - return this.getToken(HiveSqlParser.T_CREATION, 0); + return this.getToken(HiveSql.T_CREATION, 0); }; Non_reserved_wordsContext.prototype.T_CREATOR = function() { - return this.getToken(HiveSqlParser.T_CREATOR, 0); + return this.getToken(HiveSql.T_CREATOR, 0); }; Non_reserved_wordsContext.prototype.T_CS = function() { - return this.getToken(HiveSqlParser.T_CS, 0); + return this.getToken(HiveSql.T_CS, 0); }; Non_reserved_wordsContext.prototype.T_CUME_DIST = function() { - return this.getToken(HiveSqlParser.T_CUME_DIST, 0); + return this.getToken(HiveSql.T_CUME_DIST, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT = function() { - return this.getToken(HiveSqlParser.T_CURRENT, 0); + return this.getToken(HiveSql.T_CURRENT, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_DATE = function() { - return this.getToken(HiveSqlParser.T_CURRENT_DATE, 0); + return this.getToken(HiveSql.T_CURRENT_DATE, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_CURRENT_SCHEMA, 0); + return this.getToken(HiveSql.T_CURRENT_SCHEMA, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_CURRENT_TIMESTAMP, 0); + return this.getToken(HiveSql.T_CURRENT_TIMESTAMP, 0); }; Non_reserved_wordsContext.prototype.T_CURRENT_USER = function() { - return this.getToken(HiveSqlParser.T_CURRENT_USER, 0); + return this.getToken(HiveSql.T_CURRENT_USER, 0); }; Non_reserved_wordsContext.prototype.T_CURSOR = function() { - return this.getToken(HiveSqlParser.T_CURSOR, 0); + return this.getToken(HiveSql.T_CURSOR, 0); }; Non_reserved_wordsContext.prototype.T_DATA = function() { - return this.getToken(HiveSqlParser.T_DATA, 0); + return this.getToken(HiveSql.T_DATA, 0); }; Non_reserved_wordsContext.prototype.T_DATABASE = function() { - return this.getToken(HiveSqlParser.T_DATABASE, 0); + return this.getToken(HiveSql.T_DATABASE, 0); }; Non_reserved_wordsContext.prototype.T_DATE = function() { - return this.getToken(HiveSqlParser.T_DATE, 0); + return this.getToken(HiveSql.T_DATE, 0); }; Non_reserved_wordsContext.prototype.T_DATETIME = function() { - return this.getToken(HiveSqlParser.T_DATETIME, 0); + return this.getToken(HiveSql.T_DATETIME, 0); }; Non_reserved_wordsContext.prototype.T_DAY = function() { - return this.getToken(HiveSqlParser.T_DAY, 0); + return this.getToken(HiveSql.T_DAY, 0); }; Non_reserved_wordsContext.prototype.T_DAYS = function() { - return this.getToken(HiveSqlParser.T_DAYS, 0); + return this.getToken(HiveSql.T_DAYS, 0); }; Non_reserved_wordsContext.prototype.T_DEC = function() { - return this.getToken(HiveSqlParser.T_DEC, 0); + return this.getToken(HiveSql.T_DEC, 0); }; Non_reserved_wordsContext.prototype.T_DECIMAL = function() { - return this.getToken(HiveSqlParser.T_DECIMAL, 0); + return this.getToken(HiveSql.T_DECIMAL, 0); }; Non_reserved_wordsContext.prototype.T_DECLARE = function() { - return this.getToken(HiveSqlParser.T_DECLARE, 0); + return this.getToken(HiveSql.T_DECLARE, 0); }; Non_reserved_wordsContext.prototype.T_DEFAULT = function() { - return this.getToken(HiveSqlParser.T_DEFAULT, 0); + return this.getToken(HiveSql.T_DEFAULT, 0); }; Non_reserved_wordsContext.prototype.T_DEFERRED = function() { - return this.getToken(HiveSqlParser.T_DEFERRED, 0); + return this.getToken(HiveSql.T_DEFERRED, 0); }; Non_reserved_wordsContext.prototype.T_DEFINED = function() { - return this.getToken(HiveSqlParser.T_DEFINED, 0); + return this.getToken(HiveSql.T_DEFINED, 0); }; Non_reserved_wordsContext.prototype.T_DEFINER = function() { - return this.getToken(HiveSqlParser.T_DEFINER, 0); + return this.getToken(HiveSql.T_DEFINER, 0); }; Non_reserved_wordsContext.prototype.T_DEFINITION = function() { - return this.getToken(HiveSqlParser.T_DEFINITION, 0); + return this.getToken(HiveSql.T_DEFINITION, 0); }; Non_reserved_wordsContext.prototype.T_DELETE = function() { - return this.getToken(HiveSqlParser.T_DELETE, 0); + return this.getToken(HiveSql.T_DELETE, 0); }; Non_reserved_wordsContext.prototype.T_DELIMITED = function() { - return this.getToken(HiveSqlParser.T_DELIMITED, 0); + return this.getToken(HiveSql.T_DELIMITED, 0); }; Non_reserved_wordsContext.prototype.T_DELIMITER = function() { - return this.getToken(HiveSqlParser.T_DELIMITER, 0); + return this.getToken(HiveSql.T_DELIMITER, 0); }; Non_reserved_wordsContext.prototype.T_DENSE_RANK = function() { - return this.getToken(HiveSqlParser.T_DENSE_RANK, 0); + return this.getToken(HiveSql.T_DENSE_RANK, 0); }; Non_reserved_wordsContext.prototype.T_DESC = function() { - return this.getToken(HiveSqlParser.T_DESC, 0); + return this.getToken(HiveSql.T_DESC, 0); }; Non_reserved_wordsContext.prototype.T_DESCRIBE = function() { - return this.getToken(HiveSqlParser.T_DESCRIBE, 0); + return this.getToken(HiveSql.T_DESCRIBE, 0); }; Non_reserved_wordsContext.prototype.T_DIAGNOSTICS = function() { - return this.getToken(HiveSqlParser.T_DIAGNOSTICS, 0); + return this.getToken(HiveSql.T_DIAGNOSTICS, 0); }; Non_reserved_wordsContext.prototype.T_DIR = function() { - return this.getToken(HiveSqlParser.T_DIR, 0); + return this.getToken(HiveSql.T_DIR, 0); }; Non_reserved_wordsContext.prototype.T_DIRECTORY = function() { - return this.getToken(HiveSqlParser.T_DIRECTORY, 0); + return this.getToken(HiveSql.T_DIRECTORY, 0); }; Non_reserved_wordsContext.prototype.T_DISTINCT = function() { - return this.getToken(HiveSqlParser.T_DISTINCT, 0); + return this.getToken(HiveSql.T_DISTINCT, 0); }; Non_reserved_wordsContext.prototype.T_DISTRIBUTE = function() { - return this.getToken(HiveSqlParser.T_DISTRIBUTE, 0); + return this.getToken(HiveSql.T_DISTRIBUTE, 0); }; Non_reserved_wordsContext.prototype.T_DO = function() { - return this.getToken(HiveSqlParser.T_DO, 0); + return this.getToken(HiveSql.T_DO, 0); }; Non_reserved_wordsContext.prototype.T_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_DOUBLE, 0); + return this.getToken(HiveSql.T_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_DROP = function() { - return this.getToken(HiveSqlParser.T_DROP, 0); + return this.getToken(HiveSql.T_DROP, 0); }; Non_reserved_wordsContext.prototype.T_DYNAMIC = function() { - return this.getToken(HiveSqlParser.T_DYNAMIC, 0); + return this.getToken(HiveSql.T_DYNAMIC, 0); }; Non_reserved_wordsContext.prototype.T_ENABLE = function() { - return this.getToken(HiveSqlParser.T_ENABLE, 0); + return this.getToken(HiveSql.T_ENABLE, 0); }; Non_reserved_wordsContext.prototype.T_ENGINE = function() { - return this.getToken(HiveSqlParser.T_ENGINE, 0); + return this.getToken(HiveSql.T_ENGINE, 0); }; Non_reserved_wordsContext.prototype.T_ESCAPED = function() { - return this.getToken(HiveSqlParser.T_ESCAPED, 0); + return this.getToken(HiveSql.T_ESCAPED, 0); }; Non_reserved_wordsContext.prototype.T_EXCEPT = function() { - return this.getToken(HiveSqlParser.T_EXCEPT, 0); + return this.getToken(HiveSql.T_EXCEPT, 0); }; Non_reserved_wordsContext.prototype.T_EXEC = function() { - return this.getToken(HiveSqlParser.T_EXEC, 0); + return this.getToken(HiveSql.T_EXEC, 0); }; Non_reserved_wordsContext.prototype.T_EXECUTE = function() { - return this.getToken(HiveSqlParser.T_EXECUTE, 0); + return this.getToken(HiveSql.T_EXECUTE, 0); }; Non_reserved_wordsContext.prototype.T_EXCEPTION = function() { - return this.getToken(HiveSqlParser.T_EXCEPTION, 0); + return this.getToken(HiveSql.T_EXCEPTION, 0); }; Non_reserved_wordsContext.prototype.T_EXCLUSIVE = function() { - return this.getToken(HiveSqlParser.T_EXCLUSIVE, 0); + return this.getToken(HiveSql.T_EXCLUSIVE, 0); }; Non_reserved_wordsContext.prototype.T_EXISTS = function() { - return this.getToken(HiveSqlParser.T_EXISTS, 0); + return this.getToken(HiveSql.T_EXISTS, 0); }; Non_reserved_wordsContext.prototype.T_EXIT = function() { - return this.getToken(HiveSqlParser.T_EXIT, 0); + return this.getToken(HiveSql.T_EXIT, 0); }; Non_reserved_wordsContext.prototype.T_FALLBACK = function() { - return this.getToken(HiveSqlParser.T_FALLBACK, 0); + return this.getToken(HiveSql.T_FALLBACK, 0); }; Non_reserved_wordsContext.prototype.T_FALSE = function() { - return this.getToken(HiveSqlParser.T_FALSE, 0); + return this.getToken(HiveSql.T_FALSE, 0); }; Non_reserved_wordsContext.prototype.T_FETCH = function() { - return this.getToken(HiveSqlParser.T_FETCH, 0); + return this.getToken(HiveSql.T_FETCH, 0); }; Non_reserved_wordsContext.prototype.T_FIELDS = function() { - return this.getToken(HiveSqlParser.T_FIELDS, 0); + return this.getToken(HiveSql.T_FIELDS, 0); }; Non_reserved_wordsContext.prototype.T_FILE = function() { - return this.getToken(HiveSqlParser.T_FILE, 0); + return this.getToken(HiveSql.T_FILE, 0); }; Non_reserved_wordsContext.prototype.T_FILES = function() { - return this.getToken(HiveSqlParser.T_FILES, 0); + return this.getToken(HiveSql.T_FILES, 0); }; Non_reserved_wordsContext.prototype.T_FIRST_VALUE = function() { - return this.getToken(HiveSqlParser.T_FIRST_VALUE, 0); + return this.getToken(HiveSql.T_FIRST_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_FLOAT = function() { - return this.getToken(HiveSqlParser.T_FLOAT, 0); + return this.getToken(HiveSql.T_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_FOR = function() { - return this.getToken(HiveSqlParser.T_FOR, 0); + return this.getToken(HiveSql.T_FOR, 0); }; Non_reserved_wordsContext.prototype.T_FOREIGN = function() { - return this.getToken(HiveSqlParser.T_FOREIGN, 0); + return this.getToken(HiveSql.T_FOREIGN, 0); }; Non_reserved_wordsContext.prototype.T_FORMAT = function() { - return this.getToken(HiveSqlParser.T_FORMAT, 0); + return this.getToken(HiveSql.T_FORMAT, 0); }; Non_reserved_wordsContext.prototype.T_FOUND = function() { - return this.getToken(HiveSqlParser.T_FOUND, 0); + return this.getToken(HiveSql.T_FOUND, 0); }; Non_reserved_wordsContext.prototype.T_FROM = function() { - return this.getToken(HiveSqlParser.T_FROM, 0); + return this.getToken(HiveSql.T_FROM, 0); }; Non_reserved_wordsContext.prototype.T_FULL = function() { - return this.getToken(HiveSqlParser.T_FULL, 0); + return this.getToken(HiveSql.T_FULL, 0); }; Non_reserved_wordsContext.prototype.T_FUNCTION = function() { - return this.getToken(HiveSqlParser.T_FUNCTION, 0); + return this.getToken(HiveSql.T_FUNCTION, 0); }; Non_reserved_wordsContext.prototype.T_GET = function() { - return this.getToken(HiveSqlParser.T_GET, 0); + return this.getToken(HiveSql.T_GET, 0); }; Non_reserved_wordsContext.prototype.T_GLOBAL = function() { - return this.getToken(HiveSqlParser.T_GLOBAL, 0); + return this.getToken(HiveSql.T_GLOBAL, 0); }; Non_reserved_wordsContext.prototype.T_GO = function() { - return this.getToken(HiveSqlParser.T_GO, 0); + return this.getToken(HiveSql.T_GO, 0); }; Non_reserved_wordsContext.prototype.T_GRANT = function() { - return this.getToken(HiveSqlParser.T_GRANT, 0); + return this.getToken(HiveSql.T_GRANT, 0); }; Non_reserved_wordsContext.prototype.T_GROUP = function() { - return this.getToken(HiveSqlParser.T_GROUP, 0); + return this.getToken(HiveSql.T_GROUP, 0); }; Non_reserved_wordsContext.prototype.T_HANDLER = function() { - return this.getToken(HiveSqlParser.T_HANDLER, 0); + return this.getToken(HiveSql.T_HANDLER, 0); }; Non_reserved_wordsContext.prototype.T_HASH = function() { - return this.getToken(HiveSqlParser.T_HASH, 0); + return this.getToken(HiveSql.T_HASH, 0); }; Non_reserved_wordsContext.prototype.T_HAVING = function() { - return this.getToken(HiveSqlParser.T_HAVING, 0); + return this.getToken(HiveSql.T_HAVING, 0); }; Non_reserved_wordsContext.prototype.T_HDFS = function() { - return this.getToken(HiveSqlParser.T_HDFS, 0); + return this.getToken(HiveSql.T_HDFS, 0); }; Non_reserved_wordsContext.prototype.T_HIVE = function() { - return this.getToken(HiveSqlParser.T_HIVE, 0); + return this.getToken(HiveSql.T_HIVE, 0); }; Non_reserved_wordsContext.prototype.T_HOST = function() { - return this.getToken(HiveSqlParser.T_HOST, 0); + return this.getToken(HiveSql.T_HOST, 0); }; Non_reserved_wordsContext.prototype.T_IDENTITY = function() { - return this.getToken(HiveSqlParser.T_IDENTITY, 0); + return this.getToken(HiveSql.T_IDENTITY, 0); }; Non_reserved_wordsContext.prototype.T_IF = function() { - return this.getToken(HiveSqlParser.T_IF, 0); + return this.getToken(HiveSql.T_IF, 0); }; Non_reserved_wordsContext.prototype.T_IGNORE = function() { - return this.getToken(HiveSqlParser.T_IGNORE, 0); + return this.getToken(HiveSql.T_IGNORE, 0); }; Non_reserved_wordsContext.prototype.T_IMMEDIATE = function() { - return this.getToken(HiveSqlParser.T_IMMEDIATE, 0); + return this.getToken(HiveSql.T_IMMEDIATE, 0); }; Non_reserved_wordsContext.prototype.T_IN = function() { - return this.getToken(HiveSqlParser.T_IN, 0); + return this.getToken(HiveSql.T_IN, 0); }; Non_reserved_wordsContext.prototype.T_INCLUDE = function() { - return this.getToken(HiveSqlParser.T_INCLUDE, 0); + return this.getToken(HiveSql.T_INCLUDE, 0); }; Non_reserved_wordsContext.prototype.T_INDEX = function() { - return this.getToken(HiveSqlParser.T_INDEX, 0); + return this.getToken(HiveSql.T_INDEX, 0); }; Non_reserved_wordsContext.prototype.T_INITRANS = function() { - return this.getToken(HiveSqlParser.T_INITRANS, 0); + return this.getToken(HiveSql.T_INITRANS, 0); }; Non_reserved_wordsContext.prototype.T_INNER = function() { - return this.getToken(HiveSqlParser.T_INNER, 0); + return this.getToken(HiveSql.T_INNER, 0); }; Non_reserved_wordsContext.prototype.T_INOUT = function() { - return this.getToken(HiveSqlParser.T_INOUT, 0); + return this.getToken(HiveSql.T_INOUT, 0); }; Non_reserved_wordsContext.prototype.T_INSERT = function() { - return this.getToken(HiveSqlParser.T_INSERT, 0); + return this.getToken(HiveSql.T_INSERT, 0); }; Non_reserved_wordsContext.prototype.T_INT = function() { - return this.getToken(HiveSqlParser.T_INT, 0); + return this.getToken(HiveSql.T_INT, 0); }; Non_reserved_wordsContext.prototype.T_INT2 = function() { - return this.getToken(HiveSqlParser.T_INT2, 0); + return this.getToken(HiveSql.T_INT2, 0); }; Non_reserved_wordsContext.prototype.T_INT4 = function() { - return this.getToken(HiveSqlParser.T_INT4, 0); + return this.getToken(HiveSql.T_INT4, 0); }; Non_reserved_wordsContext.prototype.T_INT8 = function() { - return this.getToken(HiveSqlParser.T_INT8, 0); + return this.getToken(HiveSql.T_INT8, 0); }; Non_reserved_wordsContext.prototype.T_INTEGER = function() { - return this.getToken(HiveSqlParser.T_INTEGER, 0); + return this.getToken(HiveSql.T_INTEGER, 0); }; Non_reserved_wordsContext.prototype.T_INTERSECT = function() { - return this.getToken(HiveSqlParser.T_INTERSECT, 0); + return this.getToken(HiveSql.T_INTERSECT, 0); }; Non_reserved_wordsContext.prototype.T_INTERVAL = function() { - return this.getToken(HiveSqlParser.T_INTERVAL, 0); + return this.getToken(HiveSql.T_INTERVAL, 0); }; Non_reserved_wordsContext.prototype.T_INTO = function() { - return this.getToken(HiveSqlParser.T_INTO, 0); + return this.getToken(HiveSql.T_INTO, 0); }; Non_reserved_wordsContext.prototype.T_INVOKER = function() { - return this.getToken(HiveSqlParser.T_INVOKER, 0); + return this.getToken(HiveSql.T_INVOKER, 0); }; Non_reserved_wordsContext.prototype.T_ITEMS = function() { - return this.getToken(HiveSqlParser.T_ITEMS, 0); + return this.getToken(HiveSql.T_ITEMS, 0); }; Non_reserved_wordsContext.prototype.T_IS = function() { - return this.getToken(HiveSqlParser.T_IS, 0); + return this.getToken(HiveSql.T_IS, 0); }; Non_reserved_wordsContext.prototype.T_ISOPEN = function() { - return this.getToken(HiveSqlParser.T_ISOPEN, 0); + return this.getToken(HiveSql.T_ISOPEN, 0); }; Non_reserved_wordsContext.prototype.T_JOIN = function() { - return this.getToken(HiveSqlParser.T_JOIN, 0); + return this.getToken(HiveSql.T_JOIN, 0); }; Non_reserved_wordsContext.prototype.T_KEEP = function() { - return this.getToken(HiveSqlParser.T_KEEP, 0); + return this.getToken(HiveSql.T_KEEP, 0); }; Non_reserved_wordsContext.prototype.T_KEY = function() { - return this.getToken(HiveSqlParser.T_KEY, 0); + return this.getToken(HiveSql.T_KEY, 0); }; Non_reserved_wordsContext.prototype.T_KEYS = function() { - return this.getToken(HiveSqlParser.T_KEYS, 0); + return this.getToken(HiveSql.T_KEYS, 0); }; Non_reserved_wordsContext.prototype.T_LAG = function() { - return this.getToken(HiveSqlParser.T_LAG, 0); + return this.getToken(HiveSql.T_LAG, 0); }; Non_reserved_wordsContext.prototype.T_LANGUAGE = function() { - return this.getToken(HiveSqlParser.T_LANGUAGE, 0); + return this.getToken(HiveSql.T_LANGUAGE, 0); }; Non_reserved_wordsContext.prototype.T_LAST_VALUE = function() { - return this.getToken(HiveSqlParser.T_LAST_VALUE, 0); + return this.getToken(HiveSql.T_LAST_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_LEAD = function() { - return this.getToken(HiveSqlParser.T_LEAD, 0); + return this.getToken(HiveSql.T_LEAD, 0); }; Non_reserved_wordsContext.prototype.T_LEAVE = function() { - return this.getToken(HiveSqlParser.T_LEAVE, 0); + return this.getToken(HiveSql.T_LEAVE, 0); }; Non_reserved_wordsContext.prototype.T_LEFT = function() { - return this.getToken(HiveSqlParser.T_LEFT, 0); + return this.getToken(HiveSql.T_LEFT, 0); }; Non_reserved_wordsContext.prototype.T_LIKE = function() { - return this.getToken(HiveSqlParser.T_LIKE, 0); + return this.getToken(HiveSql.T_LIKE, 0); }; Non_reserved_wordsContext.prototype.T_LIMIT = function() { - return this.getToken(HiveSqlParser.T_LIMIT, 0); + return this.getToken(HiveSql.T_LIMIT, 0); }; Non_reserved_wordsContext.prototype.T_LINES = function() { - return this.getToken(HiveSqlParser.T_LINES, 0); + return this.getToken(HiveSql.T_LINES, 0); }; Non_reserved_wordsContext.prototype.T_LOCAL = function() { - return this.getToken(HiveSqlParser.T_LOCAL, 0); + return this.getToken(HiveSql.T_LOCAL, 0); }; Non_reserved_wordsContext.prototype.T_LOCATION = function() { - return this.getToken(HiveSqlParser.T_LOCATION, 0); + return this.getToken(HiveSql.T_LOCATION, 0); }; Non_reserved_wordsContext.prototype.T_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_LOCATOR, 0); + return this.getToken(HiveSql.T_LOCATOR, 0); }; Non_reserved_wordsContext.prototype.T_LOCATORS = function() { - return this.getToken(HiveSqlParser.T_LOCATORS, 0); + return this.getToken(HiveSql.T_LOCATORS, 0); }; Non_reserved_wordsContext.prototype.T_LOCKS = function() { - return this.getToken(HiveSqlParser.T_LOCKS, 0); + return this.getToken(HiveSql.T_LOCKS, 0); }; Non_reserved_wordsContext.prototype.T_LOG = function() { - return this.getToken(HiveSqlParser.T_LOG, 0); + return this.getToken(HiveSql.T_LOG, 0); }; Non_reserved_wordsContext.prototype.T_LOGGED = function() { - return this.getToken(HiveSqlParser.T_LOGGED, 0); + return this.getToken(HiveSql.T_LOGGED, 0); }; Non_reserved_wordsContext.prototype.T_LOGGING = function() { - return this.getToken(HiveSqlParser.T_LOGGING, 0); + return this.getToken(HiveSql.T_LOGGING, 0); }; Non_reserved_wordsContext.prototype.T_LOOP = function() { - return this.getToken(HiveSqlParser.T_LOOP, 0); + return this.getToken(HiveSql.T_LOOP, 0); }; Non_reserved_wordsContext.prototype.T_MAP = function() { - return this.getToken(HiveSqlParser.T_MAP, 0); + return this.getToken(HiveSql.T_MAP, 0); }; Non_reserved_wordsContext.prototype.T_MATCHED = function() { - return this.getToken(HiveSqlParser.T_MATCHED, 0); + return this.getToken(HiveSql.T_MATCHED, 0); }; Non_reserved_wordsContext.prototype.T_MAX = function() { - return this.getToken(HiveSqlParser.T_MAX, 0); + return this.getToken(HiveSql.T_MAX, 0); }; Non_reserved_wordsContext.prototype.T_MAXTRANS = function() { - return this.getToken(HiveSqlParser.T_MAXTRANS, 0); + return this.getToken(HiveSql.T_MAXTRANS, 0); }; Non_reserved_wordsContext.prototype.T_MERGE = function() { - return this.getToken(HiveSqlParser.T_MERGE, 0); + return this.getToken(HiveSql.T_MERGE, 0); }; Non_reserved_wordsContext.prototype.T_MESSAGE_TEXT = function() { - return this.getToken(HiveSqlParser.T_MESSAGE_TEXT, 0); + return this.getToken(HiveSql.T_MESSAGE_TEXT, 0); }; Non_reserved_wordsContext.prototype.T_MICROSECOND = function() { - return this.getToken(HiveSqlParser.T_MICROSECOND, 0); + return this.getToken(HiveSql.T_MICROSECOND, 0); }; Non_reserved_wordsContext.prototype.T_MICROSECONDS = function() { - return this.getToken(HiveSqlParser.T_MICROSECONDS, 0); + return this.getToken(HiveSql.T_MICROSECONDS, 0); }; Non_reserved_wordsContext.prototype.T_MIN = function() { - return this.getToken(HiveSqlParser.T_MIN, 0); + return this.getToken(HiveSql.T_MIN, 0); }; Non_reserved_wordsContext.prototype.T_MULTISET = function() { - return this.getToken(HiveSqlParser.T_MULTISET, 0); + return this.getToken(HiveSql.T_MULTISET, 0); }; Non_reserved_wordsContext.prototype.T_NCHAR = function() { - return this.getToken(HiveSqlParser.T_NCHAR, 0); + return this.getToken(HiveSql.T_NCHAR, 0); }; Non_reserved_wordsContext.prototype.T_NEW = function() { - return this.getToken(HiveSqlParser.T_NEW, 0); + return this.getToken(HiveSql.T_NEW, 0); }; Non_reserved_wordsContext.prototype.T_NVARCHAR = function() { - return this.getToken(HiveSqlParser.T_NVARCHAR, 0); + return this.getToken(HiveSql.T_NVARCHAR, 0); }; Non_reserved_wordsContext.prototype.T_NO = function() { - return this.getToken(HiveSqlParser.T_NO, 0); + return this.getToken(HiveSql.T_NO, 0); }; Non_reserved_wordsContext.prototype.T_NOCOMPRESS = function() { - return this.getToken(HiveSqlParser.T_NOCOMPRESS, 0); + return this.getToken(HiveSql.T_NOCOMPRESS, 0); }; Non_reserved_wordsContext.prototype.T_NOCOUNT = function() { - return this.getToken(HiveSqlParser.T_NOCOUNT, 0); + return this.getToken(HiveSql.T_NOCOUNT, 0); }; Non_reserved_wordsContext.prototype.T_NOLOGGING = function() { - return this.getToken(HiveSqlParser.T_NOLOGGING, 0); + return this.getToken(HiveSql.T_NOLOGGING, 0); }; Non_reserved_wordsContext.prototype.T_NONE = function() { - return this.getToken(HiveSqlParser.T_NONE, 0); + return this.getToken(HiveSql.T_NONE, 0); }; Non_reserved_wordsContext.prototype.T_NOT = function() { - return this.getToken(HiveSqlParser.T_NOT, 0); + return this.getToken(HiveSql.T_NOT, 0); }; Non_reserved_wordsContext.prototype.T_NOTFOUND = function() { - return this.getToken(HiveSqlParser.T_NOTFOUND, 0); + return this.getToken(HiveSql.T_NOTFOUND, 0); }; Non_reserved_wordsContext.prototype.T_NUMERIC = function() { - return this.getToken(HiveSqlParser.T_NUMERIC, 0); + return this.getToken(HiveSql.T_NUMERIC, 0); }; Non_reserved_wordsContext.prototype.T_NUMBER = function() { - return this.getToken(HiveSqlParser.T_NUMBER, 0); + return this.getToken(HiveSql.T_NUMBER, 0); }; Non_reserved_wordsContext.prototype.T_OBJECT = function() { - return this.getToken(HiveSqlParser.T_OBJECT, 0); + return this.getToken(HiveSql.T_OBJECT, 0); }; Non_reserved_wordsContext.prototype.T_OFF = function() { - return this.getToken(HiveSqlParser.T_OFF, 0); + return this.getToken(HiveSql.T_OFF, 0); }; Non_reserved_wordsContext.prototype.T_ON = function() { - return this.getToken(HiveSqlParser.T_ON, 0); + return this.getToken(HiveSql.T_ON, 0); }; Non_reserved_wordsContext.prototype.T_ONLY = function() { - return this.getToken(HiveSqlParser.T_ONLY, 0); + return this.getToken(HiveSql.T_ONLY, 0); }; Non_reserved_wordsContext.prototype.T_OPEN = function() { - return this.getToken(HiveSqlParser.T_OPEN, 0); + return this.getToken(HiveSql.T_OPEN, 0); }; Non_reserved_wordsContext.prototype.T_OR = function() { - return this.getToken(HiveSqlParser.T_OR, 0); + return this.getToken(HiveSql.T_OR, 0); }; Non_reserved_wordsContext.prototype.T_ORDER = function() { - return this.getToken(HiveSqlParser.T_ORDER, 0); + return this.getToken(HiveSql.T_ORDER, 0); }; Non_reserved_wordsContext.prototype.T_OUT = function() { - return this.getToken(HiveSqlParser.T_OUT, 0); + return this.getToken(HiveSql.T_OUT, 0); }; Non_reserved_wordsContext.prototype.T_OUTER = function() { - return this.getToken(HiveSqlParser.T_OUTER, 0); + return this.getToken(HiveSql.T_OUTER, 0); }; Non_reserved_wordsContext.prototype.T_OVER = function() { - return this.getToken(HiveSqlParser.T_OVER, 0); + return this.getToken(HiveSql.T_OVER, 0); }; Non_reserved_wordsContext.prototype.T_OVERWRITE = function() { - return this.getToken(HiveSqlParser.T_OVERWRITE, 0); + return this.getToken(HiveSql.T_OVERWRITE, 0); }; Non_reserved_wordsContext.prototype.T_OWNER = function() { - return this.getToken(HiveSqlParser.T_OWNER, 0); + return this.getToken(HiveSql.T_OWNER, 0); }; Non_reserved_wordsContext.prototype.T_PACKAGE = function() { - return this.getToken(HiveSqlParser.T_PACKAGE, 0); + return this.getToken(HiveSql.T_PACKAGE, 0); }; Non_reserved_wordsContext.prototype.T_PART_COUNT = function() { - return this.getToken(HiveSqlParser.T_PART_COUNT, 0); + return this.getToken(HiveSql.T_PART_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_PART_LOC = function() { - return this.getToken(HiveSqlParser.T_PART_LOC, 0); + return this.getToken(HiveSql.T_PART_LOC, 0); }; Non_reserved_wordsContext.prototype.T_PARTITION = function() { - return this.getToken(HiveSqlParser.T_PARTITION, 0); + return this.getToken(HiveSql.T_PARTITION, 0); }; Non_reserved_wordsContext.prototype.T_PCTFREE = function() { - return this.getToken(HiveSqlParser.T_PCTFREE, 0); + return this.getToken(HiveSql.T_PCTFREE, 0); }; Non_reserved_wordsContext.prototype.T_PCTUSED = function() { - return this.getToken(HiveSqlParser.T_PCTUSED, 0); + return this.getToken(HiveSql.T_PCTUSED, 0); }; Non_reserved_wordsContext.prototype.T_PRECISION = function() { - return this.getToken(HiveSqlParser.T_PRECISION, 0); + return this.getToken(HiveSql.T_PRECISION, 0); }; Non_reserved_wordsContext.prototype.T_PRESERVE = function() { - return this.getToken(HiveSqlParser.T_PRESERVE, 0); + return this.getToken(HiveSql.T_PRESERVE, 0); }; Non_reserved_wordsContext.prototype.T_PRIMARY = function() { - return this.getToken(HiveSqlParser.T_PRIMARY, 0); + return this.getToken(HiveSql.T_PRIMARY, 0); }; Non_reserved_wordsContext.prototype.T_PRINT = function() { - return this.getToken(HiveSqlParser.T_PRINT, 0); + return this.getToken(HiveSql.T_PRINT, 0); }; Non_reserved_wordsContext.prototype.T_PROC = function() { - return this.getToken(HiveSqlParser.T_PROC, 0); + return this.getToken(HiveSql.T_PROC, 0); }; Non_reserved_wordsContext.prototype.T_PROCEDURE = function() { - return this.getToken(HiveSqlParser.T_PROCEDURE, 0); + return this.getToken(HiveSql.T_PROCEDURE, 0); }; Non_reserved_wordsContext.prototype.T_PWD = function() { - return this.getToken(HiveSqlParser.T_PWD, 0); + return this.getToken(HiveSql.T_PWD, 0); }; Non_reserved_wordsContext.prototype.T_QUALIFY = function() { - return this.getToken(HiveSqlParser.T_QUALIFY, 0); + return this.getToken(HiveSql.T_QUALIFY, 0); }; Non_reserved_wordsContext.prototype.T_QUERY_BAND = function() { - return this.getToken(HiveSqlParser.T_QUERY_BAND, 0); + return this.getToken(HiveSql.T_QUERY_BAND, 0); }; Non_reserved_wordsContext.prototype.T_QUIT = function() { - return this.getToken(HiveSqlParser.T_QUIT, 0); + return this.getToken(HiveSql.T_QUIT, 0); }; Non_reserved_wordsContext.prototype.T_QUOTED_IDENTIFIER = function() { - return this.getToken(HiveSqlParser.T_QUOTED_IDENTIFIER, 0); + return this.getToken(HiveSql.T_QUOTED_IDENTIFIER, 0); }; Non_reserved_wordsContext.prototype.T_RAISE = function() { - return this.getToken(HiveSqlParser.T_RAISE, 0); + return this.getToken(HiveSql.T_RAISE, 0); }; Non_reserved_wordsContext.prototype.T_RANK = function() { - return this.getToken(HiveSqlParser.T_RANK, 0); + return this.getToken(HiveSql.T_RANK, 0); }; Non_reserved_wordsContext.prototype.T_REAL = function() { - return this.getToken(HiveSqlParser.T_REAL, 0); + return this.getToken(HiveSql.T_REAL, 0); }; Non_reserved_wordsContext.prototype.T_REFERENCES = function() { - return this.getToken(HiveSqlParser.T_REFERENCES, 0); + return this.getToken(HiveSql.T_REFERENCES, 0); }; Non_reserved_wordsContext.prototype.T_REGEXP = function() { - return this.getToken(HiveSqlParser.T_REGEXP, 0); + return this.getToken(HiveSql.T_REGEXP, 0); }; Non_reserved_wordsContext.prototype.T_RR = function() { - return this.getToken(HiveSqlParser.T_RR, 0); + return this.getToken(HiveSql.T_RR, 0); }; Non_reserved_wordsContext.prototype.T_REPLACE = function() { - return this.getToken(HiveSqlParser.T_REPLACE, 0); + return this.getToken(HiveSql.T_REPLACE, 0); }; Non_reserved_wordsContext.prototype.T_RESIGNAL = function() { - return this.getToken(HiveSqlParser.T_RESIGNAL, 0); + return this.getToken(HiveSql.T_RESIGNAL, 0); }; Non_reserved_wordsContext.prototype.T_RESTRICT = function() { - return this.getToken(HiveSqlParser.T_RESTRICT, 0); + return this.getToken(HiveSql.T_RESTRICT, 0); }; Non_reserved_wordsContext.prototype.T_RESULT = function() { - return this.getToken(HiveSqlParser.T_RESULT, 0); + return this.getToken(HiveSql.T_RESULT, 0); }; Non_reserved_wordsContext.prototype.T_RESULT_SET_LOCATOR = function() { - return this.getToken(HiveSqlParser.T_RESULT_SET_LOCATOR, 0); + return this.getToken(HiveSql.T_RESULT_SET_LOCATOR, 0); }; Non_reserved_wordsContext.prototype.T_RETURN = function() { - return this.getToken(HiveSqlParser.T_RETURN, 0); + return this.getToken(HiveSql.T_RETURN, 0); }; Non_reserved_wordsContext.prototype.T_RETURNS = function() { - return this.getToken(HiveSqlParser.T_RETURNS, 0); + return this.getToken(HiveSql.T_RETURNS, 0); }; Non_reserved_wordsContext.prototype.T_REVERSE = function() { - return this.getToken(HiveSqlParser.T_REVERSE, 0); + return this.getToken(HiveSql.T_REVERSE, 0); }; Non_reserved_wordsContext.prototype.T_RIGHT = function() { - return this.getToken(HiveSqlParser.T_RIGHT, 0); + return this.getToken(HiveSql.T_RIGHT, 0); }; Non_reserved_wordsContext.prototype.T_RLIKE = function() { - return this.getToken(HiveSqlParser.T_RLIKE, 0); + return this.getToken(HiveSql.T_RLIKE, 0); }; Non_reserved_wordsContext.prototype.T_RS = function() { - return this.getToken(HiveSqlParser.T_RS, 0); + return this.getToken(HiveSql.T_RS, 0); }; Non_reserved_wordsContext.prototype.T_ROLE = function() { - return this.getToken(HiveSqlParser.T_ROLE, 0); + return this.getToken(HiveSql.T_ROLE, 0); }; Non_reserved_wordsContext.prototype.T_ROLLBACK = function() { - return this.getToken(HiveSqlParser.T_ROLLBACK, 0); + return this.getToken(HiveSql.T_ROLLBACK, 0); }; Non_reserved_wordsContext.prototype.T_ROW = function() { - return this.getToken(HiveSqlParser.T_ROW, 0); + return this.getToken(HiveSql.T_ROW, 0); }; Non_reserved_wordsContext.prototype.T_ROWS = function() { - return this.getToken(HiveSqlParser.T_ROWS, 0); + return this.getToken(HiveSql.T_ROWS, 0); }; Non_reserved_wordsContext.prototype.T_ROW_COUNT = function() { - return this.getToken(HiveSqlParser.T_ROW_COUNT, 0); + return this.getToken(HiveSql.T_ROW_COUNT, 0); }; Non_reserved_wordsContext.prototype.T_ROW_NUMBER = function() { - return this.getToken(HiveSqlParser.T_ROW_NUMBER, 0); + return this.getToken(HiveSql.T_ROW_NUMBER, 0); }; Non_reserved_wordsContext.prototype.T_SCHEMA = function() { - return this.getToken(HiveSqlParser.T_SCHEMA, 0); + return this.getToken(HiveSql.T_SCHEMA, 0); }; Non_reserved_wordsContext.prototype.T_SECOND = function() { - return this.getToken(HiveSqlParser.T_SECOND, 0); + return this.getToken(HiveSql.T_SECOND, 0); }; Non_reserved_wordsContext.prototype.T_SECONDS = function() { - return this.getToken(HiveSqlParser.T_SECONDS, 0); + return this.getToken(HiveSql.T_SECONDS, 0); }; Non_reserved_wordsContext.prototype.T_SECURITY = function() { - return this.getToken(HiveSqlParser.T_SECURITY, 0); + return this.getToken(HiveSql.T_SECURITY, 0); }; Non_reserved_wordsContext.prototype.T_SEGMENT = function() { - return this.getToken(HiveSqlParser.T_SEGMENT, 0); + return this.getToken(HiveSql.T_SEGMENT, 0); }; Non_reserved_wordsContext.prototype.T_SEL = function() { - return this.getToken(HiveSqlParser.T_SEL, 0); + return this.getToken(HiveSql.T_SEL, 0); }; Non_reserved_wordsContext.prototype.T_SELECT = function() { - return this.getToken(HiveSqlParser.T_SELECT, 0); + return this.getToken(HiveSql.T_SELECT, 0); }; Non_reserved_wordsContext.prototype.T_SESSION = function() { - return this.getToken(HiveSqlParser.T_SESSION, 0); + return this.getToken(HiveSql.T_SESSION, 0); }; Non_reserved_wordsContext.prototype.T_SESSIONS = function() { - return this.getToken(HiveSqlParser.T_SESSIONS, 0); + return this.getToken(HiveSql.T_SESSIONS, 0); }; Non_reserved_wordsContext.prototype.T_SET = function() { - return this.getToken(HiveSqlParser.T_SET, 0); + return this.getToken(HiveSql.T_SET, 0); }; Non_reserved_wordsContext.prototype.T_SETS = function() { - return this.getToken(HiveSqlParser.T_SETS, 0); + return this.getToken(HiveSql.T_SETS, 0); }; Non_reserved_wordsContext.prototype.T_SHARE = function() { - return this.getToken(HiveSqlParser.T_SHARE, 0); + return this.getToken(HiveSql.T_SHARE, 0); }; Non_reserved_wordsContext.prototype.T_SIGNAL = function() { - return this.getToken(HiveSqlParser.T_SIGNAL, 0); + return this.getToken(HiveSql.T_SIGNAL, 0); }; Non_reserved_wordsContext.prototype.T_SIMPLE_DOUBLE = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_DOUBLE, 0); + return this.getToken(HiveSql.T_SIMPLE_DOUBLE, 0); }; Non_reserved_wordsContext.prototype.T_SIMPLE_FLOAT = function() { - return this.getToken(HiveSqlParser.T_SIMPLE_FLOAT, 0); + return this.getToken(HiveSql.T_SIMPLE_FLOAT, 0); }; Non_reserved_wordsContext.prototype.T_SMALLDATETIME = function() { - return this.getToken(HiveSqlParser.T_SMALLDATETIME, 0); + return this.getToken(HiveSql.T_SMALLDATETIME, 0); }; Non_reserved_wordsContext.prototype.T_SMALLINT = function() { - return this.getToken(HiveSqlParser.T_SMALLINT, 0); + return this.getToken(HiveSql.T_SMALLINT, 0); }; Non_reserved_wordsContext.prototype.T_SQL = function() { - return this.getToken(HiveSqlParser.T_SQL, 0); + return this.getToken(HiveSql.T_SQL, 0); }; Non_reserved_wordsContext.prototype.T_SQLEXCEPTION = function() { - return this.getToken(HiveSqlParser.T_SQLEXCEPTION, 0); + return this.getToken(HiveSql.T_SQLEXCEPTION, 0); }; Non_reserved_wordsContext.prototype.T_SQLINSERT = function() { - return this.getToken(HiveSqlParser.T_SQLINSERT, 0); + return this.getToken(HiveSql.T_SQLINSERT, 0); }; Non_reserved_wordsContext.prototype.T_SQLSTATE = function() { - return this.getToken(HiveSqlParser.T_SQLSTATE, 0); + return this.getToken(HiveSql.T_SQLSTATE, 0); }; Non_reserved_wordsContext.prototype.T_SQLWARNING = function() { - return this.getToken(HiveSqlParser.T_SQLWARNING, 0); + return this.getToken(HiveSql.T_SQLWARNING, 0); }; Non_reserved_wordsContext.prototype.T_STATS = function() { - return this.getToken(HiveSqlParser.T_STATS, 0); + return this.getToken(HiveSql.T_STATS, 0); }; Non_reserved_wordsContext.prototype.T_STATISTICS = function() { - return this.getToken(HiveSqlParser.T_STATISTICS, 0); + return this.getToken(HiveSql.T_STATISTICS, 0); }; Non_reserved_wordsContext.prototype.T_STEP = function() { - return this.getToken(HiveSqlParser.T_STEP, 0); + return this.getToken(HiveSql.T_STEP, 0); }; Non_reserved_wordsContext.prototype.T_STDEV = function() { - return this.getToken(HiveSqlParser.T_STDEV, 0); + return this.getToken(HiveSql.T_STDEV, 0); }; Non_reserved_wordsContext.prototype.T_STORAGE = function() { - return this.getToken(HiveSqlParser.T_STORAGE, 0); + return this.getToken(HiveSql.T_STORAGE, 0); }; Non_reserved_wordsContext.prototype.T_STORED = function() { - return this.getToken(HiveSqlParser.T_STORED, 0); + return this.getToken(HiveSql.T_STORED, 0); }; Non_reserved_wordsContext.prototype.T_STRING = function() { - return this.getToken(HiveSqlParser.T_STRING, 0); + return this.getToken(HiveSql.T_STRING, 0); }; Non_reserved_wordsContext.prototype.T_SUBDIR = function() { - return this.getToken(HiveSqlParser.T_SUBDIR, 0); + return this.getToken(HiveSql.T_SUBDIR, 0); }; Non_reserved_wordsContext.prototype.T_SUBSTRING = function() { - return this.getToken(HiveSqlParser.T_SUBSTRING, 0); + return this.getToken(HiveSql.T_SUBSTRING, 0); }; Non_reserved_wordsContext.prototype.T_SUM = function() { - return this.getToken(HiveSqlParser.T_SUM, 0); + return this.getToken(HiveSql.T_SUM, 0); }; Non_reserved_wordsContext.prototype.T_SUMMARY = function() { - return this.getToken(HiveSqlParser.T_SUMMARY, 0); + return this.getToken(HiveSql.T_SUMMARY, 0); }; Non_reserved_wordsContext.prototype.T_SYSDATE = function() { - return this.getToken(HiveSqlParser.T_SYSDATE, 0); + return this.getToken(HiveSql.T_SYSDATE, 0); }; Non_reserved_wordsContext.prototype.T_SYS_REFCURSOR = function() { - return this.getToken(HiveSqlParser.T_SYS_REFCURSOR, 0); + return this.getToken(HiveSql.T_SYS_REFCURSOR, 0); }; Non_reserved_wordsContext.prototype.T_TABLE = function() { - return this.getToken(HiveSqlParser.T_TABLE, 0); + return this.getToken(HiveSql.T_TABLE, 0); }; Non_reserved_wordsContext.prototype.T_TABLESPACE = function() { - return this.getToken(HiveSqlParser.T_TABLESPACE, 0); + return this.getToken(HiveSql.T_TABLESPACE, 0); }; Non_reserved_wordsContext.prototype.T_TEMPORARY = function() { - return this.getToken(HiveSqlParser.T_TEMPORARY, 0); + return this.getToken(HiveSql.T_TEMPORARY, 0); }; Non_reserved_wordsContext.prototype.T_TERMINATED = function() { - return this.getToken(HiveSqlParser.T_TERMINATED, 0); + return this.getToken(HiveSql.T_TERMINATED, 0); }; Non_reserved_wordsContext.prototype.T_TEXTIMAGE_ON = function() { - return this.getToken(HiveSqlParser.T_TEXTIMAGE_ON, 0); + return this.getToken(HiveSql.T_TEXTIMAGE_ON, 0); }; Non_reserved_wordsContext.prototype.T_THEN = function() { - return this.getToken(HiveSqlParser.T_THEN, 0); + return this.getToken(HiveSql.T_THEN, 0); }; Non_reserved_wordsContext.prototype.T_TIMESTAMP = function() { - return this.getToken(HiveSqlParser.T_TIMESTAMP, 0); + return this.getToken(HiveSql.T_TIMESTAMP, 0); }; Non_reserved_wordsContext.prototype.T_TITLE = function() { - return this.getToken(HiveSqlParser.T_TITLE, 0); + return this.getToken(HiveSql.T_TITLE, 0); }; Non_reserved_wordsContext.prototype.T_TO = function() { - return this.getToken(HiveSqlParser.T_TO, 0); + return this.getToken(HiveSql.T_TO, 0); }; Non_reserved_wordsContext.prototype.T_TOP = function() { - return this.getToken(HiveSqlParser.T_TOP, 0); + return this.getToken(HiveSql.T_TOP, 0); }; Non_reserved_wordsContext.prototype.T_TRANSACTION = function() { - return this.getToken(HiveSqlParser.T_TRANSACTION, 0); + return this.getToken(HiveSql.T_TRANSACTION, 0); }; Non_reserved_wordsContext.prototype.T_TRIM = function() { - return this.getToken(HiveSqlParser.T_TRIM, 0); + return this.getToken(HiveSql.T_TRIM, 0); }; Non_reserved_wordsContext.prototype.T_TRUE = function() { - return this.getToken(HiveSqlParser.T_TRUE, 0); + return this.getToken(HiveSql.T_TRUE, 0); }; Non_reserved_wordsContext.prototype.T_TRUNCATE = function() { - return this.getToken(HiveSqlParser.T_TRUNCATE, 0); + return this.getToken(HiveSql.T_TRUNCATE, 0); }; Non_reserved_wordsContext.prototype.T_UNIQUE = function() { - return this.getToken(HiveSqlParser.T_UNIQUE, 0); + return this.getToken(HiveSql.T_UNIQUE, 0); }; Non_reserved_wordsContext.prototype.T_UPDATE = function() { - return this.getToken(HiveSqlParser.T_UPDATE, 0); + return this.getToken(HiveSql.T_UPDATE, 0); }; Non_reserved_wordsContext.prototype.T_UR = function() { - return this.getToken(HiveSqlParser.T_UR, 0); + return this.getToken(HiveSql.T_UR, 0); }; Non_reserved_wordsContext.prototype.T_USE = function() { - return this.getToken(HiveSqlParser.T_USE, 0); + return this.getToken(HiveSql.T_USE, 0); }; Non_reserved_wordsContext.prototype.T_USER = function() { - return this.getToken(HiveSqlParser.T_USER, 0); + return this.getToken(HiveSql.T_USER, 0); }; Non_reserved_wordsContext.prototype.T_USING = function() { - return this.getToken(HiveSqlParser.T_USING, 0); + return this.getToken(HiveSql.T_USING, 0); }; Non_reserved_wordsContext.prototype.T_VALUE = function() { - return this.getToken(HiveSqlParser.T_VALUE, 0); + return this.getToken(HiveSql.T_VALUE, 0); }; Non_reserved_wordsContext.prototype.T_VALUES = function() { - return this.getToken(HiveSqlParser.T_VALUES, 0); + return this.getToken(HiveSql.T_VALUES, 0); }; Non_reserved_wordsContext.prototype.T_VAR = function() { - return this.getToken(HiveSqlParser.T_VAR, 0); + return this.getToken(HiveSql.T_VAR, 0); }; Non_reserved_wordsContext.prototype.T_VARCHAR = function() { - return this.getToken(HiveSqlParser.T_VARCHAR, 0); + return this.getToken(HiveSql.T_VARCHAR, 0); }; Non_reserved_wordsContext.prototype.T_VARCHAR2 = function() { - return this.getToken(HiveSqlParser.T_VARCHAR2, 0); + return this.getToken(HiveSql.T_VARCHAR2, 0); }; Non_reserved_wordsContext.prototype.T_VARYING = function() { - return this.getToken(HiveSqlParser.T_VARYING, 0); + return this.getToken(HiveSql.T_VARYING, 0); }; Non_reserved_wordsContext.prototype.T_VARIANCE = function() { - return this.getToken(HiveSqlParser.T_VARIANCE, 0); + return this.getToken(HiveSql.T_VARIANCE, 0); }; Non_reserved_wordsContext.prototype.T_VOLATILE = function() { - return this.getToken(HiveSqlParser.T_VOLATILE, 0); + return this.getToken(HiveSql.T_VOLATILE, 0); }; Non_reserved_wordsContext.prototype.T_WHILE = function() { - return this.getToken(HiveSqlParser.T_WHILE, 0); + return this.getToken(HiveSql.T_WHILE, 0); }; Non_reserved_wordsContext.prototype.T_WITH = function() { - return this.getToken(HiveSqlParser.T_WITH, 0); + return this.getToken(HiveSql.T_WITH, 0); }; Non_reserved_wordsContext.prototype.T_WITHOUT = function() { - return this.getToken(HiveSqlParser.T_WITHOUT, 0); + return this.getToken(HiveSql.T_WITHOUT, 0); }; Non_reserved_wordsContext.prototype.T_WORK = function() { - return this.getToken(HiveSqlParser.T_WORK, 0); + return this.getToken(HiveSql.T_WORK, 0); }; Non_reserved_wordsContext.prototype.T_XACT_ABORT = function() { - return this.getToken(HiveSqlParser.T_XACT_ABORT, 0); + return this.getToken(HiveSql.T_XACT_ABORT, 0); }; Non_reserved_wordsContext.prototype.T_XML = function() { - return this.getToken(HiveSqlParser.T_XML, 0); + return this.getToken(HiveSql.T_XML, 0); }; Non_reserved_wordsContext.prototype.T_YES = function() { - return this.getToken(HiveSqlParser.T_YES, 0); + return this.getToken(HiveSql.T_YES, 0); }; Non_reserved_wordsContext.prototype.enterRule = function(listener) { @@ -37595,18 +37695,18 @@ Non_reserved_wordsContext.prototype.accept = function(visitor) { -HiveSqlParser.Non_reserved_wordsContext = Non_reserved_wordsContext; +HiveSql.Non_reserved_wordsContext = Non_reserved_wordsContext; -HiveSqlParser.prototype.non_reserved_words = function() { +HiveSql.prototype.non_reserved_words = function() { var localctx = new Non_reserved_wordsContext(this, this._ctx, this.state); - this.enterRule(localctx, 450, HiveSqlParser.RULE_non_reserved_words); + this.enterRule(localctx, 450, HiveSql.RULE_non_reserved_words); var _la = 0; // Token type try { this.enterOuterAlt(localctx, 1); - this.state = 3340; + this.state = 3334; _la = this._input.LA(1); - if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSqlParser.T_GO) | (1 << HiveSqlParser.T_BEGIN) | (1 << HiveSqlParser.T_EXCEPTION) | (1 << HiveSqlParser.T_THEN) | (1 << HiveSqlParser.T_SET) | (1 << HiveSqlParser.T_ALLOCATE) | (1 << HiveSqlParser.T_CURSOR) | (1 << HiveSqlParser.T_FOR) | (1 << HiveSqlParser.T_RESULT) | (1 << HiveSqlParser.T_PROCEDURE) | (1 << HiveSqlParser.T_ASSOCIATE))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSqlParser.T_LOCATOR - 32)) | (1 << (HiveSqlParser.T_LOCATORS - 32)) | (1 << (HiveSqlParser.T_WITH - 32)) | (1 << (HiveSqlParser.T_TRANSACTION - 32)) | (1 << (HiveSqlParser.T_BREAK - 32)) | (1 << (HiveSqlParser.T_CALL - 32)) | (1 << (HiveSqlParser.T_DECLARE - 32)) | (1 << (HiveSqlParser.T_AS - 32)) | (1 << (HiveSqlParser.T_CONSTANT - 32)) | (1 << (HiveSqlParser.T_CONDITION - 32)) | (1 << (HiveSqlParser.T_IS - 32)) | (1 << (HiveSqlParser.T_RETURN - 32)) | (1 << (HiveSqlParser.T_ONLY - 32)) | (1 << (HiveSqlParser.T_TO - 32)) | (1 << (HiveSqlParser.T_CALLER - 32)) | (1 << (HiveSqlParser.T_CLIENT - 32)) | (1 << (HiveSqlParser.T_WITHOUT - 32)) | (1 << (HiveSqlParser.T_CONTINUE - 32)) | (1 << (HiveSqlParser.T_EXIT - 32)) | (1 << (HiveSqlParser.T_HANDLER - 32)) | (1 << (HiveSqlParser.T_SQLEXCEPTION - 32)) | (1 << (HiveSqlParser.T_SQLWARNING - 32)) | (1 << (HiveSqlParser.T_NOT - 32)) | (1 << (HiveSqlParser.T_FOUND - 32)) | (1 << (HiveSqlParser.T_GLOBAL - 32)) | (1 << (HiveSqlParser.T_TEMPORARY - 32)) | (1 << (HiveSqlParser.T_TABLE - 32)) | (1 << (HiveSqlParser.T_CREATE - 32)) | (1 << (HiveSqlParser.T_IF - 32)) | (1 << (HiveSqlParser.T_EXISTS - 32)) | (1 << (HiveSqlParser.T_LOCAL - 32)) | (1 << (HiveSqlParser.T_MULTISET - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSqlParser.T_VOLATILE - 64)) | (1 << (HiveSqlParser.T_LIKE - 64)) | (1 << (HiveSqlParser.T_CONSTRAINT - 64)) | (1 << (HiveSqlParser.T_PRIMARY - 64)) | (1 << (HiveSqlParser.T_KEY - 64)) | (1 << (HiveSqlParser.T_UNIQUE - 64)) | (1 << (HiveSqlParser.T_REFERENCES - 64)) | (1 << (HiveSqlParser.T_IDENTITY - 64)) | (1 << (HiveSqlParser.T_AUTO_INCREMENT - 64)) | (1 << (HiveSqlParser.T_ENABLE - 64)) | (1 << (HiveSqlParser.T_CLUSTERED - 64)) | (1 << (HiveSqlParser.T_ASC - 64)) | (1 << (HiveSqlParser.T_DESC - 64)) | (1 << (HiveSqlParser.T_FOREIGN - 64)) | (1 << (HiveSqlParser.T_ON - 64)) | (1 << (HiveSqlParser.T_UPDATE - 64)) | (1 << (HiveSqlParser.T_DELETE - 64)) | (1 << (HiveSqlParser.T_NO - 64)) | (1 << (HiveSqlParser.T_ACTION - 64)) | (1 << (HiveSqlParser.T_RESTRICT - 64)) | (1 << (HiveSqlParser.T_DEFAULT - 64)) | (1 << (HiveSqlParser.T_CASCADE - 64)) | (1 << (HiveSqlParser.T_LOG - 64)) | (1 << (HiveSqlParser.T_FALLBACK - 64)) | (1 << (HiveSqlParser.T_COMMIT - 64)) | (1 << (HiveSqlParser.T_PRESERVE - 64)) | (1 << (HiveSqlParser.T_ROWS - 64)) | (1 << (HiveSqlParser.T_SEGMENT - 64)) | (1 << (HiveSqlParser.T_CREATION - 64)) | (1 << (HiveSqlParser.T_IMMEDIATE - 64)) | (1 << (HiveSqlParser.T_DEFERRED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSqlParser.T_PCTFREE - 96)) | (1 << (HiveSqlParser.T_PCTUSED - 96)) | (1 << (HiveSqlParser.T_INITRANS - 96)) | (1 << (HiveSqlParser.T_MAXTRANS - 96)) | (1 << (HiveSqlParser.T_NOCOMPRESS - 96)) | (1 << (HiveSqlParser.T_LOGGING - 96)) | (1 << (HiveSqlParser.T_NOLOGGING - 96)) | (1 << (HiveSqlParser.T_STORAGE - 96)) | (1 << (HiveSqlParser.T_TABLESPACE - 96)) | (1 << (HiveSqlParser.T_INDEX - 96)) | (1 << (HiveSqlParser.T_IN - 96)) | (1 << (HiveSqlParser.T_REPLACE - 96)) | (1 << (HiveSqlParser.T_DISTRIBUTE - 96)) | (1 << (HiveSqlParser.T_BY - 96)) | (1 << (HiveSqlParser.T_HASH - 96)) | (1 << (HiveSqlParser.T_LOGGED - 96)) | (1 << (HiveSqlParser.T_COMPRESS - 96)) | (1 << (HiveSqlParser.T_YES - 96)) | (1 << (HiveSqlParser.T_DEFINITION - 96)) | (1 << (HiveSqlParser.T_DROP - 96)) | (1 << (HiveSqlParser.T_DATA - 96)) | (1 << (HiveSqlParser.T_STORED - 96)) | (1 << (HiveSqlParser.T_ROW - 96)) | (1 << (HiveSqlParser.T_FORMAT - 96)) | (1 << (HiveSqlParser.T_DELIMITED - 96)) | (1 << (HiveSqlParser.T_FIELDS - 96)) | (1 << (HiveSqlParser.T_TERMINATED - 96)) | (1 << (HiveSqlParser.T_ESCAPED - 96)) | (1 << (HiveSqlParser.T_COLLECTION - 96)) | (1 << (HiveSqlParser.T_ITEMS - 96)) | (1 << (HiveSqlParser.T_MAP - 96)) | (1 << (HiveSqlParser.T_KEYS - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSqlParser.T_LINES - 128)) | (1 << (HiveSqlParser.T_DEFINED - 128)) | (1 << (HiveSqlParser.T_TEXTIMAGE_ON - 128)) | (1 << (HiveSqlParser.T_COMMENT - 128)) | (1 << (HiveSqlParser.T_CHARACTER - 128)) | (1 << (HiveSqlParser.T_CHARSET - 128)) | (1 << (HiveSqlParser.T_ENGINE - 128)) | (1 << (HiveSqlParser.T_ALTER - 128)) | (1 << (HiveSqlParser.T_ADD2 - 128)) | (1 << (HiveSqlParser.T_CHAR - 128)) | (1 << (HiveSqlParser.T_BIGINT - 128)) | (1 << (HiveSqlParser.T_BINARY_DOUBLE - 128)) | (1 << (HiveSqlParser.T_BINARY_FLOAT - 128)) | (1 << (HiveSqlParser.T_BIT - 128)) | (1 << (HiveSqlParser.T_DATE - 128)) | (1 << (HiveSqlParser.T_DATETIME - 128)) | (1 << (HiveSqlParser.T_DEC - 128)) | (1 << (HiveSqlParser.T_DECIMAL - 128)) | (1 << (HiveSqlParser.T_DOUBLE - 128)) | (1 << (HiveSqlParser.T_PRECISION - 128)) | (1 << (HiveSqlParser.T_FLOAT - 128)) | (1 << (HiveSqlParser.T_INT - 128)) | (1 << (HiveSqlParser.T_INT2 - 128)) | (1 << (HiveSqlParser.T_INT4 - 128)) | (1 << (HiveSqlParser.T_INT8 - 128)) | (1 << (HiveSqlParser.T_INTEGER - 128)) | (1 << (HiveSqlParser.T_NCHAR - 128)) | (1 << (HiveSqlParser.T_NVARCHAR - 128)) | (1 << (HiveSqlParser.T_NUMBER - 128)) | (1 << (HiveSqlParser.T_NUMERIC - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSqlParser.T_REAL - 160)) | (1 << (HiveSqlParser.T_RESULT_SET_LOCATOR - 160)) | (1 << (HiveSqlParser.T_VARYING - 160)) | (1 << (HiveSqlParser.T_SIMPLE_FLOAT - 160)) | (1 << (HiveSqlParser.T_SIMPLE_DOUBLE - 160)) | (1 << (HiveSqlParser.T_SMALLINT - 160)) | (1 << (HiveSqlParser.T_SMALLDATETIME - 160)) | (1 << (HiveSqlParser.T_STRING - 160)) | (1 << (HiveSqlParser.T_SYS_REFCURSOR - 160)) | (1 << (HiveSqlParser.T_TIMESTAMP - 160)) | (1 << (HiveSqlParser.T_VARCHAR - 160)) | (1 << (HiveSqlParser.T_VARCHAR2 - 160)) | (1 << (HiveSqlParser.T_XML - 160)) | (1 << (HiveSqlParser.T_MAX - 160)) | (1 << (HiveSqlParser.T_BYTE - 160)) | (1 << (HiveSqlParser.T_CASESPECIFIC - 160)) | (1 << (HiveSqlParser.T_CS - 160)) | (1 << (HiveSqlParser.T_DATABASE - 160)) | (1 << (HiveSqlParser.T_SCHEMA - 160)) | (1 << (HiveSqlParser.T_LOCATION - 160)) | (1 << (HiveSqlParser.T_OR - 160)) | (1 << (HiveSqlParser.T_FUNCTION - 160)) | (1 << (HiveSqlParser.T_RETURNS - 160)) | (1 << (HiveSqlParser.T_PACKAGE - 160)) | (1 << (HiveSqlParser.T_PROC - 160)) | (1 << (HiveSqlParser.T_BODY - 160)) | (1 << (HiveSqlParser.T_OUT - 160)) | (1 << (HiveSqlParser.T_INOUT - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSqlParser.T_LANGUAGE - 192)) | (1 << (HiveSqlParser.T_SQL - 192)) | (1 << (HiveSqlParser.T_SECURITY - 192)) | (1 << (HiveSqlParser.T_CREATOR - 192)) | (1 << (HiveSqlParser.T_DEFINER - 192)) | (1 << (HiveSqlParser.T_INVOKER - 192)) | (1 << (HiveSqlParser.T_OWNER - 192)) | (1 << (HiveSqlParser.T_DYNAMIC - 192)) | (1 << (HiveSqlParser.T_SETS - 192)) | (1 << (HiveSqlParser.T_EXEC - 192)) | (1 << (HiveSqlParser.T_EXECUTE - 192)) | (1 << (HiveSqlParser.T_INTO - 192)) | (1 << (HiveSqlParser.T_INCLUDE - 192)) | (1 << (HiveSqlParser.T_INSERT - 192)) | (1 << (HiveSqlParser.T_OVERWRITE - 192)) | (1 << (HiveSqlParser.T_VALUES - 192)) | (1 << (HiveSqlParser.T_DIRECTORY - 192)) | (1 << (HiveSqlParser.T_GET - 192)) | (1 << (HiveSqlParser.T_DIAGNOSTICS - 192)) | (1 << (HiveSqlParser.T_MESSAGE_TEXT - 192)) | (1 << (HiveSqlParser.T_ROW_COUNT - 192)) | (1 << (HiveSqlParser.T_GRANT - 192)) | (1 << (HiveSqlParser.T_ROLE - 192)) | (1 << (HiveSqlParser.T_LEAVE - 192)) | (1 << (HiveSqlParser.T_OBJECT - 192)) | (1 << (HiveSqlParser.T_AT - 192)) | (1 << (HiveSqlParser.T_OPEN - 192)) | (1 << (HiveSqlParser.T_FETCH - 192)) | (1 << (HiveSqlParser.T_FROM - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSqlParser.T_COLLECT - 224)) | (1 << (HiveSqlParser.T_STATISTICS - 224)) | (1 << (HiveSqlParser.T_STATS - 224)) | (1 << (HiveSqlParser.T_COLUMN - 224)) | (1 << (HiveSqlParser.T_CLOSE - 224)) | (1 << (HiveSqlParser.T_CMP - 224)) | (1 << (HiveSqlParser.T_SUM - 224)) | (1 << (HiveSqlParser.T_COPY - 224)) | (1 << (HiveSqlParser.T_HDFS - 224)) | (1 << (HiveSqlParser.T_BATCHSIZE - 224)) | (1 << (HiveSqlParser.T_DELIMITER - 224)) | (1 << (HiveSqlParser.T_SQLINSERT - 224)) | (1 << (HiveSqlParser.T_IGNORE - 224)) | (1 << (HiveSqlParser.T_WORK - 224)) | (1 << (HiveSqlParser.T_PRINT - 224)) | (1 << (HiveSqlParser.T_QUIT - 224)) | (1 << (HiveSqlParser.T_RAISE - 224)) | (1 << (HiveSqlParser.T_RESIGNAL - 224)) | (1 << (HiveSqlParser.T_SQLSTATE - 224)) | (1 << (HiveSqlParser.T_VALUE - 224)) | (1 << (HiveSqlParser.T_ROLLBACK - 224)) | (1 << (HiveSqlParser.T_CURRENT - 224)) | (1 << (HiveSqlParser.T_CURRENT_SCHEMA - 224)) | (1 << (HiveSqlParser.T_ANSI_NULLS - 224)) | (1 << (HiveSqlParser.T_ANSI_PADDING - 224)) | (1 << (HiveSqlParser.T_NOCOUNT - 224)) | (1 << (HiveSqlParser.T_QUOTED_IDENTIFIER - 224)) | (1 << (HiveSqlParser.T_XACT_ABORT - 224)) | (1 << (HiveSqlParser.T_OFF - 224)) | (1 << (HiveSqlParser.T_QUERY_BAND - 224)) | (1 << (HiveSqlParser.T_NONE - 224)) | (1 << (HiveSqlParser.T_SESSION - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSqlParser.T_SIGNAL - 256)) | (1 << (HiveSqlParser.T_SUMMARY - 256)) | (1 << (HiveSqlParser.T_TOP - 256)) | (1 << (HiveSqlParser.T_LIMIT - 256)) | (1 << (HiveSqlParser.T_TRUNCATE - 256)) | (1 << (HiveSqlParser.T_USE - 256)) | (1 << (HiveSqlParser.T_WHILE - 256)) | (1 << (HiveSqlParser.T_DO - 256)) | (1 << (HiveSqlParser.T_LOOP - 256)) | (1 << (HiveSqlParser.T_REVERSE - 256)) | (1 << (HiveSqlParser.T_STEP - 256)) | (1 << (HiveSqlParser.T_USING - 256)) | (1 << (HiveSqlParser.T_ALL - 256)) | (1 << (HiveSqlParser.T_EXCEPT - 256)) | (1 << (HiveSqlParser.T_INTERSECT - 256)) | (1 << (HiveSqlParser.T_SELECT - 256)) | (1 << (HiveSqlParser.T_SEL - 256)) | (1 << (HiveSqlParser.T_DISTINCT - 256)) | (1 << (HiveSqlParser.T_TITLE - 256)) | (1 << (HiveSqlParser.T_INNER - 256)) | (1 << (HiveSqlParser.T_JOIN - 256)) | (1 << (HiveSqlParser.T_LEFT - 256)) | (1 << (HiveSqlParser.T_RIGHT - 256)) | (1 << (HiveSqlParser.T_FULL - 256)) | (1 << (HiveSqlParser.T_OUTER - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSqlParser.T_GROUP - 288)) | (1 << (HiveSqlParser.T_HAVING - 288)) | (1 << (HiveSqlParser.T_QUALIFY - 288)) | (1 << (HiveSqlParser.T_ORDER - 288)) | (1 << (HiveSqlParser.T_RR - 288)) | (1 << (HiveSqlParser.T_RS - 288)) | (1 << (HiveSqlParser.T_UR - 288)) | (1 << (HiveSqlParser.T_AND - 288)) | (1 << (HiveSqlParser.T_KEEP - 288)) | (1 << (HiveSqlParser.T_EXCLUSIVE - 288)) | (1 << (HiveSqlParser.T_SHARE - 288)) | (1 << (HiveSqlParser.T_LOCKS - 288)) | (1 << (HiveSqlParser.T_MERGE - 288)) | (1 << (HiveSqlParser.T_MATCHED - 288)) | (1 << (HiveSqlParser.T_DESCRIBE - 288)) | (1 << (HiveSqlParser.T_BETWEEN - 288)) | (1 << (HiveSqlParser.T_RLIKE - 288)) | (1 << (HiveSqlParser.T_REGEXP - 288)) | (1 << (HiveSqlParser.T_INTERVAL - 288)) | (1 << (HiveSqlParser.T_DAY - 288)) | (1 << (HiveSqlParser.T_DAYS - 288)) | (1 << (HiveSqlParser.T_MICROSECOND - 288)) | (1 << (HiveSqlParser.T_MICROSECONDS - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSqlParser.T_SECOND - 320)) | (1 << (HiveSqlParser.T_SECONDS - 320)) | (1 << (HiveSqlParser.T_CONCAT - 320)) | (1 << (HiveSqlParser.T_CASE - 320)) | (1 << (HiveSqlParser.T_ISOPEN - 320)) | (1 << (HiveSqlParser.T_NOTFOUND - 320)) | (1 << (HiveSqlParser.T_AVG - 320)) | (1 << (HiveSqlParser.T_COUNT - 320)) | (1 << (HiveSqlParser.T_COUNT_BIG - 320)) | (1 << (HiveSqlParser.T_CUME_DIST - 320)) | (1 << (HiveSqlParser.T_DENSE_RANK - 320)) | (1 << (HiveSqlParser.T_FIRST_VALUE - 320)) | (1 << (HiveSqlParser.T_LAG - 320)) | (1 << (HiveSqlParser.T_LAST_VALUE - 320)) | (1 << (HiveSqlParser.T_LEAD - 320)) | (1 << (HiveSqlParser.T_MIN - 320)) | (1 << (HiveSqlParser.T_RANK - 320)) | (1 << (HiveSqlParser.T_ROW_NUMBER - 320)) | (1 << (HiveSqlParser.T_STDEV - 320)) | (1 << (HiveSqlParser.T_VAR - 320)) | (1 << (HiveSqlParser.T_VARIANCE - 320)) | (1 << (HiveSqlParser.T_OVER - 320)) | (1 << (HiveSqlParser.T_PARTITION - 320)) | (1 << (HiveSqlParser.T_ACTIVITY_COUNT - 320)) | (1 << (HiveSqlParser.T_CAST - 320)) | (1 << (HiveSqlParser.T_CURRENT_DATE - 320)) | (1 << (HiveSqlParser.T_CURRENT_TIMESTAMP - 320)) | (1 << (HiveSqlParser.T_CURRENT_USER - 320)) | (1 << (HiveSqlParser.T_USER - 320)))) !== 0) || ((((_la - 356)) & ~0x1f) == 0 && ((1 << (_la - 356)) & ((1 << (HiveSqlParser.T_PART_COUNT - 356)) | (1 << (HiveSqlParser.T_PART_LOC - 356)) | (1 << (HiveSqlParser.T_TRIM - 356)) | (1 << (HiveSqlParser.T_SUBSTRING - 356)) | (1 << (HiveSqlParser.T_SYSDATE - 356)) | (1 << (HiveSqlParser.T_HIVE - 356)) | (1 << (HiveSqlParser.T_HOST - 356)) | (1 << (HiveSqlParser.T_TRUE - 356)) | (1 << (HiveSqlParser.T_FALSE - 356)) | (1 << (HiveSqlParser.T_DIR - 356)) | (1 << (HiveSqlParser.T_FILE - 356)) | (1 << (HiveSqlParser.T_FILES - 356)) | (1 << (HiveSqlParser.T_NEW - 356)) | (1 << (HiveSqlParser.T_PWD - 356)) | (1 << (HiveSqlParser.T_SESSIONS - 356)) | (1 << (HiveSqlParser.T_SUBDIR - 356)))) !== 0))) { + if(!((((_la) & ~0x1f) == 0 && ((1 << _la) & ((1 << HiveSql.T_ACTION) | (1 << HiveSql.T_ADD2) | (1 << HiveSql.T_ALL) | (1 << HiveSql.T_ALLOCATE) | (1 << HiveSql.T_ALTER) | (1 << HiveSql.T_AND) | (1 << HiveSql.T_ANSI_NULLS) | (1 << HiveSql.T_ANSI_PADDING) | (1 << HiveSql.T_AS) | (1 << HiveSql.T_ASC) | (1 << HiveSql.T_ASSOCIATE) | (1 << HiveSql.T_AT) | (1 << HiveSql.T_AUTO_INCREMENT) | (1 << HiveSql.T_AVG) | (1 << HiveSql.T_BATCHSIZE) | (1 << HiveSql.T_BEGIN) | (1 << HiveSql.T_BETWEEN) | (1 << HiveSql.T_BIGINT) | (1 << HiveSql.T_BINARY_DOUBLE) | (1 << HiveSql.T_BINARY_FLOAT) | (1 << HiveSql.T_BIT) | (1 << HiveSql.T_BODY) | (1 << HiveSql.T_BREAK) | (1 << HiveSql.T_BY) | (1 << HiveSql.T_BYTE) | (1 << HiveSql.T_CALL) | (1 << HiveSql.T_CALLER) | (1 << HiveSql.T_CASCADE) | (1 << HiveSql.T_CASE) | (1 << HiveSql.T_CASESPECIFIC))) !== 0) || ((((_la - 32)) & ~0x1f) == 0 && ((1 << (_la - 32)) & ((1 << (HiveSql.T_CAST - 32)) | (1 << (HiveSql.T_CHAR - 32)) | (1 << (HiveSql.T_CHARACTER - 32)) | (1 << (HiveSql.T_CHARSET - 32)) | (1 << (HiveSql.T_CLIENT - 32)) | (1 << (HiveSql.T_CLOSE - 32)) | (1 << (HiveSql.T_CLUSTERED - 32)) | (1 << (HiveSql.T_CMP - 32)) | (1 << (HiveSql.T_COLLECT - 32)) | (1 << (HiveSql.T_COLLECTION - 32)) | (1 << (HiveSql.T_COLUMN - 32)) | (1 << (HiveSql.T_COMMENT - 32)) | (1 << (HiveSql.T_CONSTANT - 32)) | (1 << (HiveSql.T_COMMIT - 32)) | (1 << (HiveSql.T_COMPRESS - 32)) | (1 << (HiveSql.T_CONCAT - 32)) | (1 << (HiveSql.T_CONDITION - 32)) | (1 << (HiveSql.T_CONSTRAINT - 32)) | (1 << (HiveSql.T_CONTINUE - 32)) | (1 << (HiveSql.T_COPY - 32)) | (1 << (HiveSql.T_COUNT - 32)) | (1 << (HiveSql.T_COUNT_BIG - 32)) | (1 << (HiveSql.T_CREATE - 32)) | (1 << (HiveSql.T_CREATION - 32)) | (1 << (HiveSql.T_CREATOR - 32)) | (1 << (HiveSql.T_CS - 32)) | (1 << (HiveSql.T_CURRENT - 32)) | (1 << (HiveSql.T_CURRENT_SCHEMA - 32)) | (1 << (HiveSql.T_CURSOR - 32)) | (1 << (HiveSql.T_DATABASE - 32)) | (1 << (HiveSql.T_DATA - 32)) | (1 << (HiveSql.T_DATE - 32)))) !== 0) || ((((_la - 64)) & ~0x1f) == 0 && ((1 << (_la - 64)) & ((1 << (HiveSql.T_DATETIME - 64)) | (1 << (HiveSql.T_DAY - 64)) | (1 << (HiveSql.T_DAYS - 64)) | (1 << (HiveSql.T_DEC - 64)) | (1 << (HiveSql.T_DECIMAL - 64)) | (1 << (HiveSql.T_DECLARE - 64)) | (1 << (HiveSql.T_DEFAULT - 64)) | (1 << (HiveSql.T_DEFERRED - 64)) | (1 << (HiveSql.T_DEFINED - 64)) | (1 << (HiveSql.T_DEFINER - 64)) | (1 << (HiveSql.T_DEFINITION - 64)) | (1 << (HiveSql.T_DELETE - 64)) | (1 << (HiveSql.T_DELIMITED - 64)) | (1 << (HiveSql.T_DELIMITER - 64)) | (1 << (HiveSql.T_DESC - 64)) | (1 << (HiveSql.T_DESCRIBE - 64)) | (1 << (HiveSql.T_DIAGNOSTICS - 64)) | (1 << (HiveSql.T_DIR - 64)) | (1 << (HiveSql.T_DIRECTORY - 64)) | (1 << (HiveSql.T_DISTINCT - 64)) | (1 << (HiveSql.T_DISTRIBUTE - 64)) | (1 << (HiveSql.T_DO - 64)) | (1 << (HiveSql.T_DOUBLE - 64)) | (1 << (HiveSql.T_DROP - 64)) | (1 << (HiveSql.T_DYNAMIC - 64)) | (1 << (HiveSql.T_ENABLE - 64)) | (1 << (HiveSql.T_ENGINE - 64)) | (1 << (HiveSql.T_ESCAPED - 64)))) !== 0) || ((((_la - 96)) & ~0x1f) == 0 && ((1 << (_la - 96)) & ((1 << (HiveSql.T_EXCEPT - 96)) | (1 << (HiveSql.T_EXEC - 96)) | (1 << (HiveSql.T_EXECUTE - 96)) | (1 << (HiveSql.T_EXCEPTION - 96)) | (1 << (HiveSql.T_EXCLUSIVE - 96)) | (1 << (HiveSql.T_EXISTS - 96)) | (1 << (HiveSql.T_EXIT - 96)) | (1 << (HiveSql.T_FALLBACK - 96)) | (1 << (HiveSql.T_FALSE - 96)) | (1 << (HiveSql.T_FETCH - 96)) | (1 << (HiveSql.T_FIELDS - 96)) | (1 << (HiveSql.T_FILE - 96)) | (1 << (HiveSql.T_FILES - 96)) | (1 << (HiveSql.T_FLOAT - 96)) | (1 << (HiveSql.T_FOR - 96)) | (1 << (HiveSql.T_FOREIGN - 96)) | (1 << (HiveSql.T_FORMAT - 96)) | (1 << (HiveSql.T_FOUND - 96)) | (1 << (HiveSql.T_FROM - 96)) | (1 << (HiveSql.T_FULL - 96)) | (1 << (HiveSql.T_FUNCTION - 96)) | (1 << (HiveSql.T_GET - 96)) | (1 << (HiveSql.T_GLOBAL - 96)) | (1 << (HiveSql.T_GO - 96)) | (1 << (HiveSql.T_GRANT - 96)) | (1 << (HiveSql.T_GROUP - 96)) | (1 << (HiveSql.T_HANDLER - 96)) | (1 << (HiveSql.T_HASH - 96)) | (1 << (HiveSql.T_HAVING - 96)) | (1 << (HiveSql.T_HDFS - 96)) | (1 << (HiveSql.T_HIVE - 96)) | (1 << (HiveSql.T_HOST - 96)))) !== 0) || ((((_la - 128)) & ~0x1f) == 0 && ((1 << (_la - 128)) & ((1 << (HiveSql.T_IDENTITY - 128)) | (1 << (HiveSql.T_IF - 128)) | (1 << (HiveSql.T_IGNORE - 128)) | (1 << (HiveSql.T_IMMEDIATE - 128)) | (1 << (HiveSql.T_IN - 128)) | (1 << (HiveSql.T_INCLUDE - 128)) | (1 << (HiveSql.T_INDEX - 128)) | (1 << (HiveSql.T_INITRANS - 128)) | (1 << (HiveSql.T_INNER - 128)) | (1 << (HiveSql.T_INOUT - 128)) | (1 << (HiveSql.T_INSERT - 128)) | (1 << (HiveSql.T_INT - 128)) | (1 << (HiveSql.T_INT2 - 128)) | (1 << (HiveSql.T_INT4 - 128)) | (1 << (HiveSql.T_INT8 - 128)) | (1 << (HiveSql.T_INTEGER - 128)) | (1 << (HiveSql.T_INTERSECT - 128)) | (1 << (HiveSql.T_INTERVAL - 128)) | (1 << (HiveSql.T_INTO - 128)) | (1 << (HiveSql.T_INVOKER - 128)) | (1 << (HiveSql.T_IS - 128)) | (1 << (HiveSql.T_ISOPEN - 128)) | (1 << (HiveSql.T_ITEMS - 128)) | (1 << (HiveSql.T_JOIN - 128)) | (1 << (HiveSql.T_KEEP - 128)) | (1 << (HiveSql.T_KEY - 128)) | (1 << (HiveSql.T_KEYS - 128)) | (1 << (HiveSql.T_LANGUAGE - 128)) | (1 << (HiveSql.T_LEAVE - 128)) | (1 << (HiveSql.T_LEFT - 128)) | (1 << (HiveSql.T_LIKE - 128)) | (1 << (HiveSql.T_LIMIT - 128)))) !== 0) || ((((_la - 160)) & ~0x1f) == 0 && ((1 << (_la - 160)) & ((1 << (HiveSql.T_LINES - 160)) | (1 << (HiveSql.T_LOCAL - 160)) | (1 << (HiveSql.T_LOCATION - 160)) | (1 << (HiveSql.T_LOCATOR - 160)) | (1 << (HiveSql.T_LOCATORS - 160)) | (1 << (HiveSql.T_LOCKS - 160)) | (1 << (HiveSql.T_LOG - 160)) | (1 << (HiveSql.T_LOGGED - 160)) | (1 << (HiveSql.T_LOGGING - 160)) | (1 << (HiveSql.T_LOOP - 160)) | (1 << (HiveSql.T_MAP - 160)) | (1 << (HiveSql.T_MATCHED - 160)) | (1 << (HiveSql.T_MAX - 160)) | (1 << (HiveSql.T_MAXTRANS - 160)) | (1 << (HiveSql.T_MERGE - 160)) | (1 << (HiveSql.T_MESSAGE_TEXT - 160)) | (1 << (HiveSql.T_MICROSECOND - 160)) | (1 << (HiveSql.T_MICROSECONDS - 160)) | (1 << (HiveSql.T_MIN - 160)) | (1 << (HiveSql.T_MULTISET - 160)) | (1 << (HiveSql.T_NCHAR - 160)) | (1 << (HiveSql.T_NEW - 160)) | (1 << (HiveSql.T_NVARCHAR - 160)) | (1 << (HiveSql.T_NO - 160)) | (1 << (HiveSql.T_NOCOUNT - 160)) | (1 << (HiveSql.T_NOCOMPRESS - 160)) | (1 << (HiveSql.T_NOLOGGING - 160)) | (1 << (HiveSql.T_NONE - 160)) | (1 << (HiveSql.T_NOT - 160)) | (1 << (HiveSql.T_NOTFOUND - 160)) | (1 << (HiveSql.T_NUMERIC - 160)))) !== 0) || ((((_la - 192)) & ~0x1f) == 0 && ((1 << (_la - 192)) & ((1 << (HiveSql.T_NUMBER - 192)) | (1 << (HiveSql.T_OBJECT - 192)) | (1 << (HiveSql.T_OFF - 192)) | (1 << (HiveSql.T_ON - 192)) | (1 << (HiveSql.T_ONLY - 192)) | (1 << (HiveSql.T_OPEN - 192)) | (1 << (HiveSql.T_OR - 192)) | (1 << (HiveSql.T_ORDER - 192)) | (1 << (HiveSql.T_OUT - 192)) | (1 << (HiveSql.T_OUTER - 192)) | (1 << (HiveSql.T_OVER - 192)) | (1 << (HiveSql.T_OVERWRITE - 192)) | (1 << (HiveSql.T_OWNER - 192)) | (1 << (HiveSql.T_PACKAGE - 192)) | (1 << (HiveSql.T_PARTITION - 192)) | (1 << (HiveSql.T_PCTFREE - 192)) | (1 << (HiveSql.T_PCTUSED - 192)) | (1 << (HiveSql.T_PRECISION - 192)) | (1 << (HiveSql.T_PRESERVE - 192)) | (1 << (HiveSql.T_PRIMARY - 192)) | (1 << (HiveSql.T_PRINT - 192)) | (1 << (HiveSql.T_PROC - 192)) | (1 << (HiveSql.T_PROCEDURE - 192)) | (1 << (HiveSql.T_QUALIFY - 192)) | (1 << (HiveSql.T_QUERY_BAND - 192)) | (1 << (HiveSql.T_QUIT - 192)) | (1 << (HiveSql.T_QUOTED_IDENTIFIER - 192)) | (1 << (HiveSql.T_RAISE - 192)) | (1 << (HiveSql.T_REAL - 192)) | (1 << (HiveSql.T_REFERENCES - 192)) | (1 << (HiveSql.T_REGEXP - 192)))) !== 0) || ((((_la - 224)) & ~0x1f) == 0 && ((1 << (_la - 224)) & ((1 << (HiveSql.T_REPLACE - 224)) | (1 << (HiveSql.T_RESIGNAL - 224)) | (1 << (HiveSql.T_RESTRICT - 224)) | (1 << (HiveSql.T_RESULT - 224)) | (1 << (HiveSql.T_RESULT_SET_LOCATOR - 224)) | (1 << (HiveSql.T_RETURN - 224)) | (1 << (HiveSql.T_RETURNS - 224)) | (1 << (HiveSql.T_REVERSE - 224)) | (1 << (HiveSql.T_RIGHT - 224)) | (1 << (HiveSql.T_RLIKE - 224)) | (1 << (HiveSql.T_ROLE - 224)) | (1 << (HiveSql.T_ROLLBACK - 224)) | (1 << (HiveSql.T_ROW - 224)) | (1 << (HiveSql.T_ROWS - 224)) | (1 << (HiveSql.T_ROW_COUNT - 224)) | (1 << (HiveSql.T_RR - 224)) | (1 << (HiveSql.T_RS - 224)) | (1 << (HiveSql.T_PWD - 224)) | (1 << (HiveSql.T_TRIM - 224)) | (1 << (HiveSql.T_SCHEMA - 224)) | (1 << (HiveSql.T_SECOND - 224)) | (1 << (HiveSql.T_SECONDS - 224)) | (1 << (HiveSql.T_SECURITY - 224)) | (1 << (HiveSql.T_SEGMENT - 224)) | (1 << (HiveSql.T_SEL - 224)) | (1 << (HiveSql.T_SELECT - 224)) | (1 << (HiveSql.T_SET - 224)) | (1 << (HiveSql.T_SESSION - 224)) | (1 << (HiveSql.T_SESSIONS - 224)) | (1 << (HiveSql.T_SETS - 224)) | (1 << (HiveSql.T_SHARE - 224)))) !== 0) || ((((_la - 256)) & ~0x1f) == 0 && ((1 << (_la - 256)) & ((1 << (HiveSql.T_SIGNAL - 256)) | (1 << (HiveSql.T_SIMPLE_DOUBLE - 256)) | (1 << (HiveSql.T_SIMPLE_FLOAT - 256)) | (1 << (HiveSql.T_SMALLDATETIME - 256)) | (1 << (HiveSql.T_SMALLINT - 256)) | (1 << (HiveSql.T_SQL - 256)) | (1 << (HiveSql.T_SQLEXCEPTION - 256)) | (1 << (HiveSql.T_SQLINSERT - 256)) | (1 << (HiveSql.T_SQLSTATE - 256)) | (1 << (HiveSql.T_SQLWARNING - 256)) | (1 << (HiveSql.T_STATS - 256)) | (1 << (HiveSql.T_STATISTICS - 256)) | (1 << (HiveSql.T_STEP - 256)) | (1 << (HiveSql.T_STORAGE - 256)) | (1 << (HiveSql.T_STORED - 256)) | (1 << (HiveSql.T_STRING - 256)) | (1 << (HiveSql.T_SUBDIR - 256)) | (1 << (HiveSql.T_SUBSTRING - 256)) | (1 << (HiveSql.T_SUM - 256)) | (1 << (HiveSql.T_SUMMARY - 256)) | (1 << (HiveSql.T_SYS_REFCURSOR - 256)) | (1 << (HiveSql.T_TABLE - 256)) | (1 << (HiveSql.T_TABLESPACE - 256)) | (1 << (HiveSql.T_TEMPORARY - 256)) | (1 << (HiveSql.T_TERMINATED - 256)) | (1 << (HiveSql.T_TEXTIMAGE_ON - 256)) | (1 << (HiveSql.T_THEN - 256)) | (1 << (HiveSql.T_TIMESTAMP - 256)) | (1 << (HiveSql.T_TITLE - 256)) | (1 << (HiveSql.T_TO - 256)))) !== 0) || ((((_la - 288)) & ~0x1f) == 0 && ((1 << (_la - 288)) & ((1 << (HiveSql.T_TOP - 288)) | (1 << (HiveSql.T_TRANSACTION - 288)) | (1 << (HiveSql.T_TRUE - 288)) | (1 << (HiveSql.T_TRUNCATE - 288)) | (1 << (HiveSql.T_UNIQUE - 288)) | (1 << (HiveSql.T_UPDATE - 288)) | (1 << (HiveSql.T_UR - 288)) | (1 << (HiveSql.T_USE - 288)) | (1 << (HiveSql.T_USING - 288)) | (1 << (HiveSql.T_VALUE - 288)) | (1 << (HiveSql.T_VALUES - 288)) | (1 << (HiveSql.T_VAR - 288)) | (1 << (HiveSql.T_VARCHAR - 288)) | (1 << (HiveSql.T_VARCHAR2 - 288)) | (1 << (HiveSql.T_VARYING - 288)) | (1 << (HiveSql.T_VOLATILE - 288)) | (1 << (HiveSql.T_WHILE - 288)) | (1 << (HiveSql.T_WITH - 288)) | (1 << (HiveSql.T_WITHOUT - 288)) | (1 << (HiveSql.T_WORK - 288)) | (1 << (HiveSql.T_XACT_ABORT - 288)) | (1 << (HiveSql.T_XML - 288)) | (1 << (HiveSql.T_YES - 288)) | (1 << (HiveSql.T_ACTIVITY_COUNT - 288)) | (1 << (HiveSql.T_CUME_DIST - 288)) | (1 << (HiveSql.T_CURRENT_DATE - 288)) | (1 << (HiveSql.T_CURRENT_TIMESTAMP - 288)) | (1 << (HiveSql.T_CURRENT_USER - 288)))) !== 0) || ((((_la - 320)) & ~0x1f) == 0 && ((1 << (_la - 320)) & ((1 << (HiveSql.T_DENSE_RANK - 320)) | (1 << (HiveSql.T_FIRST_VALUE - 320)) | (1 << (HiveSql.T_LAG - 320)) | (1 << (HiveSql.T_LAST_VALUE - 320)) | (1 << (HiveSql.T_LEAD - 320)) | (1 << (HiveSql.T_PART_COUNT - 320)) | (1 << (HiveSql.T_PART_LOC - 320)) | (1 << (HiveSql.T_RANK - 320)) | (1 << (HiveSql.T_ROW_NUMBER - 320)) | (1 << (HiveSql.T_STDEV - 320)) | (1 << (HiveSql.T_SYSDATE - 320)) | (1 << (HiveSql.T_VARIANCE - 320)) | (1 << (HiveSql.T_USER - 320)))) !== 0))) { this._errHandler.recoverInline(this); } else { @@ -37628,7 +37728,7 @@ HiveSqlParser.prototype.non_reserved_words = function() { }; -HiveSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { +HiveSql.prototype.sempred = function(localctx, ruleIndex, predIndex) { switch(ruleIndex) { case 4: return this.block_end_sempred(localctx, predIndex); @@ -37653,71 +37753,72 @@ HiveSqlParser.prototype.sempred = function(localctx, ruleIndex, predIndex) { } }; -HiveSqlParser.prototype.block_end_sempred = function(localctx, predIndex) { +HiveSql.prototype.block_end_sempred = function(localctx, predIndex) { switch(predIndex) { case 0: - return !this._input.LT(2).getText().equalsIgnoreCase("TRANSACTION"); + return !this._input.LT(2).text.toUpperCase() === "TRANSACTION"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.expr_stmt_sempred = function(localctx, predIndex) { +HiveSql.prototype.expr_stmt_sempred = function(localctx, predIndex) { switch(predIndex) { case 1: - return !this._input.LT(1).getText().equalsIgnoreCase("GO"); + return this._input.LT(1).text.toUpperCase() !== "GO"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.create_routine_params_sempred = function(localctx, predIndex) { +HiveSql.prototype.create_routine_params_sempred = function(localctx, predIndex) { switch(predIndex) { case 2: - return !this._input.LT(1).getText().equalsIgnoreCase("IS") && - !this._input.LT(1).getText().equalsIgnoreCase("AS") && - !(this._input.LT(1).getText().equalsIgnoreCase("DYNAMIC") && this._input.LT(2).getText().equalsIgnoreCase("RESULT")) + return this._input.LT(1).text.toUpperCase() !== "IS" && + this._input.LT(1).text.toUpperCase() !== "AS" && + !(this._input.LT(1).text.toUpperCase() ==="DYNAMIC" && this._input.LT(2).text.toUpperCase() === "RESULT") ; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.select_list_alias_sempred = function(localctx, predIndex) { +HiveSql.prototype.select_list_alias_sempred = function(localctx, predIndex) { switch(predIndex) { case 3: - return !this._input.LT(1).getText().equalsIgnoreCase("INTO") && !this._input.LT(1).getText().equalsIgnoreCase("FROM"); + return this._input.LT(1).text.toUpperCase() !== "INTO" && this._input.LT(1).text.toUpperCase() !== "FROM"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.from_alias_clause_sempred = function(localctx, predIndex) { +HiveSql.prototype.from_alias_clause_sempred = function(localctx, predIndex) { switch(predIndex) { case 4: - return !this._input.LT(1).getText().equalsIgnoreCase("EXEC") && - !this._input.LT(1).getText().equalsIgnoreCase("EXECUTE") && - !this._input.LT(1).getText().equalsIgnoreCase("INNER") && - !this._input.LT(1).getText().equalsIgnoreCase("LEFT") && - !this._input.LT(1).getText().equalsIgnoreCase("GROUP") && - !this._input.LT(1).getText().equalsIgnoreCase("ORDER") && - !this._input.LT(1).getText().equalsIgnoreCase("LIMIT") && - !this._input.LT(1).getText().equalsIgnoreCase("WITH"); + return this._input.LT(1).text.toUpperCase() !== "EXEC" && + this._input.LT(1).text.toUpperCase() !== "EXECUTE" && + this._input.LT(1).text.toUpperCase() !== "INNER" && + this._input.LT(1).text.toUpperCase() !== "LEFT" && + this._input.LT(1).text.toUpperCase() !== "GROUP" && + this._input.LT(1).text.toUpperCase() !== "ORDER" && + this._input.LT(1).text.toUpperCase() !== "LIMIT" && + this._input.LT(1).text.toUpperCase() !== "WITH" && + this._input.LT(1).text.toUpperCase() !== "JOIN"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.delete_alias_sempred = function(localctx, predIndex) { +HiveSql.prototype.delete_alias_sempred = function(localctx, predIndex) { switch(predIndex) { case 5: - return !this._input.LT(1).getText().equalsIgnoreCase("ALL"); + return this._input.LT(1).text.toUpperCase() !== "ALL"; default: throw "No predicate with index:" + predIndex; } }; -HiveSqlParser.prototype.bool_expr_sempred = function(localctx, predIndex) { +HiveSql.prototype.bool_expr_sempred = function(localctx, predIndex) { switch(predIndex) { case 6: return this.precpred(this._ctx, 2); @@ -37726,7 +37827,7 @@ HiveSqlParser.prototype.bool_expr_sempred = function(localctx, predIndex) { } }; -HiveSqlParser.prototype.expr_sempred = function(localctx, predIndex) { +HiveSql.prototype.expr_sempred = function(localctx, predIndex) { switch(predIndex) { case 7: return this.precpred(this._ctx, 14); @@ -37743,14 +37844,14 @@ HiveSqlParser.prototype.expr_sempred = function(localctx, predIndex) { } }; -HiveSqlParser.prototype.func_param_sempred = function(localctx, predIndex) { +HiveSql.prototype.func_param_sempred = function(localctx, predIndex) { switch(predIndex) { case 12: - return !this._input.LT(1).getText().equalsIgnoreCase("INTO"); + return this._input.LT(1).text.toUpperCase() !== "INTO"; default: throw "No predicate with index:" + predIndex; } }; -exports.HiveSqlParser = HiveSqlParser; +exports.HiveSql = HiveSql; diff --git a/src/lib/hive/HiveSql.tokens b/src/lib/hive/HiveSql.tokens index 7ce6027..f6acc0b 100644 --- a/src/lib/hive/HiveSql.tokens +++ b/src/lib/hive/HiveSql.tokens @@ -1,384 +1,404 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -T_GO=11 -T_BEGIN=12 -T_SEMICOLON=13 -T_END=14 -T_EXCEPTION=15 -T_WHEN=16 -L_ID=17 -T_THEN=18 -T_NULL=19 -T_SET=20 -T_COMMA=21 -T_COLON=22 -T_EQUAL=23 -T_OPEN_P=24 -T_CLOSE_P=25 -T_ALLOCATE=26 -T_CURSOR=27 -T_FOR=28 -T_RESULT=29 -T_PROCEDURE=30 -T_ASSOCIATE=31 -T_LOCATOR=32 -T_LOCATORS=33 -T_WITH=34 -T_TRANSACTION=35 -T_BREAK=36 -T_CALL=37 -T_DECLARE=38 -T_AS=39 -T_CONSTANT=40 -T_CONDITION=41 -T_IS=42 -T_RETURN=43 -T_ONLY=44 -T_TO=45 -T_CALLER=46 -T_CLIENT=47 -T_WITHOUT=48 -T_CONTINUE=49 -T_EXIT=50 -T_HANDLER=51 -T_SQLEXCEPTION=52 -T_SQLWARNING=53 -T_NOT=54 -T_FOUND=55 -T_GLOBAL=56 -T_TEMPORARY=57 -T_TABLE=58 -T_CREATE=59 -T_IF=60 -T_EXISTS=61 -T_LOCAL=62 -T_MULTISET=63 -T_VOLATILE=64 -T_LIKE=65 -T_CONSTRAINT=66 -T_PRIMARY=67 -T_KEY=68 -T_UNIQUE=69 -T_REFERENCES=70 -T_IDENTITY=71 -L_INT=72 -T_AUTO_INCREMENT=73 -T_ENABLE=74 -T_CLUSTERED=75 -T_ASC=76 -T_DESC=77 -T_FOREIGN=78 -T_ON=79 -T_UPDATE=80 -T_DELETE=81 -T_NO=82 -T_ACTION=83 -T_RESTRICT=84 -T_DEFAULT=85 -T_CASCADE=86 -T_LOG=87 -T_FALLBACK=88 -T_COMMIT=89 -T_PRESERVE=90 -T_ROWS=91 -T_SEGMENT=92 -T_CREATION=93 -T_IMMEDIATE=94 -T_DEFERRED=95 -T_PCTFREE=96 -T_PCTUSED=97 -T_INITRANS=98 -T_MAXTRANS=99 -T_NOCOMPRESS=100 -T_LOGGING=101 -T_NOLOGGING=102 -T_STORAGE=103 -T_TABLESPACE=104 -T_INDEX=105 -T_IN=106 -T_REPLACE=107 -T_DISTRIBUTE=108 -T_BY=109 -T_HASH=110 -T_LOGGED=111 -T_COMPRESS=112 -T_YES=113 -T_DEFINITION=114 -T_DROP=115 -T_DATA=116 -T_STORED=117 -T_ROW=118 -T_FORMAT=119 -T_DELIMITED=120 -T_FIELDS=121 -T_TERMINATED=122 -T_ESCAPED=123 -T_COLLECTION=124 -T_ITEMS=125 -T_MAP=126 -T_KEYS=127 -T_LINES=128 -T_DEFINED=129 -T_TEXTIMAGE_ON=130 -T_COMMENT=131 -T_CHARACTER=132 -T_CHARSET=133 -T_ENGINE=134 -T_ALTER=135 -T_ADD2=136 -T_CHAR=137 -T_BIGINT=138 -T_BINARY_DOUBLE=139 -T_BINARY_FLOAT=140 -T_BINARY_INTEGER=141 -T_BIT=142 -T_DATE=143 -T_DATETIME=144 -T_DEC=145 -T_DECIMAL=146 -T_DOUBLE=147 -T_PRECISION=148 -T_FLOAT=149 -T_INT=150 -T_INT2=151 -T_INT4=152 -T_INT8=153 -T_INTEGER=154 -T_NCHAR=155 -T_NVARCHAR=156 -T_NUMBER=157 -T_NUMERIC=158 -T_PLS_INTEGER=159 -T_REAL=160 -T_RESULT_SET_LOCATOR=161 -T_VARYING=162 -T_SIMPLE_FLOAT=163 -T_SIMPLE_DOUBLE=164 -T_SIMPLE_INTEGER=165 -T_SMALLINT=166 -T_SMALLDATETIME=167 -T_STRING=168 -T_SYS_REFCURSOR=169 -T_TIMESTAMP=170 -T_TINYINT=171 -T_VARCHAR=172 -T_VARCHAR2=173 -T_XML=174 -T_TYPE=175 -T_ROWTYPE=176 -T_MAX=177 -T_BYTE=178 -T_CASESPECIFIC=179 -T_CS=180 -T_DATABASE=181 -T_SCHEMA=182 -T_LOCATION=183 -T_OR=184 -T_FUNCTION=185 -T_RETURNS=186 -T_PACKAGE=187 -T_PROC=188 -T_BODY=189 -T_OUT=190 -T_INOUT=191 -T_LANGUAGE=192 -T_SQL=193 -T_SECURITY=194 -T_CREATOR=195 -T_DEFINER=196 -T_INVOKER=197 -T_OWNER=198 -T_DYNAMIC=199 -T_SETS=200 -T_EXEC=201 -T_EXECUTE=202 -T_INTO=203 -T_ELSE=204 -T_ELSIF=205 -T_ELSEIF=206 -T_INCLUDE=207 -T_INSERT=208 -T_OVERWRITE=209 -T_VALUES=210 -T_DIRECTORY=211 -T_GET=212 -T_DIAGNOSTICS=213 -T_MESSAGE_TEXT=214 -T_ROW_COUNT=215 -T_GRANT=216 -T_ROLE=217 -T_LEAVE=218 -T_OBJECT=219 -T_AT=220 -T_OPEN=221 -T_FETCH=222 -T_FROM=223 -T_COLLECT=224 -T_STATISTICS=225 -T_STATS=226 -T_COLUMN=227 -T_CLOSE=228 -T_CMP=229 -T_SUM=230 -T_COPY=231 -T_HDFS=232 -T_BATCHSIZE=233 -T_DELIMITER=234 -T_SQLINSERT=235 -T_IGNORE=236 -T_WORK=237 -T_PRINT=238 -T_QUIT=239 -T_RAISE=240 -T_RESIGNAL=241 -T_SQLSTATE=242 -T_VALUE=243 -T_ROLLBACK=244 -T_CURRENT=245 -T_CURRENT_SCHEMA=246 -T_ANSI_NULLS=247 -T_ANSI_PADDING=248 -T_NOCOUNT=249 -T_QUOTED_IDENTIFIER=250 -T_XACT_ABORT=251 -T_OFF=252 -T_QUERY_BAND=253 -T_NONE=254 -T_SESSION=255 +T_ACTION=1 +T_ADD2=2 +T_ALL=3 +T_ALLOCATE=4 +T_ALTER=5 +T_AND=6 +T_ANSI_NULLS=7 +T_ANSI_PADDING=8 +T_AS=9 +T_ASC=10 +T_ASSOCIATE=11 +T_AT=12 +T_AUTO_INCREMENT=13 +T_AVG=14 +T_BATCHSIZE=15 +T_BEGIN=16 +T_BETWEEN=17 +T_BIGINT=18 +T_BINARY_DOUBLE=19 +T_BINARY_FLOAT=20 +T_BINARY_INTEGER=21 +T_BIT=22 +T_BODY=23 +T_BREAK=24 +T_BY=25 +T_BYTE=26 +T_CALL=27 +T_CALLER=28 +T_CASCADE=29 +T_CASE=30 +T_CASESPECIFIC=31 +T_CAST=32 +T_CHAR=33 +T_CHARACTER=34 +T_CHARSET=35 +T_CLIENT=36 +T_CLOSE=37 +T_CLUSTERED=38 +T_CMP=39 +T_COLLECT=40 +T_COLLECTION=41 +T_COLUMN=42 +T_COMMENT=43 +T_CONSTANT=44 +T_COMMIT=45 +T_COMPRESS=46 +T_CONCAT=47 +T_CONDITION=48 +T_CONSTRAINT=49 +T_CONTINUE=50 +T_COPY=51 +T_COUNT=52 +T_COUNT_BIG=53 +T_CREATE=54 +T_CREATION=55 +T_CREATOR=56 +T_CS=57 +T_CURRENT=58 +T_CURRENT_SCHEMA=59 +T_CURSOR=60 +T_DATABASE=61 +T_DATA=62 +T_DATE=63 +T_DATETIME=64 +T_DAY=65 +T_DAYS=66 +T_DEC=67 +T_DECIMAL=68 +T_DECLARE=69 +T_DEFAULT=70 +T_DEFERRED=71 +T_DEFINED=72 +T_DEFINER=73 +T_DEFINITION=74 +T_DELETE=75 +T_DELIMITED=76 +T_DELIMITER=77 +T_DESC=78 +T_DESCRIBE=79 +T_DIAGNOSTICS=80 +T_DIR=81 +T_DIRECTORY=82 +T_DISTINCT=83 +T_DISTRIBUTE=84 +T_DO=85 +T_DOUBLE=86 +T_DROP=87 +T_DYNAMIC=88 +T_ELSE=89 +T_ELSEIF=90 +T_ELSIF=91 +T_ENABLE=92 +T_END=93 +T_ENGINE=94 +T_ESCAPED=95 +T_EXCEPT=96 +T_EXEC=97 +T_EXECUTE=98 +T_EXCEPTION=99 +T_EXCLUSIVE=100 +T_EXISTS=101 +T_EXIT=102 +T_FALLBACK=103 +T_FALSE=104 +T_FETCH=105 +T_FIELDS=106 +T_FILE=107 +T_FILES=108 +T_FLOAT=109 +T_FOR=110 +T_FOREIGN=111 +T_FORMAT=112 +T_FOUND=113 +T_FROM=114 +T_FULL=115 +T_FUNCTION=116 +T_GET=117 +T_GLOBAL=118 +T_GO=119 +T_GRANT=120 +T_GROUP=121 +T_HANDLER=122 +T_HASH=123 +T_HAVING=124 +T_HDFS=125 +T_HIVE=126 +T_HOST=127 +T_IDENTITY=128 +T_IF=129 +T_IGNORE=130 +T_IMMEDIATE=131 +T_IN=132 +T_INCLUDE=133 +T_INDEX=134 +T_INITRANS=135 +T_INNER=136 +T_INOUT=137 +T_INSERT=138 +T_INT=139 +T_INT2=140 +T_INT4=141 +T_INT8=142 +T_INTEGER=143 +T_INTERSECT=144 +T_INTERVAL=145 +T_INTO=146 +T_INVOKER=147 +T_IS=148 +T_ISOPEN=149 +T_ITEMS=150 +T_JOIN=151 +T_KEEP=152 +T_KEY=153 +T_KEYS=154 +T_LANGUAGE=155 +T_LEAVE=156 +T_LEFT=157 +T_LIKE=158 +T_LIMIT=159 +T_LINES=160 +T_LOCAL=161 +T_LOCATION=162 +T_LOCATOR=163 +T_LOCATORS=164 +T_LOCKS=165 +T_LOG=166 +T_LOGGED=167 +T_LOGGING=168 +T_LOOP=169 +T_MAP=170 +T_MATCHED=171 +T_MAX=172 +T_MAXTRANS=173 +T_MERGE=174 +T_MESSAGE_TEXT=175 +T_MICROSECOND=176 +T_MICROSECONDS=177 +T_MIN=178 +T_MULTISET=179 +T_NCHAR=180 +T_NEW=181 +T_NVARCHAR=182 +T_NO=183 +T_NOCOUNT=184 +T_NOCOMPRESS=185 +T_NOLOGGING=186 +T_NONE=187 +T_NOT=188 +T_NOTFOUND=189 +T_NULL=190 +T_NUMERIC=191 +T_NUMBER=192 +T_OBJECT=193 +T_OFF=194 +T_ON=195 +T_ONLY=196 +T_OPEN=197 +T_OR=198 +T_ORDER=199 +T_OUT=200 +T_OUTER=201 +T_OVER=202 +T_OVERWRITE=203 +T_OWNER=204 +T_PACKAGE=205 +T_PARTITION=206 +T_PCTFREE=207 +T_PCTUSED=208 +T_PLS_INTEGER=209 +T_PRECISION=210 +T_PRESERVE=211 +T_PRIMARY=212 +T_PRINT=213 +T_PROC=214 +T_PROCEDURE=215 +T_QUALIFY=216 +T_QUERY_BAND=217 +T_QUIT=218 +T_QUOTED_IDENTIFIER=219 +T_RAISE=220 +T_REAL=221 +T_REFERENCES=222 +T_REGEXP=223 +T_REPLACE=224 +T_RESIGNAL=225 +T_RESTRICT=226 +T_RESULT=227 +T_RESULT_SET_LOCATOR=228 +T_RETURN=229 +T_RETURNS=230 +T_REVERSE=231 +T_RIGHT=232 +T_RLIKE=233 +T_ROLE=234 +T_ROLLBACK=235 +T_ROW=236 +T_ROWS=237 +T_ROWTYPE=238 +T_ROW_COUNT=239 +T_RR=240 +T_RS=241 +T_PWD=242 +T_TRIM=243 +T_SCHEMA=244 +T_SECOND=245 +T_SECONDS=246 +T_SECURITY=247 +T_SEGMENT=248 +T_SEL=249 +T_SELECT=250 +T_SET=251 +T_SESSION=252 +T_SESSIONS=253 +T_SETS=254 +T_SHARE=255 T_SIGNAL=256 -T_SUMMARY=257 -T_TOP=258 -T_LIMIT=259 -T_TRUNCATE=260 -T_USE=261 -T_WHILE=262 -T_DO=263 -T_LOOP=264 -T_REVERSE=265 -T_DOT2=266 -T_STEP=267 -L_LABEL=268 -T_LESS=269 -T_GREATER=270 -T_USING=271 -T_UNION=272 -T_ALL=273 -T_EXCEPT=274 -T_INTERSECT=275 -T_SELECT=276 -T_SEL=277 -T_DISTINCT=278 -T_TITLE=279 -L_S_STRING=280 -T_INNER=281 -T_JOIN=282 -T_LEFT=283 -T_RIGHT=284 -T_FULL=285 -T_OUTER=286 -T_WHERE=287 -T_GROUP=288 -T_HAVING=289 -T_QUALIFY=290 -T_ORDER=291 -T_RR=292 -T_RS=293 -T_UR=294 -T_AND=295 -T_KEEP=296 -T_EXCLUSIVE=297 -T_SHARE=298 -T_LOCKS=299 -T_MERGE=300 -T_MATCHED=301 -T_DESCRIBE=302 -T_BETWEEN=303 -T_EQUAL2=304 -T_NOTEQUAL=305 -T_NOTEQUAL2=306 -T_LESSEQUAL=307 -T_GREATEREQUAL=308 -T_RLIKE=309 -T_REGEXP=310 -T_MUL=311 -T_DIV=312 -T_ADD=313 -T_SUB=314 -T_INTERVAL=315 -T_DAY=316 -T_DAYS=317 -T_MICROSECOND=318 -T_MICROSECONDS=319 -T_SECOND=320 -T_SECONDS=321 -T_PIPE=322 -T_CONCAT=323 -T_CASE=324 -T_ISOPEN=325 -T_NOTFOUND=326 -T_AVG=327 -T_COUNT=328 -T_COUNT_BIG=329 -T_CUME_DIST=330 -T_DENSE_RANK=331 -T_FIRST_VALUE=332 -T_LAG=333 -T_LAST_VALUE=334 -T_LEAD=335 -T_MIN=336 -T_RANK=337 -T_ROW_NUMBER=338 -T_STDEV=339 -T_VAR=340 -T_VARIANCE=341 -T_OVER=342 -T_PARTITION=343 -T_ACTIVITY_COUNT=344 -T_CAST=345 -T_CURRENT_DATE=346 -T_CURRENT_TIMESTAMP=347 -T_CURRENT_USER=348 -T_USER=349 -T_MAX_PART_STRING=350 -T_MIN_PART_STRING=351 -T_MAX_PART_INT=352 -T_MIN_PART_INT=353 -T_MAX_PART_DATE=354 -T_MIN_PART_DATE=355 -T_PART_COUNT=356 -T_PART_LOC=357 -T_TRIM=358 -T_SUBSTRING=359 -T_SYSDATE=360 -T_HIVE=361 -T_HOST=362 -L_FILE=363 -L_D_STRING=364 -L_DEC=365 -T_TRUE=366 -T_FALSE=367 -T_DIR=368 -T_FILE=369 -T_FILES=370 -T_NEW=371 -T_PWD=372 -T_SESSIONS=373 -T_SUBDIR=374 -'@'=1 -'#'=2 -'/'=3 -'%'=4 -'.'=5 -'*'=6 -'!'=7 -';'=8 -'-'=9 -'+'=10 +T_SIMPLE_DOUBLE=257 +T_SIMPLE_FLOAT=258 +T_SIMPLE_INTEGER=259 +T_SMALLDATETIME=260 +T_SMALLINT=261 +T_SQL=262 +T_SQLEXCEPTION=263 +T_SQLINSERT=264 +T_SQLSTATE=265 +T_SQLWARNING=266 +T_STATS=267 +T_STATISTICS=268 +T_STEP=269 +T_STORAGE=270 +T_STORED=271 +T_STRING=272 +T_SUBDIR=273 +T_SUBSTRING=274 +T_SUM=275 +T_SUMMARY=276 +T_SYS_REFCURSOR=277 +T_TABLE=278 +T_TABLESPACE=279 +T_TEMPORARY=280 +T_TERMINATED=281 +T_TEXTIMAGE_ON=282 +T_THEN=283 +T_TIMESTAMP=284 +T_TINYINT=285 +T_TITLE=286 +T_TO=287 +T_TOP=288 +T_TRANSACTION=289 +T_TRUE=290 +T_TRUNCATE=291 +T_TYPE=292 +T_UNION=293 +T_UNIQUE=294 +T_UPDATE=295 +T_UR=296 +T_USE=297 +T_USING=298 +T_VALUE=299 +T_VALUES=300 +T_VAR=301 +T_VARCHAR=302 +T_VARCHAR2=303 +T_VARYING=304 +T_VOLATILE=305 +T_WHEN=306 +T_WHERE=307 +T_WHILE=308 +T_WITH=309 +T_WITHOUT=310 +T_WORK=311 +T_XACT_ABORT=312 +T_XML=313 +T_YES=314 +T_ACTIVITY_COUNT=315 +T_CUME_DIST=316 +T_CURRENT_DATE=317 +T_CURRENT_TIMESTAMP=318 +T_CURRENT_USER=319 +T_DENSE_RANK=320 +T_FIRST_VALUE=321 +T_LAG=322 +T_LAST_VALUE=323 +T_LEAD=324 +T_MAX_PART_STRING=325 +T_MIN_PART_STRING=326 +T_MAX_PART_INT=327 +T_MIN_PART_INT=328 +T_MAX_PART_DATE=329 +T_MIN_PART_DATE=330 +T_PART_COUNT=331 +T_PART_LOC=332 +T_RANK=333 +T_ROW_NUMBER=334 +T_STDEV=335 +T_SYSDATE=336 +T_VARIANCE=337 +T_USER=338 +T_ADD=339 +T_COLON=340 +T_COMMA=341 +T_PIPE=342 +T_DIV=343 +T_DOT=344 +T_DOT2=345 +T_EQUAL=346 +T_EQUAL2=347 +T_SHARP=348 +T_NOTE=349 +T_NOTEQUAL=350 +T_NOTEQUAL2=351 +T_GREATER=352 +T_GREATEREQUAL=353 +T_LESS=354 +T_LESSEQUAL=355 +T_MUL=356 +T_PRECENT=357 +T_CALLS=358 +T_OPEN_B=359 +T_OPEN_P=360 +T_OPEN_SB=361 +T_CLOSE_B=362 +T_CLOSE_P=363 +T_CLOSE_SB=364 +T_SEMICOLON=365 +T_SUB=366 +L_ID=367 +L_S_STRING=368 +L_D_STRING=369 +L_INT=370 +L_DEC=371 +L_WS=372 +L_M_COMMENT=373 +L_S_COMMENT=374 +L_FILE=375 +L_LABEL=376 +'+'=339 +':'=340 +','=341 +'||'=342 +'/'=343 +'.'=344 +'..'=345 +'='=346 +'=='=347 +'#'=348 +'!'=349 +'<>'=350 +'!='=351 +'>'=352 +'>='=353 +'<'=354 +'<='=355 +'*'=356 +'%'=357 +'@'=358 +'{'=359 +'('=360 +'['=361 +'}'=362 +')'=363 +']'=364 +';'=365 +'-'=366 diff --git a/src/lib/hive/HiveSqlLexer.interp b/src/lib/hive/HiveSqlLexer.interp index 4a6bed6..bf8936f 100644 --- a/src/lib/hive/HiveSqlLexer.interp +++ b/src/lib/hive/HiveSqlLexer.interp @@ -1,40 +1,1168 @@ token literal names: null -'@' -'#' +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +null +'+' +':' +',' +'||' '/' -'%' '.' -'*' +'..' +'=' +'==' +'#' '!' +'<>' +'!=' +'>' +'>=' +'<' +'<=' +'*' +'%' +'@' +'{' +'(' +'[' +'}' +')' +']' ';' '-' -'+' +null +null +null +null +null +null +null +null +null +null token symbolic names: null -null -null -null -null -null -null -null -null -null -null +T_ACTION +T_ADD2 +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN +T_BIGINT +T_BINARY_DOUBLE +T_BINARY_FLOAT +T_BINARY_INTEGER +T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA +T_DATE +T_DATETIME +T_DAY +T_DAYS +T_DEC +T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO +T_DOUBLE +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES +T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT +T_INT +T_INT2 +T_INT4 +T_INT8 +T_INTEGER +T_INTERSECT +T_INTERVAL +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT +T_MICROSECOND +T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA +T_SECOND +T_SECONDS +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT +T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER +T_DENSE_RANK +T_FIRST_VALUE +T_LAG +T_LAST_VALUE +T_LEAD +T_MAX_PART_STRING +T_MIN_PART_STRING +T_MAX_PART_INT +T_MIN_PART_INT +T_MAX_PART_DATE +T_MIN_PART_DATE +T_PART_COUNT +T_PART_LOC +T_RANK +T_ROW_NUMBER +T_STDEV +T_SYSDATE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING +L_D_STRING +L_INT +L_DEC +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL rule names: -T__0 -T__1 -T__2 -T__3 -T__4 -T__5 -T__6 -T__7 -T__8 -T__9 +T_ACTION +T_ADD2 +T_ALL +T_ALLOCATE +T_ALTER +T_AND +T_ANSI_NULLS +T_ANSI_PADDING +T_AS +T_ASC +T_ASSOCIATE +T_AT +T_AUTO_INCREMENT +T_AVG +T_BATCHSIZE +T_BEGIN +T_BETWEEN +T_BIGINT +T_BINARY_DOUBLE +T_BINARY_FLOAT +T_BINARY_INTEGER +T_BIT +T_BODY +T_BREAK +T_BY +T_BYTE +T_CALL +T_CALLER +T_CASCADE +T_CASE +T_CASESPECIFIC +T_CAST +T_CHAR +T_CHARACTER +T_CHARSET +T_CLIENT +T_CLOSE +T_CLUSTERED +T_CMP +T_COLLECT +T_COLLECTION +T_COLUMN +T_COMMENT +T_CONSTANT +T_COMMIT +T_COMPRESS +T_CONCAT +T_CONDITION +T_CONSTRAINT +T_CONTINUE +T_COPY +T_COUNT +T_COUNT_BIG +T_CREATE +T_CREATION +T_CREATOR +T_CS +T_CURRENT +T_CURRENT_SCHEMA +T_CURSOR +T_DATABASE +T_DATA +T_DATE +T_DATETIME +T_DAY +T_DAYS +T_DEC +T_DECIMAL +T_DECLARE +T_DEFAULT +T_DEFERRED +T_DEFINED +T_DEFINER +T_DEFINITION +T_DELETE +T_DELIMITED +T_DELIMITER +T_DESC +T_DESCRIBE +T_DIAGNOSTICS +T_DIR +T_DIRECTORY +T_DISTINCT +T_DISTRIBUTE +T_DO +T_DOUBLE +T_DROP +T_DYNAMIC +T_ELSE +T_ELSEIF +T_ELSIF +T_ENABLE +T_END +T_ENGINE +T_ESCAPED +T_EXCEPT +T_EXEC +T_EXECUTE +T_EXCEPTION +T_EXCLUSIVE +T_EXISTS +T_EXIT +T_FALLBACK +T_FALSE +T_FETCH +T_FIELDS +T_FILE +T_FILES +T_FLOAT +T_FOR +T_FOREIGN +T_FORMAT +T_FOUND +T_FROM +T_FULL +T_FUNCTION +T_GET +T_GLOBAL +T_GO +T_GRANT +T_GROUP +T_HANDLER +T_HASH +T_HAVING +T_HDFS +T_HIVE +T_HOST +T_IDENTITY +T_IF +T_IGNORE +T_IMMEDIATE +T_IN +T_INCLUDE +T_INDEX +T_INITRANS +T_INNER +T_INOUT +T_INSERT +T_INT +T_INT2 +T_INT4 +T_INT8 +T_INTEGER +T_INTERSECT +T_INTERVAL +T_INTO +T_INVOKER +T_IS +T_ISOPEN +T_ITEMS +T_JOIN +T_KEEP +T_KEY +T_KEYS +T_LANGUAGE +T_LEAVE +T_LEFT +T_LIKE +T_LIMIT +T_LINES +T_LOCAL +T_LOCATION +T_LOCATOR +T_LOCATORS +T_LOCKS +T_LOG +T_LOGGED +T_LOGGING +T_LOOP +T_MAP +T_MATCHED +T_MAX +T_MAXTRANS +T_MERGE +T_MESSAGE_TEXT +T_MICROSECOND +T_MICROSECONDS +T_MIN +T_MULTISET +T_NCHAR +T_NEW +T_NVARCHAR +T_NO +T_NOCOUNT +T_NOCOMPRESS +T_NOLOGGING +T_NONE +T_NOT +T_NOTFOUND +T_NULL +T_NUMERIC +T_NUMBER +T_OBJECT +T_OFF +T_ON +T_ONLY +T_OPEN +T_OR +T_ORDER +T_OUT +T_OUTER +T_OVER +T_OVERWRITE +T_OWNER +T_PACKAGE +T_PARTITION +T_PCTFREE +T_PCTUSED +T_PLS_INTEGER +T_PRECISION +T_PRESERVE +T_PRIMARY +T_PRINT +T_PROC +T_PROCEDURE +T_QUALIFY +T_QUERY_BAND +T_QUIT +T_QUOTED_IDENTIFIER +T_RAISE +T_REAL +T_REFERENCES +T_REGEXP +T_REPLACE +T_RESIGNAL +T_RESTRICT +T_RESULT +T_RESULT_SET_LOCATOR +T_RETURN +T_RETURNS +T_REVERSE +T_RIGHT +T_RLIKE +T_ROLE +T_ROLLBACK +T_ROW +T_ROWS +T_ROWTYPE +T_ROW_COUNT +T_RR +T_RS +T_PWD +T_TRIM +T_SCHEMA +T_SECOND +T_SECONDS +T_SECURITY +T_SEGMENT +T_SEL +T_SELECT +T_SET +T_SESSION +T_SESSIONS +T_SETS +T_SHARE +T_SIGNAL +T_SIMPLE_DOUBLE +T_SIMPLE_FLOAT +T_SIMPLE_INTEGER +T_SMALLDATETIME +T_SMALLINT +T_SQL +T_SQLEXCEPTION +T_SQLINSERT +T_SQLSTATE +T_SQLWARNING +T_STATS +T_STATISTICS +T_STEP +T_STORAGE +T_STORED +T_STRING +T_SUBDIR +T_SUBSTRING +T_SUM +T_SUMMARY +T_SYS_REFCURSOR +T_TABLE +T_TABLESPACE +T_TEMPORARY +T_TERMINATED +T_TEXTIMAGE_ON +T_THEN +T_TIMESTAMP +T_TINYINT +T_TITLE +T_TO +T_TOP +T_TRANSACTION +T_TRUE +T_TRUNCATE +T_TYPE +T_UNION +T_UNIQUE +T_UPDATE +T_UR +T_USE +T_USING +T_VALUE +T_VALUES +T_VAR +T_VARCHAR +T_VARCHAR2 +T_VARYING +T_VOLATILE +T_WHEN +T_WHERE +T_WHILE +T_WITH +T_WITHOUT +T_WORK +T_XACT_ABORT +T_XML +T_YES +T_ACTIVITY_COUNT +T_CUME_DIST +T_CURRENT_DATE +T_CURRENT_TIMESTAMP +T_CURRENT_USER +T_DENSE_RANK +T_FIRST_VALUE +T_LAG +T_LAST_VALUE +T_LEAD +T_MAX_PART_STRING +T_MIN_PART_STRING +T_MAX_PART_INT +T_MIN_PART_INT +T_MAX_PART_DATE +T_MIN_PART_DATE +T_PART_COUNT +T_PART_LOC +T_RANK +T_ROW_NUMBER +T_STDEV +T_SYSDATE +T_VARIANCE +T_USER +T_ADD +T_COLON +T_COMMA +T_PIPE +T_DIV +T_DOT +T_DOT2 +T_EQUAL +T_EQUAL2 +T_SHARP +T_NOTE +T_NOTEQUAL +T_NOTEQUAL2 +T_GREATER +T_GREATEREQUAL +T_LESS +T_LESSEQUAL +T_MUL +T_PRECENT +T_CALLS +T_OPEN_B +T_OPEN_P +T_OPEN_SB +T_CLOSE_B +T_CLOSE_P +T_CLOSE_SB +T_SEMICOLON +T_SUB +L_ID +L_S_STRING +L_D_STRING +L_INT +L_DEC +L_WS +L_M_COMMENT +L_S_COMMENT +L_FILE +L_LABEL +L_ID_PART +L_STR_ESC_D +L_DIGIT +L_BLANK +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 channel names: DEFAULT_TOKEN_CHANNEL @@ -44,4 +1172,4 @@ mode names: DEFAULT_MODE atn: -[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 12, 43, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 3, 2, 3, 2, 3, 3, 3, 3, 3, 4, 3, 4, 3, 5, 3, 5, 3, 6, 3, 6, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 3, 9, 3, 10, 3, 10, 3, 11, 3, 11, 2, 2, 12, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 3, 2, 2, 2, 42, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 3, 23, 3, 2, 2, 2, 5, 25, 3, 2, 2, 2, 7, 27, 3, 2, 2, 2, 9, 29, 3, 2, 2, 2, 11, 31, 3, 2, 2, 2, 13, 33, 3, 2, 2, 2, 15, 35, 3, 2, 2, 2, 17, 37, 3, 2, 2, 2, 19, 39, 3, 2, 2, 2, 21, 41, 3, 2, 2, 2, 23, 24, 7, 66, 2, 2, 24, 4, 3, 2, 2, 2, 25, 26, 7, 37, 2, 2, 26, 6, 3, 2, 2, 2, 27, 28, 7, 49, 2, 2, 28, 8, 3, 2, 2, 2, 29, 30, 7, 39, 2, 2, 30, 10, 3, 2, 2, 2, 31, 32, 7, 48, 2, 2, 32, 12, 3, 2, 2, 2, 33, 34, 7, 44, 2, 2, 34, 14, 3, 2, 2, 2, 35, 36, 7, 35, 2, 2, 36, 16, 3, 2, 2, 2, 37, 38, 7, 61, 2, 2, 38, 18, 3, 2, 2, 2, 39, 40, 7, 47, 2, 2, 40, 20, 3, 2, 2, 2, 41, 42, 7, 45, 2, 2, 42, 22, 3, 2, 2, 2, 3, 2, 2] \ No newline at end of file +[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 2, 378, 3641, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 4, 181, 9, 181, 4, 182, 9, 182, 4, 183, 9, 183, 4, 184, 9, 184, 4, 185, 9, 185, 4, 186, 9, 186, 4, 187, 9, 187, 4, 188, 9, 188, 4, 189, 9, 189, 4, 190, 9, 190, 4, 191, 9, 191, 4, 192, 9, 192, 4, 193, 9, 193, 4, 194, 9, 194, 4, 195, 9, 195, 4, 196, 9, 196, 4, 197, 9, 197, 4, 198, 9, 198, 4, 199, 9, 199, 4, 200, 9, 200, 4, 201, 9, 201, 4, 202, 9, 202, 4, 203, 9, 203, 4, 204, 9, 204, 4, 205, 9, 205, 4, 206, 9, 206, 4, 207, 9, 207, 4, 208, 9, 208, 4, 209, 9, 209, 4, 210, 9, 210, 4, 211, 9, 211, 4, 212, 9, 212, 4, 213, 9, 213, 4, 214, 9, 214, 4, 215, 9, 215, 4, 216, 9, 216, 4, 217, 9, 217, 4, 218, 9, 218, 4, 219, 9, 219, 4, 220, 9, 220, 4, 221, 9, 221, 4, 222, 9, 222, 4, 223, 9, 223, 4, 224, 9, 224, 4, 225, 9, 225, 4, 226, 9, 226, 4, 227, 9, 227, 4, 228, 9, 228, 4, 229, 9, 229, 4, 230, 9, 230, 4, 231, 9, 231, 4, 232, 9, 232, 4, 233, 9, 233, 4, 234, 9, 234, 4, 235, 9, 235, 4, 236, 9, 236, 4, 237, 9, 237, 4, 238, 9, 238, 4, 239, 9, 239, 4, 240, 9, 240, 4, 241, 9, 241, 4, 242, 9, 242, 4, 243, 9, 243, 4, 244, 9, 244, 4, 245, 9, 245, 4, 246, 9, 246, 4, 247, 9, 247, 4, 248, 9, 248, 4, 249, 9, 249, 4, 250, 9, 250, 4, 251, 9, 251, 4, 252, 9, 252, 4, 253, 9, 253, 4, 254, 9, 254, 4, 255, 9, 255, 4, 256, 9, 256, 4, 257, 9, 257, 4, 258, 9, 258, 4, 259, 9, 259, 4, 260, 9, 260, 4, 261, 9, 261, 4, 262, 9, 262, 4, 263, 9, 263, 4, 264, 9, 264, 4, 265, 9, 265, 4, 266, 9, 266, 4, 267, 9, 267, 4, 268, 9, 268, 4, 269, 9, 269, 4, 270, 9, 270, 4, 271, 9, 271, 4, 272, 9, 272, 4, 273, 9, 273, 4, 274, 9, 274, 4, 275, 9, 275, 4, 276, 9, 276, 4, 277, 9, 277, 4, 278, 9, 278, 4, 279, 9, 279, 4, 280, 9, 280, 4, 281, 9, 281, 4, 282, 9, 282, 4, 283, 9, 283, 4, 284, 9, 284, 4, 285, 9, 285, 4, 286, 9, 286, 4, 287, 9, 287, 4, 288, 9, 288, 4, 289, 9, 289, 4, 290, 9, 290, 4, 291, 9, 291, 4, 292, 9, 292, 4, 293, 9, 293, 4, 294, 9, 294, 4, 295, 9, 295, 4, 296, 9, 296, 4, 297, 9, 297, 4, 298, 9, 298, 4, 299, 9, 299, 4, 300, 9, 300, 4, 301, 9, 301, 4, 302, 9, 302, 4, 303, 9, 303, 4, 304, 9, 304, 4, 305, 9, 305, 4, 306, 9, 306, 4, 307, 9, 307, 4, 308, 9, 308, 4, 309, 9, 309, 4, 310, 9, 310, 4, 311, 9, 311, 4, 312, 9, 312, 4, 313, 9, 313, 4, 314, 9, 314, 4, 315, 9, 315, 4, 316, 9, 316, 4, 317, 9, 317, 4, 318, 9, 318, 4, 319, 9, 319, 4, 320, 9, 320, 4, 321, 9, 321, 4, 322, 9, 322, 4, 323, 9, 323, 4, 324, 9, 324, 4, 325, 9, 325, 4, 326, 9, 326, 4, 327, 9, 327, 4, 328, 9, 328, 4, 329, 9, 329, 4, 330, 9, 330, 4, 331, 9, 331, 4, 332, 9, 332, 4, 333, 9, 333, 4, 334, 9, 334, 4, 335, 9, 335, 4, 336, 9, 336, 4, 337, 9, 337, 4, 338, 9, 338, 4, 339, 9, 339, 4, 340, 9, 340, 4, 341, 9, 341, 4, 342, 9, 342, 4, 343, 9, 343, 4, 344, 9, 344, 4, 345, 9, 345, 4, 346, 9, 346, 4, 347, 9, 347, 4, 348, 9, 348, 4, 349, 9, 349, 4, 350, 9, 350, 4, 351, 9, 351, 4, 352, 9, 352, 4, 353, 9, 353, 4, 354, 9, 354, 4, 355, 9, 355, 4, 356, 9, 356, 4, 357, 9, 357, 4, 358, 9, 358, 4, 359, 9, 359, 4, 360, 9, 360, 4, 361, 9, 361, 4, 362, 9, 362, 4, 363, 9, 363, 4, 364, 9, 364, 4, 365, 9, 365, 4, 366, 9, 366, 4, 367, 9, 367, 4, 368, 9, 368, 4, 369, 9, 369, 4, 370, 9, 370, 4, 371, 9, 371, 4, 372, 9, 372, 4, 373, 9, 373, 4, 374, 9, 374, 4, 375, 9, 375, 4, 376, 9, 376, 4, 377, 9, 377, 4, 378, 9, 378, 4, 379, 9, 379, 4, 380, 9, 380, 4, 381, 9, 381, 4, 382, 9, 382, 4, 383, 9, 383, 4, 384, 9, 384, 4, 385, 9, 385, 4, 386, 9, 386, 4, 387, 9, 387, 4, 388, 9, 388, 4, 389, 9, 389, 4, 390, 9, 390, 4, 391, 9, 391, 4, 392, 9, 392, 4, 393, 9, 393, 4, 394, 9, 394, 4, 395, 9, 395, 4, 396, 9, 396, 4, 397, 9, 397, 4, 398, 9, 398, 4, 399, 9, 399, 4, 400, 9, 400, 4, 401, 9, 401, 4, 402, 9, 402, 4, 403, 9, 403, 4, 404, 9, 404, 4, 405, 9, 405, 4, 406, 9, 406, 4, 407, 9, 407, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 30, 3, 31, 3, 31, 3, 31, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 40, 3, 40, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 41, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 63, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 67, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 71, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 72, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 73, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 74, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 78, 3, 79, 3, 79, 3, 79, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 89, 3, 90, 3, 90, 3, 90, 3, 90, 3, 90, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 3, 98, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 3, 152, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 155, 3, 155, 3, 155, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 156, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 157, 3, 158, 3, 158, 3, 158, 3, 158, 3, 158, 3, 159, 3, 159, 3, 159, 3, 159, 3, 159, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 160, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 161, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 162, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 163, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 164, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 165, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 166, 3, 167, 3, 167, 3, 167, 3, 167, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 168, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 169, 3, 170, 3, 170, 3, 170, 3, 170, 3, 170, 3, 171, 3, 171, 3, 171, 3, 171, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 172, 3, 173, 3, 173, 3, 173, 3, 173, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 174, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 175, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 176, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 177, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 178, 3, 179, 3, 179, 3, 179, 3, 179, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 180, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 181, 3, 182, 3, 182, 3, 182, 3, 182, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 183, 3, 184, 3, 184, 3, 184, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 185, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 186, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 187, 3, 188, 3, 188, 3, 188, 3, 188, 3, 188, 3, 189, 3, 189, 3, 189, 3, 189, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 190, 3, 191, 3, 191, 3, 191, 3, 191, 3, 191, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 192, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 193, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 194, 3, 195, 3, 195, 3, 195, 3, 195, 3, 196, 3, 196, 3, 196, 3, 197, 3, 197, 3, 197, 3, 197, 3, 197, 3, 198, 3, 198, 3, 198, 3, 198, 3, 198, 3, 199, 3, 199, 3, 199, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 200, 3, 201, 3, 201, 3, 201, 3, 201, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 202, 3, 203, 3, 203, 3, 203, 3, 203, 3, 203, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 204, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 205, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 206, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 207, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 208, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 209, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 210, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 211, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 212, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 213, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 214, 3, 215, 3, 215, 3, 215, 3, 215, 3, 215, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 216, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 217, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 218, 3, 219, 3, 219, 3, 219, 3, 219, 3, 219, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 220, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 221, 3, 222, 3, 222, 3, 222, 3, 222, 3, 222, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 223, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 224, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 225, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 226, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 227, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 228, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 229, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 230, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 231, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 232, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 233, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 234, 3, 235, 3, 235, 3, 235, 3, 235, 3, 235, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 236, 3, 237, 3, 237, 3, 237, 3, 237, 3, 238, 3, 238, 3, 238, 3, 238, 3, 238, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 239, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 240, 3, 241, 3, 241, 3, 241, 3, 242, 3, 242, 3, 242, 3, 243, 3, 243, 3, 243, 3, 243, 3, 244, 3, 244, 3, 244, 3, 244, 3, 244, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 245, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 246, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 247, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 248, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 249, 3, 250, 3, 250, 3, 250, 3, 250, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 251, 3, 252, 3, 252, 3, 252, 3, 252, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 253, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 254, 3, 255, 3, 255, 3, 255, 3, 255, 3, 255, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 256, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 257, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 258, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 259, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 260, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 261, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 262, 3, 263, 3, 263, 3, 263, 3, 263, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 264, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 265, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 266, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 267, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 268, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 269, 3, 270, 3, 270, 3, 270, 3, 270, 3, 270, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 271, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 272, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 273, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 274, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 275, 3, 276, 3, 276, 3, 276, 3, 276, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 277, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 278, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 279, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 280, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 281, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 282, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 283, 3, 284, 3, 284, 3, 284, 3, 284, 3, 284, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 285, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 286, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 287, 3, 288, 3, 288, 3, 288, 3, 289, 3, 289, 3, 289, 3, 289, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 290, 3, 291, 3, 291, 3, 291, 3, 291, 3, 291, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 292, 3, 293, 3, 293, 3, 293, 3, 293, 3, 293, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 294, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 295, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 296, 3, 297, 3, 297, 3, 297, 3, 298, 3, 298, 3, 298, 3, 298, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 299, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 300, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 301, 3, 302, 3, 302, 3, 302, 3, 302, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 303, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 304, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 305, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 306, 3, 307, 3, 307, 3, 307, 3, 307, 3, 307, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 308, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 309, 3, 310, 3, 310, 3, 310, 3, 310, 3, 310, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 311, 3, 312, 3, 312, 3, 312, 3, 312, 3, 312, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 313, 3, 314, 3, 314, 3, 314, 3, 314, 3, 315, 3, 315, 3, 315, 3, 315, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 316, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 317, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 318, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 319, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 320, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 321, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 322, 3, 323, 3, 323, 3, 323, 3, 323, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 324, 3, 325, 3, 325, 3, 325, 3, 325, 3, 325, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 326, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 327, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 328, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 329, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 330, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 331, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 332, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 333, 3, 334, 3, 334, 3, 334, 3, 334, 3, 334, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 335, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 336, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 337, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 338, 3, 339, 3, 339, 3, 339, 3, 339, 3, 339, 3, 340, 3, 340, 3, 341, 3, 341, 3, 342, 3, 342, 3, 343, 3, 343, 3, 343, 3, 344, 3, 344, 3, 345, 3, 345, 3, 346, 3, 346, 3, 346, 3, 347, 3, 347, 3, 348, 3, 348, 3, 348, 3, 349, 3, 349, 3, 350, 3, 350, 3, 351, 3, 351, 3, 351, 3, 352, 3, 352, 3, 352, 3, 353, 3, 353, 3, 354, 3, 354, 3, 354, 3, 355, 3, 355, 3, 356, 3, 356, 3, 356, 3, 357, 3, 357, 3, 358, 3, 358, 3, 359, 3, 359, 3, 360, 3, 360, 3, 361, 3, 361, 3, 362, 3, 362, 3, 363, 3, 363, 3, 364, 3, 364, 3, 365, 3, 365, 3, 366, 3, 366, 3, 367, 3, 367, 3, 368, 3, 368, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 3, 369, 7, 369, 3420, 10, 369, 12, 369, 14, 369, 3423, 11, 369, 3, 369, 3, 369, 3, 370, 3, 370, 3, 370, 7, 370, 3430, 10, 370, 12, 370, 14, 370, 3433, 11, 370, 3, 370, 3, 370, 3, 371, 6, 371, 3438, 10, 371, 13, 371, 14, 371, 3439, 3, 372, 6, 372, 3443, 10, 372, 13, 372, 14, 372, 3444, 3, 372, 3, 372, 3, 372, 7, 372, 3450, 10, 372, 12, 372, 14, 372, 3453, 11, 372, 3, 372, 3, 372, 6, 372, 3457, 10, 372, 13, 372, 14, 372, 3458, 5, 372, 3461, 10, 372, 3, 373, 6, 373, 3464, 10, 373, 13, 373, 14, 373, 3465, 3, 373, 3, 373, 3, 374, 3, 374, 3, 374, 3, 374, 7, 374, 3474, 10, 374, 12, 374, 14, 374, 3477, 11, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 374, 3, 375, 3, 375, 3, 375, 3, 375, 5, 375, 3488, 10, 375, 3, 375, 7, 375, 3491, 10, 375, 12, 375, 14, 375, 3494, 11, 375, 3, 375, 5, 375, 3497, 10, 375, 3, 375, 3, 375, 3, 375, 3, 375, 3, 376, 3, 376, 3, 376, 5, 376, 3506, 10, 376, 5, 376, 3508, 10, 376, 3, 376, 3, 376, 3, 376, 7, 376, 3513, 10, 376, 12, 376, 14, 376, 3516, 11, 376, 3, 377, 3, 377, 3, 377, 7, 377, 3521, 10, 377, 12, 377, 14, 377, 3524, 11, 377, 3, 377, 3, 377, 3, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3532, 10, 378, 12, 378, 14, 378, 3535, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3540, 10, 378, 12, 378, 14, 378, 3543, 11, 378, 3, 378, 3, 378, 3, 378, 3, 378, 3, 378, 6, 378, 3550, 10, 378, 13, 378, 14, 378, 3551, 3, 378, 3, 378, 7, 378, 3556, 10, 378, 12, 378, 14, 378, 3559, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3564, 10, 378, 12, 378, 14, 378, 3567, 11, 378, 3, 378, 3, 378, 3, 378, 7, 378, 3572, 10, 378, 12, 378, 14, 378, 3575, 11, 378, 3, 378, 5, 378, 3578, 10, 378, 3, 379, 3, 379, 3, 379, 3, 379, 5, 379, 3584, 10, 379, 3, 380, 3, 380, 3, 381, 3, 381, 3, 382, 3, 382, 3, 383, 3, 383, 3, 384, 3, 384, 3, 385, 3, 385, 3, 386, 3, 386, 3, 387, 3, 387, 3, 388, 3, 388, 3, 389, 3, 389, 3, 390, 3, 390, 3, 391, 3, 391, 3, 392, 3, 392, 3, 393, 3, 393, 3, 394, 3, 394, 3, 395, 3, 395, 3, 396, 3, 396, 3, 397, 3, 397, 3, 398, 3, 398, 3, 399, 3, 399, 3, 400, 3, 400, 3, 401, 3, 401, 3, 402, 3, 402, 3, 403, 3, 403, 3, 404, 3, 404, 3, 405, 3, 405, 3, 406, 3, 406, 3, 407, 3, 407, 9, 3431, 3475, 3492, 3541, 3557, 3565, 3573, 2, 408, 3, 3, 5, 4, 7, 5, 9, 6, 11, 7, 13, 8, 15, 9, 17, 10, 19, 11, 21, 12, 23, 13, 25, 14, 27, 15, 29, 16, 31, 17, 33, 18, 35, 19, 37, 20, 39, 21, 41, 22, 43, 23, 45, 24, 47, 25, 49, 26, 51, 27, 53, 28, 55, 29, 57, 30, 59, 31, 61, 32, 63, 33, 65, 34, 67, 35, 69, 36, 71, 37, 73, 38, 75, 39, 77, 40, 79, 41, 81, 42, 83, 43, 85, 44, 87, 45, 89, 46, 91, 47, 93, 48, 95, 49, 97, 50, 99, 51, 101, 52, 103, 53, 105, 54, 107, 55, 109, 56, 111, 57, 113, 58, 115, 59, 117, 60, 119, 61, 121, 62, 123, 63, 125, 64, 127, 65, 129, 66, 131, 67, 133, 68, 135, 69, 137, 70, 139, 71, 141, 72, 143, 73, 145, 74, 147, 75, 149, 76, 151, 77, 153, 78, 155, 79, 157, 80, 159, 81, 161, 82, 163, 83, 165, 84, 167, 85, 169, 86, 171, 87, 173, 88, 175, 89, 177, 90, 179, 91, 181, 92, 183, 93, 185, 94, 187, 95, 189, 96, 191, 97, 193, 98, 195, 99, 197, 100, 199, 101, 201, 102, 203, 103, 205, 104, 207, 105, 209, 106, 211, 107, 213, 108, 215, 109, 217, 110, 219, 111, 221, 112, 223, 113, 225, 114, 227, 115, 229, 116, 231, 117, 233, 118, 235, 119, 237, 120, 239, 121, 241, 122, 243, 123, 245, 124, 247, 125, 249, 126, 251, 127, 253, 128, 255, 129, 257, 130, 259, 131, 261, 132, 263, 133, 265, 134, 267, 135, 269, 136, 271, 137, 273, 138, 275, 139, 277, 140, 279, 141, 281, 142, 283, 143, 285, 144, 287, 145, 289, 146, 291, 147, 293, 148, 295, 149, 297, 150, 299, 151, 301, 152, 303, 153, 305, 154, 307, 155, 309, 156, 311, 157, 313, 158, 315, 159, 317, 160, 319, 161, 321, 162, 323, 163, 325, 164, 327, 165, 329, 166, 331, 167, 333, 168, 335, 169, 337, 170, 339, 171, 341, 172, 343, 173, 345, 174, 347, 175, 349, 176, 351, 177, 353, 178, 355, 179, 357, 180, 359, 181, 361, 182, 363, 183, 365, 184, 367, 185, 369, 186, 371, 187, 373, 188, 375, 189, 377, 190, 379, 191, 381, 192, 383, 193, 385, 194, 387, 195, 389, 196, 391, 197, 393, 198, 395, 199, 397, 200, 399, 201, 401, 202, 403, 203, 405, 204, 407, 205, 409, 206, 411, 207, 413, 208, 415, 209, 417, 210, 419, 211, 421, 212, 423, 213, 425, 214, 427, 215, 429, 216, 431, 217, 433, 218, 435, 219, 437, 220, 439, 221, 441, 222, 443, 223, 445, 224, 447, 225, 449, 226, 451, 227, 453, 228, 455, 229, 457, 230, 459, 231, 461, 232, 463, 233, 465, 234, 467, 235, 469, 236, 471, 237, 473, 238, 475, 239, 477, 240, 479, 241, 481, 242, 483, 243, 485, 244, 487, 245, 489, 246, 491, 247, 493, 248, 495, 249, 497, 250, 499, 251, 501, 252, 503, 253, 505, 254, 507, 255, 509, 256, 511, 257, 513, 258, 515, 259, 517, 260, 519, 261, 521, 262, 523, 263, 525, 264, 527, 265, 529, 266, 531, 267, 533, 268, 535, 269, 537, 270, 539, 271, 541, 272, 543, 273, 545, 274, 547, 275, 549, 276, 551, 277, 553, 278, 555, 279, 557, 280, 559, 281, 561, 282, 563, 283, 565, 284, 567, 285, 569, 286, 571, 287, 573, 288, 575, 289, 577, 290, 579, 291, 581, 292, 583, 293, 585, 294, 587, 295, 589, 296, 591, 297, 593, 298, 595, 299, 597, 300, 599, 301, 601, 302, 603, 303, 605, 304, 607, 305, 609, 306, 611, 307, 613, 308, 615, 309, 617, 310, 619, 311, 621, 312, 623, 313, 625, 314, 627, 315, 629, 316, 631, 317, 633, 318, 635, 319, 637, 320, 639, 321, 641, 322, 643, 323, 645, 324, 647, 325, 649, 326, 651, 327, 653, 328, 655, 329, 657, 330, 659, 331, 661, 332, 663, 333, 665, 334, 667, 335, 669, 336, 671, 337, 673, 338, 675, 339, 677, 340, 679, 341, 681, 342, 683, 343, 685, 344, 687, 345, 689, 346, 691, 347, 693, 348, 695, 349, 697, 350, 699, 351, 701, 352, 703, 353, 705, 354, 707, 355, 709, 356, 711, 357, 713, 358, 715, 359, 717, 360, 719, 361, 721, 362, 723, 363, 725, 364, 727, 365, 729, 366, 731, 367, 733, 368, 735, 369, 737, 370, 739, 371, 741, 372, 743, 373, 745, 374, 747, 375, 749, 376, 751, 377, 753, 378, 755, 2, 757, 2, 759, 2, 761, 2, 763, 2, 765, 2, 767, 2, 769, 2, 771, 2, 773, 2, 775, 2, 777, 2, 779, 2, 781, 2, 783, 2, 785, 2, 787, 2, 789, 2, 791, 2, 793, 2, 795, 2, 797, 2, 799, 2, 801, 2, 803, 2, 805, 2, 807, 2, 809, 2, 811, 2, 813, 2, 3, 2, 34, 3, 2, 41, 41, 3, 2, 48, 48, 4, 2, 67, 92, 99, 124, 6, 2, 37, 38, 60, 60, 66, 66, 97, 97, 3, 2, 50, 59, 5, 2, 11, 12, 15, 15, 34, 34, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 71, 71, 103, 103, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 3647, 2, 3, 3, 2, 2, 2, 2, 5, 3, 2, 2, 2, 2, 7, 3, 2, 2, 2, 2, 9, 3, 2, 2, 2, 2, 11, 3, 2, 2, 2, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 2, 57, 3, 2, 2, 2, 2, 59, 3, 2, 2, 2, 2, 61, 3, 2, 2, 2, 2, 63, 3, 2, 2, 2, 2, 65, 3, 2, 2, 2, 2, 67, 3, 2, 2, 2, 2, 69, 3, 2, 2, 2, 2, 71, 3, 2, 2, 2, 2, 73, 3, 2, 2, 2, 2, 75, 3, 2, 2, 2, 2, 77, 3, 2, 2, 2, 2, 79, 3, 2, 2, 2, 2, 81, 3, 2, 2, 2, 2, 83, 3, 2, 2, 2, 2, 85, 3, 2, 2, 2, 2, 87, 3, 2, 2, 2, 2, 89, 3, 2, 2, 2, 2, 91, 3, 2, 2, 2, 2, 93, 3, 2, 2, 2, 2, 95, 3, 2, 2, 2, 2, 97, 3, 2, 2, 2, 2, 99, 3, 2, 2, 2, 2, 101, 3, 2, 2, 2, 2, 103, 3, 2, 2, 2, 2, 105, 3, 2, 2, 2, 2, 107, 3, 2, 2, 2, 2, 109, 3, 2, 2, 2, 2, 111, 3, 2, 2, 2, 2, 113, 3, 2, 2, 2, 2, 115, 3, 2, 2, 2, 2, 117, 3, 2, 2, 2, 2, 119, 3, 2, 2, 2, 2, 121, 3, 2, 2, 2, 2, 123, 3, 2, 2, 2, 2, 125, 3, 2, 2, 2, 2, 127, 3, 2, 2, 2, 2, 129, 3, 2, 2, 2, 2, 131, 3, 2, 2, 2, 2, 133, 3, 2, 2, 2, 2, 135, 3, 2, 2, 2, 2, 137, 3, 2, 2, 2, 2, 139, 3, 2, 2, 2, 2, 141, 3, 2, 2, 2, 2, 143, 3, 2, 2, 2, 2, 145, 3, 2, 2, 2, 2, 147, 3, 2, 2, 2, 2, 149, 3, 2, 2, 2, 2, 151, 3, 2, 2, 2, 2, 153, 3, 2, 2, 2, 2, 155, 3, 2, 2, 2, 2, 157, 3, 2, 2, 2, 2, 159, 3, 2, 2, 2, 2, 161, 3, 2, 2, 2, 2, 163, 3, 2, 2, 2, 2, 165, 3, 2, 2, 2, 2, 167, 3, 2, 2, 2, 2, 169, 3, 2, 2, 2, 2, 171, 3, 2, 2, 2, 2, 173, 3, 2, 2, 2, 2, 175, 3, 2, 2, 2, 2, 177, 3, 2, 2, 2, 2, 179, 3, 2, 2, 2, 2, 181, 3, 2, 2, 2, 2, 183, 3, 2, 2, 2, 2, 185, 3, 2, 2, 2, 2, 187, 3, 2, 2, 2, 2, 189, 3, 2, 2, 2, 2, 191, 3, 2, 2, 2, 2, 193, 3, 2, 2, 2, 2, 195, 3, 2, 2, 2, 2, 197, 3, 2, 2, 2, 2, 199, 3, 2, 2, 2, 2, 201, 3, 2, 2, 2, 2, 203, 3, 2, 2, 2, 2, 205, 3, 2, 2, 2, 2, 207, 3, 2, 2, 2, 2, 209, 3, 2, 2, 2, 2, 211, 3, 2, 2, 2, 2, 213, 3, 2, 2, 2, 2, 215, 3, 2, 2, 2, 2, 217, 3, 2, 2, 2, 2, 219, 3, 2, 2, 2, 2, 221, 3, 2, 2, 2, 2, 223, 3, 2, 2, 2, 2, 225, 3, 2, 2, 2, 2, 227, 3, 2, 2, 2, 2, 229, 3, 2, 2, 2, 2, 231, 3, 2, 2, 2, 2, 233, 3, 2, 2, 2, 2, 235, 3, 2, 2, 2, 2, 237, 3, 2, 2, 2, 2, 239, 3, 2, 2, 2, 2, 241, 3, 2, 2, 2, 2, 243, 3, 2, 2, 2, 2, 245, 3, 2, 2, 2, 2, 247, 3, 2, 2, 2, 2, 249, 3, 2, 2, 2, 2, 251, 3, 2, 2, 2, 2, 253, 3, 2, 2, 2, 2, 255, 3, 2, 2, 2, 2, 257, 3, 2, 2, 2, 2, 259, 3, 2, 2, 2, 2, 261, 3, 2, 2, 2, 2, 263, 3, 2, 2, 2, 2, 265, 3, 2, 2, 2, 2, 267, 3, 2, 2, 2, 2, 269, 3, 2, 2, 2, 2, 271, 3, 2, 2, 2, 2, 273, 3, 2, 2, 2, 2, 275, 3, 2, 2, 2, 2, 277, 3, 2, 2, 2, 2, 279, 3, 2, 2, 2, 2, 281, 3, 2, 2, 2, 2, 283, 3, 2, 2, 2, 2, 285, 3, 2, 2, 2, 2, 287, 3, 2, 2, 2, 2, 289, 3, 2, 2, 2, 2, 291, 3, 2, 2, 2, 2, 293, 3, 2, 2, 2, 2, 295, 3, 2, 2, 2, 2, 297, 3, 2, 2, 2, 2, 299, 3, 2, 2, 2, 2, 301, 3, 2, 2, 2, 2, 303, 3, 2, 2, 2, 2, 305, 3, 2, 2, 2, 2, 307, 3, 2, 2, 2, 2, 309, 3, 2, 2, 2, 2, 311, 3, 2, 2, 2, 2, 313, 3, 2, 2, 2, 2, 315, 3, 2, 2, 2, 2, 317, 3, 2, 2, 2, 2, 319, 3, 2, 2, 2, 2, 321, 3, 2, 2, 2, 2, 323, 3, 2, 2, 2, 2, 325, 3, 2, 2, 2, 2, 327, 3, 2, 2, 2, 2, 329, 3, 2, 2, 2, 2, 331, 3, 2, 2, 2, 2, 333, 3, 2, 2, 2, 2, 335, 3, 2, 2, 2, 2, 337, 3, 2, 2, 2, 2, 339, 3, 2, 2, 2, 2, 341, 3, 2, 2, 2, 2, 343, 3, 2, 2, 2, 2, 345, 3, 2, 2, 2, 2, 347, 3, 2, 2, 2, 2, 349, 3, 2, 2, 2, 2, 351, 3, 2, 2, 2, 2, 353, 3, 2, 2, 2, 2, 355, 3, 2, 2, 2, 2, 357, 3, 2, 2, 2, 2, 359, 3, 2, 2, 2, 2, 361, 3, 2, 2, 2, 2, 363, 3, 2, 2, 2, 2, 365, 3, 2, 2, 2, 2, 367, 3, 2, 2, 2, 2, 369, 3, 2, 2, 2, 2, 371, 3, 2, 2, 2, 2, 373, 3, 2, 2, 2, 2, 375, 3, 2, 2, 2, 2, 377, 3, 2, 2, 2, 2, 379, 3, 2, 2, 2, 2, 381, 3, 2, 2, 2, 2, 383, 3, 2, 2, 2, 2, 385, 3, 2, 2, 2, 2, 387, 3, 2, 2, 2, 2, 389, 3, 2, 2, 2, 2, 391, 3, 2, 2, 2, 2, 393, 3, 2, 2, 2, 2, 395, 3, 2, 2, 2, 2, 397, 3, 2, 2, 2, 2, 399, 3, 2, 2, 2, 2, 401, 3, 2, 2, 2, 2, 403, 3, 2, 2, 2, 2, 405, 3, 2, 2, 2, 2, 407, 3, 2, 2, 2, 2, 409, 3, 2, 2, 2, 2, 411, 3, 2, 2, 2, 2, 413, 3, 2, 2, 2, 2, 415, 3, 2, 2, 2, 2, 417, 3, 2, 2, 2, 2, 419, 3, 2, 2, 2, 2, 421, 3, 2, 2, 2, 2, 423, 3, 2, 2, 2, 2, 425, 3, 2, 2, 2, 2, 427, 3, 2, 2, 2, 2, 429, 3, 2, 2, 2, 2, 431, 3, 2, 2, 2, 2, 433, 3, 2, 2, 2, 2, 435, 3, 2, 2, 2, 2, 437, 3, 2, 2, 2, 2, 439, 3, 2, 2, 2, 2, 441, 3, 2, 2, 2, 2, 443, 3, 2, 2, 2, 2, 445, 3, 2, 2, 2, 2, 447, 3, 2, 2, 2, 2, 449, 3, 2, 2, 2, 2, 451, 3, 2, 2, 2, 2, 453, 3, 2, 2, 2, 2, 455, 3, 2, 2, 2, 2, 457, 3, 2, 2, 2, 2, 459, 3, 2, 2, 2, 2, 461, 3, 2, 2, 2, 2, 463, 3, 2, 2, 2, 2, 465, 3, 2, 2, 2, 2, 467, 3, 2, 2, 2, 2, 469, 3, 2, 2, 2, 2, 471, 3, 2, 2, 2, 2, 473, 3, 2, 2, 2, 2, 475, 3, 2, 2, 2, 2, 477, 3, 2, 2, 2, 2, 479, 3, 2, 2, 2, 2, 481, 3, 2, 2, 2, 2, 483, 3, 2, 2, 2, 2, 485, 3, 2, 2, 2, 2, 487, 3, 2, 2, 2, 2, 489, 3, 2, 2, 2, 2, 491, 3, 2, 2, 2, 2, 493, 3, 2, 2, 2, 2, 495, 3, 2, 2, 2, 2, 497, 3, 2, 2, 2, 2, 499, 3, 2, 2, 2, 2, 501, 3, 2, 2, 2, 2, 503, 3, 2, 2, 2, 2, 505, 3, 2, 2, 2, 2, 507, 3, 2, 2, 2, 2, 509, 3, 2, 2, 2, 2, 511, 3, 2, 2, 2, 2, 513, 3, 2, 2, 2, 2, 515, 3, 2, 2, 2, 2, 517, 3, 2, 2, 2, 2, 519, 3, 2, 2, 2, 2, 521, 3, 2, 2, 2, 2, 523, 3, 2, 2, 2, 2, 525, 3, 2, 2, 2, 2, 527, 3, 2, 2, 2, 2, 529, 3, 2, 2, 2, 2, 531, 3, 2, 2, 2, 2, 533, 3, 2, 2, 2, 2, 535, 3, 2, 2, 2, 2, 537, 3, 2, 2, 2, 2, 539, 3, 2, 2, 2, 2, 541, 3, 2, 2, 2, 2, 543, 3, 2, 2, 2, 2, 545, 3, 2, 2, 2, 2, 547, 3, 2, 2, 2, 2, 549, 3, 2, 2, 2, 2, 551, 3, 2, 2, 2, 2, 553, 3, 2, 2, 2, 2, 555, 3, 2, 2, 2, 2, 557, 3, 2, 2, 2, 2, 559, 3, 2, 2, 2, 2, 561, 3, 2, 2, 2, 2, 563, 3, 2, 2, 2, 2, 565, 3, 2, 2, 2, 2, 567, 3, 2, 2, 2, 2, 569, 3, 2, 2, 2, 2, 571, 3, 2, 2, 2, 2, 573, 3, 2, 2, 2, 2, 575, 3, 2, 2, 2, 2, 577, 3, 2, 2, 2, 2, 579, 3, 2, 2, 2, 2, 581, 3, 2, 2, 2, 2, 583, 3, 2, 2, 2, 2, 585, 3, 2, 2, 2, 2, 587, 3, 2, 2, 2, 2, 589, 3, 2, 2, 2, 2, 591, 3, 2, 2, 2, 2, 593, 3, 2, 2, 2, 2, 595, 3, 2, 2, 2, 2, 597, 3, 2, 2, 2, 2, 599, 3, 2, 2, 2, 2, 601, 3, 2, 2, 2, 2, 603, 3, 2, 2, 2, 2, 605, 3, 2, 2, 2, 2, 607, 3, 2, 2, 2, 2, 609, 3, 2, 2, 2, 2, 611, 3, 2, 2, 2, 2, 613, 3, 2, 2, 2, 2, 615, 3, 2, 2, 2, 2, 617, 3, 2, 2, 2, 2, 619, 3, 2, 2, 2, 2, 621, 3, 2, 2, 2, 2, 623, 3, 2, 2, 2, 2, 625, 3, 2, 2, 2, 2, 627, 3, 2, 2, 2, 2, 629, 3, 2, 2, 2, 2, 631, 3, 2, 2, 2, 2, 633, 3, 2, 2, 2, 2, 635, 3, 2, 2, 2, 2, 637, 3, 2, 2, 2, 2, 639, 3, 2, 2, 2, 2, 641, 3, 2, 2, 2, 2, 643, 3, 2, 2, 2, 2, 645, 3, 2, 2, 2, 2, 647, 3, 2, 2, 2, 2, 649, 3, 2, 2, 2, 2, 651, 3, 2, 2, 2, 2, 653, 3, 2, 2, 2, 2, 655, 3, 2, 2, 2, 2, 657, 3, 2, 2, 2, 2, 659, 3, 2, 2, 2, 2, 661, 3, 2, 2, 2, 2, 663, 3, 2, 2, 2, 2, 665, 3, 2, 2, 2, 2, 667, 3, 2, 2, 2, 2, 669, 3, 2, 2, 2, 2, 671, 3, 2, 2, 2, 2, 673, 3, 2, 2, 2, 2, 675, 3, 2, 2, 2, 2, 677, 3, 2, 2, 2, 2, 679, 3, 2, 2, 2, 2, 681, 3, 2, 2, 2, 2, 683, 3, 2, 2, 2, 2, 685, 3, 2, 2, 2, 2, 687, 3, 2, 2, 2, 2, 689, 3, 2, 2, 2, 2, 691, 3, 2, 2, 2, 2, 693, 3, 2, 2, 2, 2, 695, 3, 2, 2, 2, 2, 697, 3, 2, 2, 2, 2, 699, 3, 2, 2, 2, 2, 701, 3, 2, 2, 2, 2, 703, 3, 2, 2, 2, 2, 705, 3, 2, 2, 2, 2, 707, 3, 2, 2, 2, 2, 709, 3, 2, 2, 2, 2, 711, 3, 2, 2, 2, 2, 713, 3, 2, 2, 2, 2, 715, 3, 2, 2, 2, 2, 717, 3, 2, 2, 2, 2, 719, 3, 2, 2, 2, 2, 721, 3, 2, 2, 2, 2, 723, 3, 2, 2, 2, 2, 725, 3, 2, 2, 2, 2, 727, 3, 2, 2, 2, 2, 729, 3, 2, 2, 2, 2, 731, 3, 2, 2, 2, 2, 733, 3, 2, 2, 2, 2, 735, 3, 2, 2, 2, 2, 737, 3, 2, 2, 2, 2, 739, 3, 2, 2, 2, 2, 741, 3, 2, 2, 2, 2, 743, 3, 2, 2, 2, 2, 745, 3, 2, 2, 2, 2, 747, 3, 2, 2, 2, 2, 749, 3, 2, 2, 2, 2, 751, 3, 2, 2, 2, 2, 753, 3, 2, 2, 2, 3, 815, 3, 2, 2, 2, 5, 822, 3, 2, 2, 2, 7, 826, 3, 2, 2, 2, 9, 830, 3, 2, 2, 2, 11, 839, 3, 2, 2, 2, 13, 845, 3, 2, 2, 2, 15, 849, 3, 2, 2, 2, 17, 860, 3, 2, 2, 2, 19, 873, 3, 2, 2, 2, 21, 876, 3, 2, 2, 2, 23, 880, 3, 2, 2, 2, 25, 890, 3, 2, 2, 2, 27, 893, 3, 2, 2, 2, 29, 908, 3, 2, 2, 2, 31, 912, 3, 2, 2, 2, 33, 922, 3, 2, 2, 2, 35, 928, 3, 2, 2, 2, 37, 936, 3, 2, 2, 2, 39, 943, 3, 2, 2, 2, 41, 957, 3, 2, 2, 2, 43, 970, 3, 2, 2, 2, 45, 985, 3, 2, 2, 2, 47, 989, 3, 2, 2, 2, 49, 994, 3, 2, 2, 2, 51, 1000, 3, 2, 2, 2, 53, 1003, 3, 2, 2, 2, 55, 1008, 3, 2, 2, 2, 57, 1013, 3, 2, 2, 2, 59, 1020, 3, 2, 2, 2, 61, 1028, 3, 2, 2, 2, 63, 1033, 3, 2, 2, 2, 65, 1046, 3, 2, 2, 2, 67, 1051, 3, 2, 2, 2, 69, 1056, 3, 2, 2, 2, 71, 1066, 3, 2, 2, 2, 73, 1074, 3, 2, 2, 2, 75, 1081, 3, 2, 2, 2, 77, 1087, 3, 2, 2, 2, 79, 1097, 3, 2, 2, 2, 81, 1101, 3, 2, 2, 2, 83, 1109, 3, 2, 2, 2, 85, 1120, 3, 2, 2, 2, 87, 1127, 3, 2, 2, 2, 89, 1135, 3, 2, 2, 2, 91, 1144, 3, 2, 2, 2, 93, 1151, 3, 2, 2, 2, 95, 1160, 3, 2, 2, 2, 97, 1167, 3, 2, 2, 2, 99, 1177, 3, 2, 2, 2, 101, 1188, 3, 2, 2, 2, 103, 1197, 3, 2, 2, 2, 105, 1202, 3, 2, 2, 2, 107, 1208, 3, 2, 2, 2, 109, 1218, 3, 2, 2, 2, 111, 1225, 3, 2, 2, 2, 113, 1234, 3, 2, 2, 2, 115, 1242, 3, 2, 2, 2, 117, 1245, 3, 2, 2, 2, 119, 1253, 3, 2, 2, 2, 121, 1268, 3, 2, 2, 2, 123, 1275, 3, 2, 2, 2, 125, 1284, 3, 2, 2, 2, 127, 1289, 3, 2, 2, 2, 129, 1294, 3, 2, 2, 2, 131, 1303, 3, 2, 2, 2, 133, 1307, 3, 2, 2, 2, 135, 1312, 3, 2, 2, 2, 137, 1316, 3, 2, 2, 2, 139, 1324, 3, 2, 2, 2, 141, 1332, 3, 2, 2, 2, 143, 1340, 3, 2, 2, 2, 145, 1349, 3, 2, 2, 2, 147, 1357, 3, 2, 2, 2, 149, 1365, 3, 2, 2, 2, 151, 1376, 3, 2, 2, 2, 153, 1383, 3, 2, 2, 2, 155, 1393, 3, 2, 2, 2, 157, 1403, 3, 2, 2, 2, 159, 1408, 3, 2, 2, 2, 161, 1417, 3, 2, 2, 2, 163, 1429, 3, 2, 2, 2, 165, 1433, 3, 2, 2, 2, 167, 1443, 3, 2, 2, 2, 169, 1452, 3, 2, 2, 2, 171, 1463, 3, 2, 2, 2, 173, 1466, 3, 2, 2, 2, 175, 1473, 3, 2, 2, 2, 177, 1478, 3, 2, 2, 2, 179, 1486, 3, 2, 2, 2, 181, 1491, 3, 2, 2, 2, 183, 1498, 3, 2, 2, 2, 185, 1504, 3, 2, 2, 2, 187, 1511, 3, 2, 2, 2, 189, 1515, 3, 2, 2, 2, 191, 1522, 3, 2, 2, 2, 193, 1530, 3, 2, 2, 2, 195, 1537, 3, 2, 2, 2, 197, 1542, 3, 2, 2, 2, 199, 1550, 3, 2, 2, 2, 201, 1560, 3, 2, 2, 2, 203, 1570, 3, 2, 2, 2, 205, 1577, 3, 2, 2, 2, 207, 1582, 3, 2, 2, 2, 209, 1591, 3, 2, 2, 2, 211, 1597, 3, 2, 2, 2, 213, 1603, 3, 2, 2, 2, 215, 1610, 3, 2, 2, 2, 217, 1615, 3, 2, 2, 2, 219, 1621, 3, 2, 2, 2, 221, 1627, 3, 2, 2, 2, 223, 1631, 3, 2, 2, 2, 225, 1639, 3, 2, 2, 2, 227, 1646, 3, 2, 2, 2, 229, 1652, 3, 2, 2, 2, 231, 1657, 3, 2, 2, 2, 233, 1662, 3, 2, 2, 2, 235, 1671, 3, 2, 2, 2, 237, 1675, 3, 2, 2, 2, 239, 1682, 3, 2, 2, 2, 241, 1685, 3, 2, 2, 2, 243, 1691, 3, 2, 2, 2, 245, 1697, 3, 2, 2, 2, 247, 1705, 3, 2, 2, 2, 249, 1710, 3, 2, 2, 2, 251, 1717, 3, 2, 2, 2, 253, 1722, 3, 2, 2, 2, 255, 1727, 3, 2, 2, 2, 257, 1732, 3, 2, 2, 2, 259, 1741, 3, 2, 2, 2, 261, 1744, 3, 2, 2, 2, 263, 1751, 3, 2, 2, 2, 265, 1761, 3, 2, 2, 2, 267, 1764, 3, 2, 2, 2, 269, 1772, 3, 2, 2, 2, 271, 1778, 3, 2, 2, 2, 273, 1787, 3, 2, 2, 2, 275, 1793, 3, 2, 2, 2, 277, 1799, 3, 2, 2, 2, 279, 1806, 3, 2, 2, 2, 281, 1810, 3, 2, 2, 2, 283, 1815, 3, 2, 2, 2, 285, 1820, 3, 2, 2, 2, 287, 1825, 3, 2, 2, 2, 289, 1833, 3, 2, 2, 2, 291, 1843, 3, 2, 2, 2, 293, 1852, 3, 2, 2, 2, 295, 1857, 3, 2, 2, 2, 297, 1865, 3, 2, 2, 2, 299, 1868, 3, 2, 2, 2, 301, 1875, 3, 2, 2, 2, 303, 1881, 3, 2, 2, 2, 305, 1886, 3, 2, 2, 2, 307, 1891, 3, 2, 2, 2, 309, 1895, 3, 2, 2, 2, 311, 1900, 3, 2, 2, 2, 313, 1909, 3, 2, 2, 2, 315, 1915, 3, 2, 2, 2, 317, 1920, 3, 2, 2, 2, 319, 1925, 3, 2, 2, 2, 321, 1931, 3, 2, 2, 2, 323, 1937, 3, 2, 2, 2, 325, 1943, 3, 2, 2, 2, 327, 1952, 3, 2, 2, 2, 329, 1960, 3, 2, 2, 2, 331, 1969, 3, 2, 2, 2, 333, 1975, 3, 2, 2, 2, 335, 1979, 3, 2, 2, 2, 337, 1986, 3, 2, 2, 2, 339, 1994, 3, 2, 2, 2, 341, 1999, 3, 2, 2, 2, 343, 2003, 3, 2, 2, 2, 345, 2011, 3, 2, 2, 2, 347, 2015, 3, 2, 2, 2, 349, 2024, 3, 2, 2, 2, 351, 2030, 3, 2, 2, 2, 353, 2043, 3, 2, 2, 2, 355, 2055, 3, 2, 2, 2, 357, 2068, 3, 2, 2, 2, 359, 2072, 3, 2, 2, 2, 361, 2081, 3, 2, 2, 2, 363, 2087, 3, 2, 2, 2, 365, 2091, 3, 2, 2, 2, 367, 2100, 3, 2, 2, 2, 369, 2103, 3, 2, 2, 2, 371, 2111, 3, 2, 2, 2, 373, 2122, 3, 2, 2, 2, 375, 2132, 3, 2, 2, 2, 377, 2137, 3, 2, 2, 2, 379, 2141, 3, 2, 2, 2, 381, 2150, 3, 2, 2, 2, 383, 2155, 3, 2, 2, 2, 385, 2163, 3, 2, 2, 2, 387, 2170, 3, 2, 2, 2, 389, 2177, 3, 2, 2, 2, 391, 2181, 3, 2, 2, 2, 393, 2184, 3, 2, 2, 2, 395, 2189, 3, 2, 2, 2, 397, 2194, 3, 2, 2, 2, 399, 2197, 3, 2, 2, 2, 401, 2203, 3, 2, 2, 2, 403, 2207, 3, 2, 2, 2, 405, 2213, 3, 2, 2, 2, 407, 2218, 3, 2, 2, 2, 409, 2228, 3, 2, 2, 2, 411, 2234, 3, 2, 2, 2, 413, 2242, 3, 2, 2, 2, 415, 2252, 3, 2, 2, 2, 417, 2260, 3, 2, 2, 2, 419, 2268, 3, 2, 2, 2, 421, 2280, 3, 2, 2, 2, 423, 2290, 3, 2, 2, 2, 425, 2299, 3, 2, 2, 2, 427, 2307, 3, 2, 2, 2, 429, 2313, 3, 2, 2, 2, 431, 2318, 3, 2, 2, 2, 433, 2328, 3, 2, 2, 2, 435, 2336, 3, 2, 2, 2, 437, 2347, 3, 2, 2, 2, 439, 2352, 3, 2, 2, 2, 441, 2370, 3, 2, 2, 2, 443, 2376, 3, 2, 2, 2, 445, 2381, 3, 2, 2, 2, 447, 2392, 3, 2, 2, 2, 449, 2399, 3, 2, 2, 2, 451, 2407, 3, 2, 2, 2, 453, 2416, 3, 2, 2, 2, 455, 2425, 3, 2, 2, 2, 457, 2432, 3, 2, 2, 2, 459, 2451, 3, 2, 2, 2, 461, 2458, 3, 2, 2, 2, 463, 2466, 3, 2, 2, 2, 465, 2474, 3, 2, 2, 2, 467, 2480, 3, 2, 2, 2, 469, 2486, 3, 2, 2, 2, 471, 2491, 3, 2, 2, 2, 473, 2500, 3, 2, 2, 2, 475, 2504, 3, 2, 2, 2, 477, 2509, 3, 2, 2, 2, 479, 2517, 3, 2, 2, 2, 481, 2527, 3, 2, 2, 2, 483, 2530, 3, 2, 2, 2, 485, 2533, 3, 2, 2, 2, 487, 2537, 3, 2, 2, 2, 489, 2542, 3, 2, 2, 2, 491, 2549, 3, 2, 2, 2, 493, 2556, 3, 2, 2, 2, 495, 2564, 3, 2, 2, 2, 497, 2573, 3, 2, 2, 2, 499, 2581, 3, 2, 2, 2, 501, 2585, 3, 2, 2, 2, 503, 2592, 3, 2, 2, 2, 505, 2596, 3, 2, 2, 2, 507, 2604, 3, 2, 2, 2, 509, 2613, 3, 2, 2, 2, 511, 2618, 3, 2, 2, 2, 513, 2624, 3, 2, 2, 2, 515, 2631, 3, 2, 2, 2, 517, 2645, 3, 2, 2, 2, 519, 2658, 3, 2, 2, 2, 521, 2673, 3, 2, 2, 2, 523, 2687, 3, 2, 2, 2, 525, 2696, 3, 2, 2, 2, 527, 2700, 3, 2, 2, 2, 529, 2713, 3, 2, 2, 2, 531, 2723, 3, 2, 2, 2, 533, 2732, 3, 2, 2, 2, 535, 2743, 3, 2, 2, 2, 537, 2749, 3, 2, 2, 2, 539, 2760, 3, 2, 2, 2, 541, 2765, 3, 2, 2, 2, 543, 2773, 3, 2, 2, 2, 545, 2780, 3, 2, 2, 2, 547, 2787, 3, 2, 2, 2, 549, 2794, 3, 2, 2, 2, 551, 2804, 3, 2, 2, 2, 553, 2808, 3, 2, 2, 2, 555, 2816, 3, 2, 2, 2, 557, 2830, 3, 2, 2, 2, 559, 2836, 3, 2, 2, 2, 561, 2847, 3, 2, 2, 2, 563, 2857, 3, 2, 2, 2, 565, 2868, 3, 2, 2, 2, 567, 2881, 3, 2, 2, 2, 569, 2886, 3, 2, 2, 2, 571, 2896, 3, 2, 2, 2, 573, 2904, 3, 2, 2, 2, 575, 2910, 3, 2, 2, 2, 577, 2913, 3, 2, 2, 2, 579, 2917, 3, 2, 2, 2, 581, 2929, 3, 2, 2, 2, 583, 2934, 3, 2, 2, 2, 585, 2943, 3, 2, 2, 2, 587, 2948, 3, 2, 2, 2, 589, 2954, 3, 2, 2, 2, 591, 2961, 3, 2, 2, 2, 593, 2968, 3, 2, 2, 2, 595, 2971, 3, 2, 2, 2, 597, 2975, 3, 2, 2, 2, 599, 2981, 3, 2, 2, 2, 601, 2987, 3, 2, 2, 2, 603, 2994, 3, 2, 2, 2, 605, 2998, 3, 2, 2, 2, 607, 3006, 3, 2, 2, 2, 609, 3015, 3, 2, 2, 2, 611, 3023, 3, 2, 2, 2, 613, 3032, 3, 2, 2, 2, 615, 3037, 3, 2, 2, 2, 617, 3043, 3, 2, 2, 2, 619, 3049, 3, 2, 2, 2, 621, 3054, 3, 2, 2, 2, 623, 3062, 3, 2, 2, 2, 625, 3067, 3, 2, 2, 2, 627, 3078, 3, 2, 2, 2, 629, 3082, 3, 2, 2, 2, 631, 3086, 3, 2, 2, 2, 633, 3101, 3, 2, 2, 2, 635, 3111, 3, 2, 2, 2, 637, 3124, 3, 2, 2, 2, 639, 3142, 3, 2, 2, 2, 641, 3155, 3, 2, 2, 2, 643, 3166, 3, 2, 2, 2, 645, 3178, 3, 2, 2, 2, 647, 3182, 3, 2, 2, 2, 649, 3193, 3, 2, 2, 2, 651, 3198, 3, 2, 2, 2, 653, 3214, 3, 2, 2, 2, 655, 3230, 3, 2, 2, 2, 657, 3243, 3, 2, 2, 2, 659, 3256, 3, 2, 2, 2, 661, 3270, 3, 2, 2, 2, 663, 3284, 3, 2, 2, 2, 665, 3295, 3, 2, 2, 2, 667, 3304, 3, 2, 2, 2, 669, 3309, 3, 2, 2, 2, 671, 3320, 3, 2, 2, 2, 673, 3326, 3, 2, 2, 2, 675, 3334, 3, 2, 2, 2, 677, 3343, 3, 2, 2, 2, 679, 3348, 3, 2, 2, 2, 681, 3350, 3, 2, 2, 2, 683, 3352, 3, 2, 2, 2, 685, 3354, 3, 2, 2, 2, 687, 3357, 3, 2, 2, 2, 689, 3359, 3, 2, 2, 2, 691, 3361, 3, 2, 2, 2, 693, 3364, 3, 2, 2, 2, 695, 3366, 3, 2, 2, 2, 697, 3369, 3, 2, 2, 2, 699, 3371, 3, 2, 2, 2, 701, 3373, 3, 2, 2, 2, 703, 3376, 3, 2, 2, 2, 705, 3379, 3, 2, 2, 2, 707, 3381, 3, 2, 2, 2, 709, 3384, 3, 2, 2, 2, 711, 3386, 3, 2, 2, 2, 713, 3389, 3, 2, 2, 2, 715, 3391, 3, 2, 2, 2, 717, 3393, 3, 2, 2, 2, 719, 3395, 3, 2, 2, 2, 721, 3397, 3, 2, 2, 2, 723, 3399, 3, 2, 2, 2, 725, 3401, 3, 2, 2, 2, 727, 3403, 3, 2, 2, 2, 729, 3405, 3, 2, 2, 2, 731, 3407, 3, 2, 2, 2, 733, 3409, 3, 2, 2, 2, 735, 3411, 3, 2, 2, 2, 737, 3413, 3, 2, 2, 2, 739, 3426, 3, 2, 2, 2, 741, 3437, 3, 2, 2, 2, 743, 3460, 3, 2, 2, 2, 745, 3463, 3, 2, 2, 2, 747, 3469, 3, 2, 2, 2, 749, 3487, 3, 2, 2, 2, 751, 3507, 3, 2, 2, 2, 753, 3522, 3, 2, 2, 2, 755, 3577, 3, 2, 2, 2, 757, 3583, 3, 2, 2, 2, 759, 3585, 3, 2, 2, 2, 761, 3587, 3, 2, 2, 2, 763, 3589, 3, 2, 2, 2, 765, 3591, 3, 2, 2, 2, 767, 3593, 3, 2, 2, 2, 769, 3595, 3, 2, 2, 2, 771, 3597, 3, 2, 2, 2, 773, 3599, 3, 2, 2, 2, 775, 3601, 3, 2, 2, 2, 777, 3603, 3, 2, 2, 2, 779, 3605, 3, 2, 2, 2, 781, 3607, 3, 2, 2, 2, 783, 3609, 3, 2, 2, 2, 785, 3611, 3, 2, 2, 2, 787, 3613, 3, 2, 2, 2, 789, 3615, 3, 2, 2, 2, 791, 3617, 3, 2, 2, 2, 793, 3619, 3, 2, 2, 2, 795, 3621, 3, 2, 2, 2, 797, 3623, 3, 2, 2, 2, 799, 3625, 3, 2, 2, 2, 801, 3627, 3, 2, 2, 2, 803, 3629, 3, 2, 2, 2, 805, 3631, 3, 2, 2, 2, 807, 3633, 3, 2, 2, 2, 809, 3635, 3, 2, 2, 2, 811, 3637, 3, 2, 2, 2, 813, 3639, 3, 2, 2, 2, 815, 816, 5, 763, 382, 2, 816, 817, 5, 767, 384, 2, 817, 818, 5, 801, 401, 2, 818, 819, 5, 779, 390, 2, 819, 820, 5, 791, 396, 2, 820, 821, 5, 789, 395, 2, 821, 4, 3, 2, 2, 2, 822, 823, 5, 763, 382, 2, 823, 824, 5, 769, 385, 2, 824, 825, 5, 769, 385, 2, 825, 6, 3, 2, 2, 2, 826, 827, 5, 763, 382, 2, 827, 828, 5, 785, 393, 2, 828, 829, 5, 785, 393, 2, 829, 8, 3, 2, 2, 2, 830, 831, 5, 763, 382, 2, 831, 832, 5, 785, 393, 2, 832, 833, 5, 785, 393, 2, 833, 834, 5, 791, 396, 2, 834, 835, 5, 767, 384, 2, 835, 836, 5, 763, 382, 2, 836, 837, 5, 801, 401, 2, 837, 838, 5, 771, 386, 2, 838, 10, 3, 2, 2, 2, 839, 840, 5, 763, 382, 2, 840, 841, 5, 785, 393, 2, 841, 842, 5, 801, 401, 2, 842, 843, 5, 771, 386, 2, 843, 844, 5, 797, 399, 2, 844, 12, 3, 2, 2, 2, 845, 846, 5, 763, 382, 2, 846, 847, 5, 789, 395, 2, 847, 848, 5, 769, 385, 2, 848, 14, 3, 2, 2, 2, 849, 850, 5, 763, 382, 2, 850, 851, 5, 789, 395, 2, 851, 852, 5, 799, 400, 2, 852, 853, 5, 779, 390, 2, 853, 854, 7, 97, 2, 2, 854, 855, 5, 789, 395, 2, 855, 856, 5, 803, 402, 2, 856, 857, 5, 785, 393, 2, 857, 858, 5, 785, 393, 2, 858, 859, 5, 799, 400, 2, 859, 16, 3, 2, 2, 2, 860, 861, 5, 763, 382, 2, 861, 862, 5, 789, 395, 2, 862, 863, 5, 799, 400, 2, 863, 864, 5, 779, 390, 2, 864, 865, 7, 97, 2, 2, 865, 866, 5, 793, 397, 2, 866, 867, 5, 763, 382, 2, 867, 868, 5, 769, 385, 2, 868, 869, 5, 769, 385, 2, 869, 870, 5, 779, 390, 2, 870, 871, 5, 789, 395, 2, 871, 872, 5, 775, 388, 2, 872, 18, 3, 2, 2, 2, 873, 874, 5, 763, 382, 2, 874, 875, 5, 799, 400, 2, 875, 20, 3, 2, 2, 2, 876, 877, 5, 763, 382, 2, 877, 878, 5, 799, 400, 2, 878, 879, 5, 767, 384, 2, 879, 22, 3, 2, 2, 2, 880, 881, 5, 763, 382, 2, 881, 882, 5, 799, 400, 2, 882, 883, 5, 799, 400, 2, 883, 884, 5, 791, 396, 2, 884, 885, 5, 767, 384, 2, 885, 886, 5, 779, 390, 2, 886, 887, 5, 763, 382, 2, 887, 888, 5, 801, 401, 2, 888, 889, 5, 771, 386, 2, 889, 24, 3, 2, 2, 2, 890, 891, 5, 763, 382, 2, 891, 892, 5, 801, 401, 2, 892, 26, 3, 2, 2, 2, 893, 894, 5, 763, 382, 2, 894, 895, 5, 803, 402, 2, 895, 896, 5, 801, 401, 2, 896, 897, 5, 791, 396, 2, 897, 898, 7, 97, 2, 2, 898, 899, 5, 779, 390, 2, 899, 900, 5, 789, 395, 2, 900, 901, 5, 767, 384, 2, 901, 902, 5, 797, 399, 2, 902, 903, 5, 771, 386, 2, 903, 904, 5, 787, 394, 2, 904, 905, 5, 771, 386, 2, 905, 906, 5, 789, 395, 2, 906, 907, 5, 801, 401, 2, 907, 28, 3, 2, 2, 2, 908, 909, 5, 763, 382, 2, 909, 910, 5, 805, 403, 2, 910, 911, 5, 775, 388, 2, 911, 30, 3, 2, 2, 2, 912, 913, 5, 765, 383, 2, 913, 914, 5, 763, 382, 2, 914, 915, 5, 801, 401, 2, 915, 916, 5, 767, 384, 2, 916, 917, 5, 777, 389, 2, 917, 918, 5, 799, 400, 2, 918, 919, 5, 779, 390, 2, 919, 920, 5, 813, 407, 2, 920, 921, 5, 771, 386, 2, 921, 32, 3, 2, 2, 2, 922, 923, 5, 765, 383, 2, 923, 924, 5, 771, 386, 2, 924, 925, 5, 775, 388, 2, 925, 926, 5, 779, 390, 2, 926, 927, 5, 789, 395, 2, 927, 34, 3, 2, 2, 2, 928, 929, 5, 765, 383, 2, 929, 930, 5, 771, 386, 2, 930, 931, 5, 801, 401, 2, 931, 932, 5, 807, 404, 2, 932, 933, 5, 771, 386, 2, 933, 934, 5, 771, 386, 2, 934, 935, 5, 789, 395, 2, 935, 36, 3, 2, 2, 2, 936, 937, 5, 765, 383, 2, 937, 938, 5, 779, 390, 2, 938, 939, 5, 775, 388, 2, 939, 940, 5, 779, 390, 2, 940, 941, 5, 789, 395, 2, 941, 942, 5, 801, 401, 2, 942, 38, 3, 2, 2, 2, 943, 944, 5, 765, 383, 2, 944, 945, 5, 779, 390, 2, 945, 946, 5, 789, 395, 2, 946, 947, 5, 763, 382, 2, 947, 948, 5, 797, 399, 2, 948, 949, 5, 811, 406, 2, 949, 950, 7, 97, 2, 2, 950, 951, 5, 769, 385, 2, 951, 952, 5, 791, 396, 2, 952, 953, 5, 803, 402, 2, 953, 954, 5, 765, 383, 2, 954, 955, 5, 785, 393, 2, 955, 956, 5, 771, 386, 2, 956, 40, 3, 2, 2, 2, 957, 958, 5, 765, 383, 2, 958, 959, 5, 779, 390, 2, 959, 960, 5, 789, 395, 2, 960, 961, 5, 763, 382, 2, 961, 962, 5, 797, 399, 2, 962, 963, 5, 811, 406, 2, 963, 964, 7, 97, 2, 2, 964, 965, 5, 773, 387, 2, 965, 966, 5, 785, 393, 2, 966, 967, 5, 791, 396, 2, 967, 968, 5, 763, 382, 2, 968, 969, 5, 801, 401, 2, 969, 42, 3, 2, 2, 2, 970, 971, 5, 765, 383, 2, 971, 972, 5, 779, 390, 2, 972, 973, 5, 789, 395, 2, 973, 974, 5, 763, 382, 2, 974, 975, 5, 797, 399, 2, 975, 976, 5, 811, 406, 2, 976, 977, 7, 97, 2, 2, 977, 978, 5, 779, 390, 2, 978, 979, 5, 789, 395, 2, 979, 980, 5, 801, 401, 2, 980, 981, 5, 771, 386, 2, 981, 982, 5, 775, 388, 2, 982, 983, 5, 771, 386, 2, 983, 984, 5, 797, 399, 2, 984, 44, 3, 2, 2, 2, 985, 986, 5, 765, 383, 2, 986, 987, 5, 779, 390, 2, 987, 988, 5, 801, 401, 2, 988, 46, 3, 2, 2, 2, 989, 990, 5, 765, 383, 2, 990, 991, 5, 791, 396, 2, 991, 992, 5, 769, 385, 2, 992, 993, 5, 811, 406, 2, 993, 48, 3, 2, 2, 2, 994, 995, 5, 765, 383, 2, 995, 996, 5, 797, 399, 2, 996, 997, 5, 771, 386, 2, 997, 998, 5, 763, 382, 2, 998, 999, 5, 783, 392, 2, 999, 50, 3, 2, 2, 2, 1000, 1001, 5, 765, 383, 2, 1001, 1002, 5, 811, 406, 2, 1002, 52, 3, 2, 2, 2, 1003, 1004, 5, 765, 383, 2, 1004, 1005, 5, 811, 406, 2, 1005, 1006, 5, 801, 401, 2, 1006, 1007, 5, 771, 386, 2, 1007, 54, 3, 2, 2, 2, 1008, 1009, 5, 767, 384, 2, 1009, 1010, 5, 763, 382, 2, 1010, 1011, 5, 785, 393, 2, 1011, 1012, 5, 785, 393, 2, 1012, 56, 3, 2, 2, 2, 1013, 1014, 5, 767, 384, 2, 1014, 1015, 5, 763, 382, 2, 1015, 1016, 5, 785, 393, 2, 1016, 1017, 5, 785, 393, 2, 1017, 1018, 5, 771, 386, 2, 1018, 1019, 5, 797, 399, 2, 1019, 58, 3, 2, 2, 2, 1020, 1021, 5, 767, 384, 2, 1021, 1022, 5, 763, 382, 2, 1022, 1023, 5, 799, 400, 2, 1023, 1024, 5, 767, 384, 2, 1024, 1025, 5, 763, 382, 2, 1025, 1026, 5, 769, 385, 2, 1026, 1027, 5, 771, 386, 2, 1027, 60, 3, 2, 2, 2, 1028, 1029, 5, 767, 384, 2, 1029, 1030, 5, 763, 382, 2, 1030, 1031, 5, 799, 400, 2, 1031, 1032, 5, 771, 386, 2, 1032, 62, 3, 2, 2, 2, 1033, 1034, 5, 767, 384, 2, 1034, 1035, 5, 763, 382, 2, 1035, 1036, 5, 799, 400, 2, 1036, 1037, 5, 771, 386, 2, 1037, 1038, 5, 799, 400, 2, 1038, 1039, 5, 793, 397, 2, 1039, 1040, 5, 771, 386, 2, 1040, 1041, 5, 767, 384, 2, 1041, 1042, 5, 779, 390, 2, 1042, 1043, 5, 773, 387, 2, 1043, 1044, 5, 779, 390, 2, 1044, 1045, 5, 767, 384, 2, 1045, 64, 3, 2, 2, 2, 1046, 1047, 5, 767, 384, 2, 1047, 1048, 5, 763, 382, 2, 1048, 1049, 5, 799, 400, 2, 1049, 1050, 5, 801, 401, 2, 1050, 66, 3, 2, 2, 2, 1051, 1052, 5, 767, 384, 2, 1052, 1053, 5, 777, 389, 2, 1053, 1054, 5, 763, 382, 2, 1054, 1055, 5, 797, 399, 2, 1055, 68, 3, 2, 2, 2, 1056, 1057, 5, 767, 384, 2, 1057, 1058, 5, 777, 389, 2, 1058, 1059, 5, 763, 382, 2, 1059, 1060, 5, 797, 399, 2, 1060, 1061, 5, 763, 382, 2, 1061, 1062, 5, 767, 384, 2, 1062, 1063, 5, 801, 401, 2, 1063, 1064, 5, 771, 386, 2, 1064, 1065, 5, 797, 399, 2, 1065, 70, 3, 2, 2, 2, 1066, 1067, 5, 767, 384, 2, 1067, 1068, 5, 777, 389, 2, 1068, 1069, 5, 763, 382, 2, 1069, 1070, 5, 797, 399, 2, 1070, 1071, 5, 799, 400, 2, 1071, 1072, 5, 771, 386, 2, 1072, 1073, 5, 801, 401, 2, 1073, 72, 3, 2, 2, 2, 1074, 1075, 5, 767, 384, 2, 1075, 1076, 5, 785, 393, 2, 1076, 1077, 5, 779, 390, 2, 1077, 1078, 5, 771, 386, 2, 1078, 1079, 5, 789, 395, 2, 1079, 1080, 5, 801, 401, 2, 1080, 74, 3, 2, 2, 2, 1081, 1082, 5, 767, 384, 2, 1082, 1083, 5, 785, 393, 2, 1083, 1084, 5, 791, 396, 2, 1084, 1085, 5, 799, 400, 2, 1085, 1086, 5, 771, 386, 2, 1086, 76, 3, 2, 2, 2, 1087, 1088, 5, 767, 384, 2, 1088, 1089, 5, 785, 393, 2, 1089, 1090, 5, 803, 402, 2, 1090, 1091, 5, 799, 400, 2, 1091, 1092, 5, 801, 401, 2, 1092, 1093, 5, 771, 386, 2, 1093, 1094, 5, 797, 399, 2, 1094, 1095, 5, 771, 386, 2, 1095, 1096, 5, 769, 385, 2, 1096, 78, 3, 2, 2, 2, 1097, 1098, 5, 767, 384, 2, 1098, 1099, 5, 787, 394, 2, 1099, 1100, 5, 793, 397, 2, 1100, 80, 3, 2, 2, 2, 1101, 1102, 5, 767, 384, 2, 1102, 1103, 5, 791, 396, 2, 1103, 1104, 5, 785, 393, 2, 1104, 1105, 5, 785, 393, 2, 1105, 1106, 5, 771, 386, 2, 1106, 1107, 5, 767, 384, 2, 1107, 1108, 5, 801, 401, 2, 1108, 82, 3, 2, 2, 2, 1109, 1110, 5, 767, 384, 2, 1110, 1111, 5, 791, 396, 2, 1111, 1112, 5, 785, 393, 2, 1112, 1113, 5, 785, 393, 2, 1113, 1114, 5, 771, 386, 2, 1114, 1115, 5, 767, 384, 2, 1115, 1116, 5, 801, 401, 2, 1116, 1117, 5, 779, 390, 2, 1117, 1118, 5, 791, 396, 2, 1118, 1119, 5, 789, 395, 2, 1119, 84, 3, 2, 2, 2, 1120, 1121, 5, 767, 384, 2, 1121, 1122, 5, 791, 396, 2, 1122, 1123, 5, 785, 393, 2, 1123, 1124, 5, 803, 402, 2, 1124, 1125, 5, 787, 394, 2, 1125, 1126, 5, 789, 395, 2, 1126, 86, 3, 2, 2, 2, 1127, 1128, 5, 767, 384, 2, 1128, 1129, 5, 791, 396, 2, 1129, 1130, 5, 787, 394, 2, 1130, 1131, 5, 787, 394, 2, 1131, 1132, 5, 771, 386, 2, 1132, 1133, 5, 789, 395, 2, 1133, 1134, 5, 801, 401, 2, 1134, 88, 3, 2, 2, 2, 1135, 1136, 5, 767, 384, 2, 1136, 1137, 5, 791, 396, 2, 1137, 1138, 5, 789, 395, 2, 1138, 1139, 5, 799, 400, 2, 1139, 1140, 5, 801, 401, 2, 1140, 1141, 5, 763, 382, 2, 1141, 1142, 5, 789, 395, 2, 1142, 1143, 5, 801, 401, 2, 1143, 90, 3, 2, 2, 2, 1144, 1145, 5, 767, 384, 2, 1145, 1146, 5, 791, 396, 2, 1146, 1147, 5, 787, 394, 2, 1147, 1148, 5, 787, 394, 2, 1148, 1149, 5, 779, 390, 2, 1149, 1150, 5, 801, 401, 2, 1150, 92, 3, 2, 2, 2, 1151, 1152, 5, 767, 384, 2, 1152, 1153, 5, 791, 396, 2, 1153, 1154, 5, 787, 394, 2, 1154, 1155, 5, 793, 397, 2, 1155, 1156, 5, 797, 399, 2, 1156, 1157, 5, 771, 386, 2, 1157, 1158, 5, 799, 400, 2, 1158, 1159, 5, 799, 400, 2, 1159, 94, 3, 2, 2, 2, 1160, 1161, 5, 767, 384, 2, 1161, 1162, 5, 791, 396, 2, 1162, 1163, 5, 789, 395, 2, 1163, 1164, 5, 767, 384, 2, 1164, 1165, 5, 763, 382, 2, 1165, 1166, 5, 801, 401, 2, 1166, 96, 3, 2, 2, 2, 1167, 1168, 5, 767, 384, 2, 1168, 1169, 5, 791, 396, 2, 1169, 1170, 5, 789, 395, 2, 1170, 1171, 5, 769, 385, 2, 1171, 1172, 5, 779, 390, 2, 1172, 1173, 5, 801, 401, 2, 1173, 1174, 5, 779, 390, 2, 1174, 1175, 5, 791, 396, 2, 1175, 1176, 5, 789, 395, 2, 1176, 98, 3, 2, 2, 2, 1177, 1178, 5, 767, 384, 2, 1178, 1179, 5, 791, 396, 2, 1179, 1180, 5, 789, 395, 2, 1180, 1181, 5, 799, 400, 2, 1181, 1182, 5, 801, 401, 2, 1182, 1183, 5, 797, 399, 2, 1183, 1184, 5, 763, 382, 2, 1184, 1185, 5, 779, 390, 2, 1185, 1186, 5, 789, 395, 2, 1186, 1187, 5, 801, 401, 2, 1187, 100, 3, 2, 2, 2, 1188, 1189, 5, 767, 384, 2, 1189, 1190, 5, 791, 396, 2, 1190, 1191, 5, 789, 395, 2, 1191, 1192, 5, 801, 401, 2, 1192, 1193, 5, 779, 390, 2, 1193, 1194, 5, 789, 395, 2, 1194, 1195, 5, 803, 402, 2, 1195, 1196, 5, 771, 386, 2, 1196, 102, 3, 2, 2, 2, 1197, 1198, 5, 767, 384, 2, 1198, 1199, 5, 791, 396, 2, 1199, 1200, 5, 793, 397, 2, 1200, 1201, 5, 811, 406, 2, 1201, 104, 3, 2, 2, 2, 1202, 1203, 5, 767, 384, 2, 1203, 1204, 5, 791, 396, 2, 1204, 1205, 5, 803, 402, 2, 1205, 1206, 5, 789, 395, 2, 1206, 1207, 5, 801, 401, 2, 1207, 106, 3, 2, 2, 2, 1208, 1209, 5, 767, 384, 2, 1209, 1210, 5, 791, 396, 2, 1210, 1211, 5, 803, 402, 2, 1211, 1212, 5, 789, 395, 2, 1212, 1213, 5, 801, 401, 2, 1213, 1214, 7, 97, 2, 2, 1214, 1215, 5, 765, 383, 2, 1215, 1216, 5, 779, 390, 2, 1216, 1217, 5, 775, 388, 2, 1217, 108, 3, 2, 2, 2, 1218, 1219, 5, 767, 384, 2, 1219, 1220, 5, 797, 399, 2, 1220, 1221, 5, 771, 386, 2, 1221, 1222, 5, 763, 382, 2, 1222, 1223, 5, 801, 401, 2, 1223, 1224, 5, 771, 386, 2, 1224, 110, 3, 2, 2, 2, 1225, 1226, 5, 767, 384, 2, 1226, 1227, 5, 797, 399, 2, 1227, 1228, 5, 771, 386, 2, 1228, 1229, 5, 763, 382, 2, 1229, 1230, 5, 801, 401, 2, 1230, 1231, 5, 779, 390, 2, 1231, 1232, 5, 791, 396, 2, 1232, 1233, 5, 789, 395, 2, 1233, 112, 3, 2, 2, 2, 1234, 1235, 5, 767, 384, 2, 1235, 1236, 5, 797, 399, 2, 1236, 1237, 5, 771, 386, 2, 1237, 1238, 5, 763, 382, 2, 1238, 1239, 5, 801, 401, 2, 1239, 1240, 5, 791, 396, 2, 1240, 1241, 5, 797, 399, 2, 1241, 114, 3, 2, 2, 2, 1242, 1243, 5, 767, 384, 2, 1243, 1244, 5, 799, 400, 2, 1244, 116, 3, 2, 2, 2, 1245, 1246, 5, 767, 384, 2, 1246, 1247, 5, 803, 402, 2, 1247, 1248, 5, 797, 399, 2, 1248, 1249, 5, 797, 399, 2, 1249, 1250, 5, 771, 386, 2, 1250, 1251, 5, 789, 395, 2, 1251, 1252, 5, 801, 401, 2, 1252, 118, 3, 2, 2, 2, 1253, 1254, 5, 767, 384, 2, 1254, 1255, 5, 803, 402, 2, 1255, 1256, 5, 797, 399, 2, 1256, 1257, 5, 797, 399, 2, 1257, 1258, 5, 771, 386, 2, 1258, 1259, 5, 789, 395, 2, 1259, 1260, 5, 801, 401, 2, 1260, 1261, 7, 97, 2, 2, 1261, 1262, 5, 799, 400, 2, 1262, 1263, 5, 767, 384, 2, 1263, 1264, 5, 777, 389, 2, 1264, 1265, 5, 771, 386, 2, 1265, 1266, 5, 787, 394, 2, 1266, 1267, 5, 763, 382, 2, 1267, 120, 3, 2, 2, 2, 1268, 1269, 5, 767, 384, 2, 1269, 1270, 5, 803, 402, 2, 1270, 1271, 5, 797, 399, 2, 1271, 1272, 5, 799, 400, 2, 1272, 1273, 5, 791, 396, 2, 1273, 1274, 5, 797, 399, 2, 1274, 122, 3, 2, 2, 2, 1275, 1276, 5, 769, 385, 2, 1276, 1277, 5, 763, 382, 2, 1277, 1278, 5, 801, 401, 2, 1278, 1279, 5, 763, 382, 2, 1279, 1280, 5, 765, 383, 2, 1280, 1281, 5, 763, 382, 2, 1281, 1282, 5, 799, 400, 2, 1282, 1283, 5, 771, 386, 2, 1283, 124, 3, 2, 2, 2, 1284, 1285, 5, 769, 385, 2, 1285, 1286, 5, 763, 382, 2, 1286, 1287, 5, 801, 401, 2, 1287, 1288, 5, 763, 382, 2, 1288, 126, 3, 2, 2, 2, 1289, 1290, 5, 769, 385, 2, 1290, 1291, 5, 763, 382, 2, 1291, 1292, 5, 801, 401, 2, 1292, 1293, 5, 771, 386, 2, 1293, 128, 3, 2, 2, 2, 1294, 1295, 5, 769, 385, 2, 1295, 1296, 5, 763, 382, 2, 1296, 1297, 5, 801, 401, 2, 1297, 1298, 5, 771, 386, 2, 1298, 1299, 5, 801, 401, 2, 1299, 1300, 5, 779, 390, 2, 1300, 1301, 5, 787, 394, 2, 1301, 1302, 5, 771, 386, 2, 1302, 130, 3, 2, 2, 2, 1303, 1304, 5, 769, 385, 2, 1304, 1305, 5, 763, 382, 2, 1305, 1306, 5, 811, 406, 2, 1306, 132, 3, 2, 2, 2, 1307, 1308, 5, 769, 385, 2, 1308, 1309, 5, 763, 382, 2, 1309, 1310, 5, 811, 406, 2, 1310, 1311, 5, 799, 400, 2, 1311, 134, 3, 2, 2, 2, 1312, 1313, 5, 769, 385, 2, 1313, 1314, 5, 771, 386, 2, 1314, 1315, 5, 767, 384, 2, 1315, 136, 3, 2, 2, 2, 1316, 1317, 5, 769, 385, 2, 1317, 1318, 5, 771, 386, 2, 1318, 1319, 5, 767, 384, 2, 1319, 1320, 5, 779, 390, 2, 1320, 1321, 5, 787, 394, 2, 1321, 1322, 5, 763, 382, 2, 1322, 1323, 5, 785, 393, 2, 1323, 138, 3, 2, 2, 2, 1324, 1325, 5, 769, 385, 2, 1325, 1326, 5, 771, 386, 2, 1326, 1327, 5, 767, 384, 2, 1327, 1328, 5, 785, 393, 2, 1328, 1329, 5, 763, 382, 2, 1329, 1330, 5, 797, 399, 2, 1330, 1331, 5, 771, 386, 2, 1331, 140, 3, 2, 2, 2, 1332, 1333, 5, 769, 385, 2, 1333, 1334, 5, 771, 386, 2, 1334, 1335, 5, 773, 387, 2, 1335, 1336, 5, 763, 382, 2, 1336, 1337, 5, 803, 402, 2, 1337, 1338, 5, 785, 393, 2, 1338, 1339, 5, 801, 401, 2, 1339, 142, 3, 2, 2, 2, 1340, 1341, 5, 769, 385, 2, 1341, 1342, 5, 771, 386, 2, 1342, 1343, 5, 773, 387, 2, 1343, 1344, 5, 771, 386, 2, 1344, 1345, 5, 797, 399, 2, 1345, 1346, 5, 797, 399, 2, 1346, 1347, 5, 771, 386, 2, 1347, 1348, 5, 769, 385, 2, 1348, 144, 3, 2, 2, 2, 1349, 1350, 5, 769, 385, 2, 1350, 1351, 5, 771, 386, 2, 1351, 1352, 5, 773, 387, 2, 1352, 1353, 5, 779, 390, 2, 1353, 1354, 5, 789, 395, 2, 1354, 1355, 5, 771, 386, 2, 1355, 1356, 5, 769, 385, 2, 1356, 146, 3, 2, 2, 2, 1357, 1358, 5, 769, 385, 2, 1358, 1359, 5, 771, 386, 2, 1359, 1360, 5, 773, 387, 2, 1360, 1361, 5, 779, 390, 2, 1361, 1362, 5, 789, 395, 2, 1362, 1363, 5, 771, 386, 2, 1363, 1364, 5, 797, 399, 2, 1364, 148, 3, 2, 2, 2, 1365, 1366, 5, 769, 385, 2, 1366, 1367, 5, 771, 386, 2, 1367, 1368, 5, 773, 387, 2, 1368, 1369, 5, 779, 390, 2, 1369, 1370, 5, 789, 395, 2, 1370, 1371, 5, 779, 390, 2, 1371, 1372, 5, 801, 401, 2, 1372, 1373, 5, 779, 390, 2, 1373, 1374, 5, 791, 396, 2, 1374, 1375, 5, 789, 395, 2, 1375, 150, 3, 2, 2, 2, 1376, 1377, 5, 769, 385, 2, 1377, 1378, 5, 771, 386, 2, 1378, 1379, 5, 785, 393, 2, 1379, 1380, 5, 771, 386, 2, 1380, 1381, 5, 801, 401, 2, 1381, 1382, 5, 771, 386, 2, 1382, 152, 3, 2, 2, 2, 1383, 1384, 5, 769, 385, 2, 1384, 1385, 5, 771, 386, 2, 1385, 1386, 5, 785, 393, 2, 1386, 1387, 5, 779, 390, 2, 1387, 1388, 5, 787, 394, 2, 1388, 1389, 5, 779, 390, 2, 1389, 1390, 5, 801, 401, 2, 1390, 1391, 5, 771, 386, 2, 1391, 1392, 5, 769, 385, 2, 1392, 154, 3, 2, 2, 2, 1393, 1394, 5, 769, 385, 2, 1394, 1395, 5, 771, 386, 2, 1395, 1396, 5, 785, 393, 2, 1396, 1397, 5, 779, 390, 2, 1397, 1398, 5, 787, 394, 2, 1398, 1399, 5, 779, 390, 2, 1399, 1400, 5, 801, 401, 2, 1400, 1401, 5, 771, 386, 2, 1401, 1402, 5, 797, 399, 2, 1402, 156, 3, 2, 2, 2, 1403, 1404, 5, 769, 385, 2, 1404, 1405, 5, 771, 386, 2, 1405, 1406, 5, 799, 400, 2, 1406, 1407, 5, 767, 384, 2, 1407, 158, 3, 2, 2, 2, 1408, 1409, 5, 769, 385, 2, 1409, 1410, 5, 771, 386, 2, 1410, 1411, 5, 799, 400, 2, 1411, 1412, 5, 767, 384, 2, 1412, 1413, 5, 797, 399, 2, 1413, 1414, 5, 779, 390, 2, 1414, 1415, 5, 765, 383, 2, 1415, 1416, 5, 771, 386, 2, 1416, 160, 3, 2, 2, 2, 1417, 1418, 5, 769, 385, 2, 1418, 1419, 5, 779, 390, 2, 1419, 1420, 5, 763, 382, 2, 1420, 1421, 5, 775, 388, 2, 1421, 1422, 5, 789, 395, 2, 1422, 1423, 5, 791, 396, 2, 1423, 1424, 5, 799, 400, 2, 1424, 1425, 5, 801, 401, 2, 1425, 1426, 5, 779, 390, 2, 1426, 1427, 5, 767, 384, 2, 1427, 1428, 5, 799, 400, 2, 1428, 162, 3, 2, 2, 2, 1429, 1430, 5, 769, 385, 2, 1430, 1431, 5, 779, 390, 2, 1431, 1432, 5, 797, 399, 2, 1432, 164, 3, 2, 2, 2, 1433, 1434, 5, 769, 385, 2, 1434, 1435, 5, 779, 390, 2, 1435, 1436, 5, 797, 399, 2, 1436, 1437, 5, 771, 386, 2, 1437, 1438, 5, 767, 384, 2, 1438, 1439, 5, 801, 401, 2, 1439, 1440, 5, 791, 396, 2, 1440, 1441, 5, 797, 399, 2, 1441, 1442, 5, 811, 406, 2, 1442, 166, 3, 2, 2, 2, 1443, 1444, 5, 769, 385, 2, 1444, 1445, 5, 779, 390, 2, 1445, 1446, 5, 799, 400, 2, 1446, 1447, 5, 801, 401, 2, 1447, 1448, 5, 779, 390, 2, 1448, 1449, 5, 789, 395, 2, 1449, 1450, 5, 767, 384, 2, 1450, 1451, 5, 801, 401, 2, 1451, 168, 3, 2, 2, 2, 1452, 1453, 5, 769, 385, 2, 1453, 1454, 5, 779, 390, 2, 1454, 1455, 5, 799, 400, 2, 1455, 1456, 5, 801, 401, 2, 1456, 1457, 5, 797, 399, 2, 1457, 1458, 5, 779, 390, 2, 1458, 1459, 5, 765, 383, 2, 1459, 1460, 5, 803, 402, 2, 1460, 1461, 5, 801, 401, 2, 1461, 1462, 5, 771, 386, 2, 1462, 170, 3, 2, 2, 2, 1463, 1464, 5, 769, 385, 2, 1464, 1465, 5, 791, 396, 2, 1465, 172, 3, 2, 2, 2, 1466, 1467, 5, 769, 385, 2, 1467, 1468, 5, 791, 396, 2, 1468, 1469, 5, 803, 402, 2, 1469, 1470, 5, 765, 383, 2, 1470, 1471, 5, 785, 393, 2, 1471, 1472, 5, 771, 386, 2, 1472, 174, 3, 2, 2, 2, 1473, 1474, 5, 769, 385, 2, 1474, 1475, 5, 797, 399, 2, 1475, 1476, 5, 791, 396, 2, 1476, 1477, 5, 793, 397, 2, 1477, 176, 3, 2, 2, 2, 1478, 1479, 5, 769, 385, 2, 1479, 1480, 5, 811, 406, 2, 1480, 1481, 5, 789, 395, 2, 1481, 1482, 5, 763, 382, 2, 1482, 1483, 5, 787, 394, 2, 1483, 1484, 5, 779, 390, 2, 1484, 1485, 5, 767, 384, 2, 1485, 178, 3, 2, 2, 2, 1486, 1487, 5, 771, 386, 2, 1487, 1488, 5, 785, 393, 2, 1488, 1489, 5, 799, 400, 2, 1489, 1490, 5, 771, 386, 2, 1490, 180, 3, 2, 2, 2, 1491, 1492, 5, 771, 386, 2, 1492, 1493, 5, 785, 393, 2, 1493, 1494, 5, 799, 400, 2, 1494, 1495, 5, 771, 386, 2, 1495, 1496, 5, 779, 390, 2, 1496, 1497, 5, 773, 387, 2, 1497, 182, 3, 2, 2, 2, 1498, 1499, 5, 771, 386, 2, 1499, 1500, 5, 785, 393, 2, 1500, 1501, 5, 799, 400, 2, 1501, 1502, 5, 779, 390, 2, 1502, 1503, 5, 773, 387, 2, 1503, 184, 3, 2, 2, 2, 1504, 1505, 5, 771, 386, 2, 1505, 1506, 5, 789, 395, 2, 1506, 1507, 5, 763, 382, 2, 1507, 1508, 5, 765, 383, 2, 1508, 1509, 5, 785, 393, 2, 1509, 1510, 5, 771, 386, 2, 1510, 186, 3, 2, 2, 2, 1511, 1512, 5, 771, 386, 2, 1512, 1513, 5, 789, 395, 2, 1513, 1514, 5, 769, 385, 2, 1514, 188, 3, 2, 2, 2, 1515, 1516, 5, 771, 386, 2, 1516, 1517, 5, 789, 395, 2, 1517, 1518, 5, 775, 388, 2, 1518, 1519, 5, 779, 390, 2, 1519, 1520, 5, 789, 395, 2, 1520, 1521, 5, 771, 386, 2, 1521, 190, 3, 2, 2, 2, 1522, 1523, 5, 771, 386, 2, 1523, 1524, 5, 799, 400, 2, 1524, 1525, 5, 767, 384, 2, 1525, 1526, 5, 763, 382, 2, 1526, 1527, 5, 793, 397, 2, 1527, 1528, 5, 771, 386, 2, 1528, 1529, 5, 769, 385, 2, 1529, 192, 3, 2, 2, 2, 1530, 1531, 5, 771, 386, 2, 1531, 1532, 5, 809, 405, 2, 1532, 1533, 5, 767, 384, 2, 1533, 1534, 5, 771, 386, 2, 1534, 1535, 5, 793, 397, 2, 1535, 1536, 5, 801, 401, 2, 1536, 194, 3, 2, 2, 2, 1537, 1538, 5, 771, 386, 2, 1538, 1539, 5, 809, 405, 2, 1539, 1540, 5, 771, 386, 2, 1540, 1541, 5, 767, 384, 2, 1541, 196, 3, 2, 2, 2, 1542, 1543, 5, 771, 386, 2, 1543, 1544, 5, 809, 405, 2, 1544, 1545, 5, 771, 386, 2, 1545, 1546, 5, 767, 384, 2, 1546, 1547, 5, 803, 402, 2, 1547, 1548, 5, 801, 401, 2, 1548, 1549, 5, 771, 386, 2, 1549, 198, 3, 2, 2, 2, 1550, 1551, 5, 771, 386, 2, 1551, 1552, 5, 809, 405, 2, 1552, 1553, 5, 767, 384, 2, 1553, 1554, 5, 771, 386, 2, 1554, 1555, 5, 793, 397, 2, 1555, 1556, 5, 801, 401, 2, 1556, 1557, 5, 779, 390, 2, 1557, 1558, 5, 791, 396, 2, 1558, 1559, 5, 789, 395, 2, 1559, 200, 3, 2, 2, 2, 1560, 1561, 5, 771, 386, 2, 1561, 1562, 5, 809, 405, 2, 1562, 1563, 5, 767, 384, 2, 1563, 1564, 5, 785, 393, 2, 1564, 1565, 5, 803, 402, 2, 1565, 1566, 5, 799, 400, 2, 1566, 1567, 5, 779, 390, 2, 1567, 1568, 5, 805, 403, 2, 1568, 1569, 5, 771, 386, 2, 1569, 202, 3, 2, 2, 2, 1570, 1571, 5, 771, 386, 2, 1571, 1572, 5, 809, 405, 2, 1572, 1573, 5, 779, 390, 2, 1573, 1574, 5, 799, 400, 2, 1574, 1575, 5, 801, 401, 2, 1575, 1576, 5, 799, 400, 2, 1576, 204, 3, 2, 2, 2, 1577, 1578, 5, 771, 386, 2, 1578, 1579, 5, 809, 405, 2, 1579, 1580, 5, 779, 390, 2, 1580, 1581, 5, 801, 401, 2, 1581, 206, 3, 2, 2, 2, 1582, 1583, 5, 773, 387, 2, 1583, 1584, 5, 763, 382, 2, 1584, 1585, 5, 785, 393, 2, 1585, 1586, 5, 785, 393, 2, 1586, 1587, 5, 765, 383, 2, 1587, 1588, 5, 763, 382, 2, 1588, 1589, 5, 767, 384, 2, 1589, 1590, 5, 783, 392, 2, 1590, 208, 3, 2, 2, 2, 1591, 1592, 5, 773, 387, 2, 1592, 1593, 5, 763, 382, 2, 1593, 1594, 5, 785, 393, 2, 1594, 1595, 5, 799, 400, 2, 1595, 1596, 5, 771, 386, 2, 1596, 210, 3, 2, 2, 2, 1597, 1598, 5, 773, 387, 2, 1598, 1599, 5, 771, 386, 2, 1599, 1600, 5, 801, 401, 2, 1600, 1601, 5, 767, 384, 2, 1601, 1602, 5, 777, 389, 2, 1602, 212, 3, 2, 2, 2, 1603, 1604, 5, 773, 387, 2, 1604, 1605, 5, 779, 390, 2, 1605, 1606, 5, 771, 386, 2, 1606, 1607, 5, 785, 393, 2, 1607, 1608, 5, 769, 385, 2, 1608, 1609, 5, 799, 400, 2, 1609, 214, 3, 2, 2, 2, 1610, 1611, 5, 773, 387, 2, 1611, 1612, 5, 779, 390, 2, 1612, 1613, 5, 785, 393, 2, 1613, 1614, 5, 771, 386, 2, 1614, 216, 3, 2, 2, 2, 1615, 1616, 5, 773, 387, 2, 1616, 1617, 5, 779, 390, 2, 1617, 1618, 5, 785, 393, 2, 1618, 1619, 5, 771, 386, 2, 1619, 1620, 5, 799, 400, 2, 1620, 218, 3, 2, 2, 2, 1621, 1622, 5, 773, 387, 2, 1622, 1623, 5, 785, 393, 2, 1623, 1624, 5, 791, 396, 2, 1624, 1625, 5, 763, 382, 2, 1625, 1626, 5, 801, 401, 2, 1626, 220, 3, 2, 2, 2, 1627, 1628, 5, 773, 387, 2, 1628, 1629, 5, 791, 396, 2, 1629, 1630, 5, 797, 399, 2, 1630, 222, 3, 2, 2, 2, 1631, 1632, 5, 773, 387, 2, 1632, 1633, 5, 791, 396, 2, 1633, 1634, 5, 797, 399, 2, 1634, 1635, 5, 771, 386, 2, 1635, 1636, 5, 779, 390, 2, 1636, 1637, 5, 775, 388, 2, 1637, 1638, 5, 789, 395, 2, 1638, 224, 3, 2, 2, 2, 1639, 1640, 5, 773, 387, 2, 1640, 1641, 5, 791, 396, 2, 1641, 1642, 5, 797, 399, 2, 1642, 1643, 5, 787, 394, 2, 1643, 1644, 5, 763, 382, 2, 1644, 1645, 5, 801, 401, 2, 1645, 226, 3, 2, 2, 2, 1646, 1647, 5, 773, 387, 2, 1647, 1648, 5, 791, 396, 2, 1648, 1649, 5, 803, 402, 2, 1649, 1650, 5, 789, 395, 2, 1650, 1651, 5, 769, 385, 2, 1651, 228, 3, 2, 2, 2, 1652, 1653, 5, 773, 387, 2, 1653, 1654, 5, 797, 399, 2, 1654, 1655, 5, 791, 396, 2, 1655, 1656, 5, 787, 394, 2, 1656, 230, 3, 2, 2, 2, 1657, 1658, 5, 773, 387, 2, 1658, 1659, 5, 803, 402, 2, 1659, 1660, 5, 785, 393, 2, 1660, 1661, 5, 785, 393, 2, 1661, 232, 3, 2, 2, 2, 1662, 1663, 5, 773, 387, 2, 1663, 1664, 5, 803, 402, 2, 1664, 1665, 5, 789, 395, 2, 1665, 1666, 5, 767, 384, 2, 1666, 1667, 5, 801, 401, 2, 1667, 1668, 5, 779, 390, 2, 1668, 1669, 5, 791, 396, 2, 1669, 1670, 5, 789, 395, 2, 1670, 234, 3, 2, 2, 2, 1671, 1672, 5, 775, 388, 2, 1672, 1673, 5, 771, 386, 2, 1673, 1674, 5, 801, 401, 2, 1674, 236, 3, 2, 2, 2, 1675, 1676, 5, 775, 388, 2, 1676, 1677, 5, 785, 393, 2, 1677, 1678, 5, 791, 396, 2, 1678, 1679, 5, 765, 383, 2, 1679, 1680, 5, 763, 382, 2, 1680, 1681, 5, 785, 393, 2, 1681, 238, 3, 2, 2, 2, 1682, 1683, 5, 775, 388, 2, 1683, 1684, 5, 791, 396, 2, 1684, 240, 3, 2, 2, 2, 1685, 1686, 5, 775, 388, 2, 1686, 1687, 5, 797, 399, 2, 1687, 1688, 5, 763, 382, 2, 1688, 1689, 5, 789, 395, 2, 1689, 1690, 5, 801, 401, 2, 1690, 242, 3, 2, 2, 2, 1691, 1692, 5, 775, 388, 2, 1692, 1693, 5, 797, 399, 2, 1693, 1694, 5, 791, 396, 2, 1694, 1695, 5, 803, 402, 2, 1695, 1696, 5, 793, 397, 2, 1696, 244, 3, 2, 2, 2, 1697, 1698, 5, 777, 389, 2, 1698, 1699, 5, 763, 382, 2, 1699, 1700, 5, 789, 395, 2, 1700, 1701, 5, 769, 385, 2, 1701, 1702, 5, 785, 393, 2, 1702, 1703, 5, 771, 386, 2, 1703, 1704, 5, 797, 399, 2, 1704, 246, 3, 2, 2, 2, 1705, 1706, 5, 777, 389, 2, 1706, 1707, 5, 763, 382, 2, 1707, 1708, 5, 799, 400, 2, 1708, 1709, 5, 777, 389, 2, 1709, 248, 3, 2, 2, 2, 1710, 1711, 5, 777, 389, 2, 1711, 1712, 5, 763, 382, 2, 1712, 1713, 5, 805, 403, 2, 1713, 1714, 5, 779, 390, 2, 1714, 1715, 5, 789, 395, 2, 1715, 1716, 5, 775, 388, 2, 1716, 250, 3, 2, 2, 2, 1717, 1718, 5, 777, 389, 2, 1718, 1719, 5, 769, 385, 2, 1719, 1720, 5, 773, 387, 2, 1720, 1721, 5, 799, 400, 2, 1721, 252, 3, 2, 2, 2, 1722, 1723, 5, 777, 389, 2, 1723, 1724, 5, 779, 390, 2, 1724, 1725, 5, 805, 403, 2, 1725, 1726, 5, 771, 386, 2, 1726, 254, 3, 2, 2, 2, 1727, 1728, 5, 777, 389, 2, 1728, 1729, 5, 791, 396, 2, 1729, 1730, 5, 799, 400, 2, 1730, 1731, 5, 801, 401, 2, 1731, 256, 3, 2, 2, 2, 1732, 1733, 5, 779, 390, 2, 1733, 1734, 5, 769, 385, 2, 1734, 1735, 5, 771, 386, 2, 1735, 1736, 5, 789, 395, 2, 1736, 1737, 5, 801, 401, 2, 1737, 1738, 5, 779, 390, 2, 1738, 1739, 5, 801, 401, 2, 1739, 1740, 5, 811, 406, 2, 1740, 258, 3, 2, 2, 2, 1741, 1742, 5, 779, 390, 2, 1742, 1743, 5, 773, 387, 2, 1743, 260, 3, 2, 2, 2, 1744, 1745, 5, 779, 390, 2, 1745, 1746, 5, 775, 388, 2, 1746, 1747, 5, 789, 395, 2, 1747, 1748, 5, 791, 396, 2, 1748, 1749, 5, 797, 399, 2, 1749, 1750, 5, 771, 386, 2, 1750, 262, 3, 2, 2, 2, 1751, 1752, 5, 779, 390, 2, 1752, 1753, 5, 787, 394, 2, 1753, 1754, 5, 787, 394, 2, 1754, 1755, 5, 771, 386, 2, 1755, 1756, 5, 769, 385, 2, 1756, 1757, 5, 779, 390, 2, 1757, 1758, 5, 763, 382, 2, 1758, 1759, 5, 801, 401, 2, 1759, 1760, 5, 771, 386, 2, 1760, 264, 3, 2, 2, 2, 1761, 1762, 5, 779, 390, 2, 1762, 1763, 5, 789, 395, 2, 1763, 266, 3, 2, 2, 2, 1764, 1765, 5, 779, 390, 2, 1765, 1766, 5, 789, 395, 2, 1766, 1767, 5, 767, 384, 2, 1767, 1768, 5, 785, 393, 2, 1768, 1769, 5, 803, 402, 2, 1769, 1770, 5, 769, 385, 2, 1770, 1771, 5, 771, 386, 2, 1771, 268, 3, 2, 2, 2, 1772, 1773, 5, 779, 390, 2, 1773, 1774, 5, 789, 395, 2, 1774, 1775, 5, 769, 385, 2, 1775, 1776, 5, 771, 386, 2, 1776, 1777, 5, 809, 405, 2, 1777, 270, 3, 2, 2, 2, 1778, 1779, 5, 779, 390, 2, 1779, 1780, 5, 789, 395, 2, 1780, 1781, 5, 779, 390, 2, 1781, 1782, 5, 801, 401, 2, 1782, 1783, 5, 797, 399, 2, 1783, 1784, 5, 763, 382, 2, 1784, 1785, 5, 789, 395, 2, 1785, 1786, 5, 799, 400, 2, 1786, 272, 3, 2, 2, 2, 1787, 1788, 5, 779, 390, 2, 1788, 1789, 5, 789, 395, 2, 1789, 1790, 5, 789, 395, 2, 1790, 1791, 5, 771, 386, 2, 1791, 1792, 5, 797, 399, 2, 1792, 274, 3, 2, 2, 2, 1793, 1794, 5, 779, 390, 2, 1794, 1795, 5, 789, 395, 2, 1795, 1796, 5, 791, 396, 2, 1796, 1797, 5, 803, 402, 2, 1797, 1798, 5, 801, 401, 2, 1798, 276, 3, 2, 2, 2, 1799, 1800, 5, 779, 390, 2, 1800, 1801, 5, 789, 395, 2, 1801, 1802, 5, 799, 400, 2, 1802, 1803, 5, 771, 386, 2, 1803, 1804, 5, 797, 399, 2, 1804, 1805, 5, 801, 401, 2, 1805, 278, 3, 2, 2, 2, 1806, 1807, 5, 779, 390, 2, 1807, 1808, 5, 789, 395, 2, 1808, 1809, 5, 801, 401, 2, 1809, 280, 3, 2, 2, 2, 1810, 1811, 5, 779, 390, 2, 1811, 1812, 5, 789, 395, 2, 1812, 1813, 5, 801, 401, 2, 1813, 1814, 7, 52, 2, 2, 1814, 282, 3, 2, 2, 2, 1815, 1816, 5, 779, 390, 2, 1816, 1817, 5, 789, 395, 2, 1817, 1818, 5, 801, 401, 2, 1818, 1819, 7, 54, 2, 2, 1819, 284, 3, 2, 2, 2, 1820, 1821, 5, 779, 390, 2, 1821, 1822, 5, 789, 395, 2, 1822, 1823, 5, 801, 401, 2, 1823, 1824, 7, 58, 2, 2, 1824, 286, 3, 2, 2, 2, 1825, 1826, 5, 779, 390, 2, 1826, 1827, 5, 789, 395, 2, 1827, 1828, 5, 801, 401, 2, 1828, 1829, 5, 771, 386, 2, 1829, 1830, 5, 775, 388, 2, 1830, 1831, 5, 771, 386, 2, 1831, 1832, 5, 797, 399, 2, 1832, 288, 3, 2, 2, 2, 1833, 1834, 5, 779, 390, 2, 1834, 1835, 5, 789, 395, 2, 1835, 1836, 5, 801, 401, 2, 1836, 1837, 5, 771, 386, 2, 1837, 1838, 5, 797, 399, 2, 1838, 1839, 5, 799, 400, 2, 1839, 1840, 5, 771, 386, 2, 1840, 1841, 5, 767, 384, 2, 1841, 1842, 5, 801, 401, 2, 1842, 290, 3, 2, 2, 2, 1843, 1844, 5, 779, 390, 2, 1844, 1845, 5, 789, 395, 2, 1845, 1846, 5, 801, 401, 2, 1846, 1847, 5, 771, 386, 2, 1847, 1848, 5, 797, 399, 2, 1848, 1849, 5, 805, 403, 2, 1849, 1850, 5, 763, 382, 2, 1850, 1851, 5, 785, 393, 2, 1851, 292, 3, 2, 2, 2, 1852, 1853, 5, 779, 390, 2, 1853, 1854, 5, 789, 395, 2, 1854, 1855, 5, 801, 401, 2, 1855, 1856, 5, 791, 396, 2, 1856, 294, 3, 2, 2, 2, 1857, 1858, 5, 779, 390, 2, 1858, 1859, 5, 789, 395, 2, 1859, 1860, 5, 805, 403, 2, 1860, 1861, 5, 791, 396, 2, 1861, 1862, 5, 783, 392, 2, 1862, 1863, 5, 771, 386, 2, 1863, 1864, 5, 797, 399, 2, 1864, 296, 3, 2, 2, 2, 1865, 1866, 5, 779, 390, 2, 1866, 1867, 5, 799, 400, 2, 1867, 298, 3, 2, 2, 2, 1868, 1869, 5, 779, 390, 2, 1869, 1870, 5, 799, 400, 2, 1870, 1871, 5, 791, 396, 2, 1871, 1872, 5, 793, 397, 2, 1872, 1873, 5, 771, 386, 2, 1873, 1874, 5, 789, 395, 2, 1874, 300, 3, 2, 2, 2, 1875, 1876, 5, 779, 390, 2, 1876, 1877, 5, 801, 401, 2, 1877, 1878, 5, 771, 386, 2, 1878, 1879, 5, 787, 394, 2, 1879, 1880, 5, 799, 400, 2, 1880, 302, 3, 2, 2, 2, 1881, 1882, 5, 781, 391, 2, 1882, 1883, 5, 791, 396, 2, 1883, 1884, 5, 779, 390, 2, 1884, 1885, 5, 789, 395, 2, 1885, 304, 3, 2, 2, 2, 1886, 1887, 5, 783, 392, 2, 1887, 1888, 5, 771, 386, 2, 1888, 1889, 5, 771, 386, 2, 1889, 1890, 5, 793, 397, 2, 1890, 306, 3, 2, 2, 2, 1891, 1892, 5, 783, 392, 2, 1892, 1893, 5, 771, 386, 2, 1893, 1894, 5, 811, 406, 2, 1894, 308, 3, 2, 2, 2, 1895, 1896, 5, 783, 392, 2, 1896, 1897, 5, 771, 386, 2, 1897, 1898, 5, 811, 406, 2, 1898, 1899, 5, 799, 400, 2, 1899, 310, 3, 2, 2, 2, 1900, 1901, 5, 785, 393, 2, 1901, 1902, 5, 763, 382, 2, 1902, 1903, 5, 789, 395, 2, 1903, 1904, 5, 775, 388, 2, 1904, 1905, 5, 803, 402, 2, 1905, 1906, 5, 763, 382, 2, 1906, 1907, 5, 775, 388, 2, 1907, 1908, 5, 771, 386, 2, 1908, 312, 3, 2, 2, 2, 1909, 1910, 5, 785, 393, 2, 1910, 1911, 5, 771, 386, 2, 1911, 1912, 5, 763, 382, 2, 1912, 1913, 5, 805, 403, 2, 1913, 1914, 5, 771, 386, 2, 1914, 314, 3, 2, 2, 2, 1915, 1916, 5, 785, 393, 2, 1916, 1917, 5, 771, 386, 2, 1917, 1918, 5, 773, 387, 2, 1918, 1919, 5, 801, 401, 2, 1919, 316, 3, 2, 2, 2, 1920, 1921, 5, 785, 393, 2, 1921, 1922, 5, 779, 390, 2, 1922, 1923, 5, 783, 392, 2, 1923, 1924, 5, 771, 386, 2, 1924, 318, 3, 2, 2, 2, 1925, 1926, 5, 785, 393, 2, 1926, 1927, 5, 779, 390, 2, 1927, 1928, 5, 787, 394, 2, 1928, 1929, 5, 779, 390, 2, 1929, 1930, 5, 801, 401, 2, 1930, 320, 3, 2, 2, 2, 1931, 1932, 5, 785, 393, 2, 1932, 1933, 5, 779, 390, 2, 1933, 1934, 5, 789, 395, 2, 1934, 1935, 5, 771, 386, 2, 1935, 1936, 5, 799, 400, 2, 1936, 322, 3, 2, 2, 2, 1937, 1938, 5, 785, 393, 2, 1938, 1939, 5, 791, 396, 2, 1939, 1940, 5, 767, 384, 2, 1940, 1941, 5, 763, 382, 2, 1941, 1942, 5, 785, 393, 2, 1942, 324, 3, 2, 2, 2, 1943, 1944, 5, 785, 393, 2, 1944, 1945, 5, 791, 396, 2, 1945, 1946, 5, 767, 384, 2, 1946, 1947, 5, 763, 382, 2, 1947, 1948, 5, 801, 401, 2, 1948, 1949, 5, 779, 390, 2, 1949, 1950, 5, 791, 396, 2, 1950, 1951, 5, 789, 395, 2, 1951, 326, 3, 2, 2, 2, 1952, 1953, 5, 785, 393, 2, 1953, 1954, 5, 791, 396, 2, 1954, 1955, 5, 767, 384, 2, 1955, 1956, 5, 763, 382, 2, 1956, 1957, 5, 801, 401, 2, 1957, 1958, 5, 791, 396, 2, 1958, 1959, 5, 797, 399, 2, 1959, 328, 3, 2, 2, 2, 1960, 1961, 5, 785, 393, 2, 1961, 1962, 5, 791, 396, 2, 1962, 1963, 5, 767, 384, 2, 1963, 1964, 5, 763, 382, 2, 1964, 1965, 5, 801, 401, 2, 1965, 1966, 5, 791, 396, 2, 1966, 1967, 5, 797, 399, 2, 1967, 1968, 5, 799, 400, 2, 1968, 330, 3, 2, 2, 2, 1969, 1970, 5, 785, 393, 2, 1970, 1971, 5, 791, 396, 2, 1971, 1972, 5, 767, 384, 2, 1972, 1973, 5, 783, 392, 2, 1973, 1974, 5, 799, 400, 2, 1974, 332, 3, 2, 2, 2, 1975, 1976, 5, 785, 393, 2, 1976, 1977, 5, 791, 396, 2, 1977, 1978, 5, 775, 388, 2, 1978, 334, 3, 2, 2, 2, 1979, 1980, 5, 785, 393, 2, 1980, 1981, 5, 791, 396, 2, 1981, 1982, 5, 775, 388, 2, 1982, 1983, 5, 775, 388, 2, 1983, 1984, 5, 771, 386, 2, 1984, 1985, 5, 769, 385, 2, 1985, 336, 3, 2, 2, 2, 1986, 1987, 5, 785, 393, 2, 1987, 1988, 5, 791, 396, 2, 1988, 1989, 5, 775, 388, 2, 1989, 1990, 5, 775, 388, 2, 1990, 1991, 5, 779, 390, 2, 1991, 1992, 5, 789, 395, 2, 1992, 1993, 5, 775, 388, 2, 1993, 338, 3, 2, 2, 2, 1994, 1995, 5, 785, 393, 2, 1995, 1996, 5, 791, 396, 2, 1996, 1997, 5, 791, 396, 2, 1997, 1998, 5, 793, 397, 2, 1998, 340, 3, 2, 2, 2, 1999, 2000, 5, 787, 394, 2, 2000, 2001, 5, 763, 382, 2, 2001, 2002, 5, 793, 397, 2, 2002, 342, 3, 2, 2, 2, 2003, 2004, 5, 787, 394, 2, 2004, 2005, 5, 763, 382, 2, 2005, 2006, 5, 801, 401, 2, 2006, 2007, 5, 767, 384, 2, 2007, 2008, 5, 777, 389, 2, 2008, 2009, 5, 771, 386, 2, 2009, 2010, 5, 769, 385, 2, 2010, 344, 3, 2, 2, 2, 2011, 2012, 5, 787, 394, 2, 2012, 2013, 5, 763, 382, 2, 2013, 2014, 5, 809, 405, 2, 2014, 346, 3, 2, 2, 2, 2015, 2016, 5, 787, 394, 2, 2016, 2017, 5, 763, 382, 2, 2017, 2018, 5, 809, 405, 2, 2018, 2019, 5, 801, 401, 2, 2019, 2020, 5, 797, 399, 2, 2020, 2021, 5, 763, 382, 2, 2021, 2022, 5, 789, 395, 2, 2022, 2023, 5, 799, 400, 2, 2023, 348, 3, 2, 2, 2, 2024, 2025, 5, 787, 394, 2, 2025, 2026, 5, 771, 386, 2, 2026, 2027, 5, 797, 399, 2, 2027, 2028, 5, 775, 388, 2, 2028, 2029, 5, 771, 386, 2, 2029, 350, 3, 2, 2, 2, 2030, 2031, 5, 787, 394, 2, 2031, 2032, 5, 771, 386, 2, 2032, 2033, 5, 799, 400, 2, 2033, 2034, 5, 799, 400, 2, 2034, 2035, 5, 763, 382, 2, 2035, 2036, 5, 775, 388, 2, 2036, 2037, 5, 771, 386, 2, 2037, 2038, 7, 97, 2, 2, 2038, 2039, 5, 801, 401, 2, 2039, 2040, 5, 771, 386, 2, 2040, 2041, 5, 809, 405, 2, 2041, 2042, 5, 801, 401, 2, 2042, 352, 3, 2, 2, 2, 2043, 2044, 5, 787, 394, 2, 2044, 2045, 5, 779, 390, 2, 2045, 2046, 5, 767, 384, 2, 2046, 2047, 5, 797, 399, 2, 2047, 2048, 5, 791, 396, 2, 2048, 2049, 5, 799, 400, 2, 2049, 2050, 5, 771, 386, 2, 2050, 2051, 5, 767, 384, 2, 2051, 2052, 5, 791, 396, 2, 2052, 2053, 5, 789, 395, 2, 2053, 2054, 5, 769, 385, 2, 2054, 354, 3, 2, 2, 2, 2055, 2056, 5, 787, 394, 2, 2056, 2057, 5, 779, 390, 2, 2057, 2058, 5, 767, 384, 2, 2058, 2059, 5, 797, 399, 2, 2059, 2060, 5, 791, 396, 2, 2060, 2061, 5, 799, 400, 2, 2061, 2062, 5, 771, 386, 2, 2062, 2063, 5, 767, 384, 2, 2063, 2064, 5, 791, 396, 2, 2064, 2065, 5, 789, 395, 2, 2065, 2066, 5, 769, 385, 2, 2066, 2067, 5, 799, 400, 2, 2067, 356, 3, 2, 2, 2, 2068, 2069, 5, 787, 394, 2, 2069, 2070, 5, 779, 390, 2, 2070, 2071, 5, 789, 395, 2, 2071, 358, 3, 2, 2, 2, 2072, 2073, 5, 787, 394, 2, 2073, 2074, 5, 803, 402, 2, 2074, 2075, 5, 785, 393, 2, 2075, 2076, 5, 801, 401, 2, 2076, 2077, 5, 779, 390, 2, 2077, 2078, 5, 799, 400, 2, 2078, 2079, 5, 771, 386, 2, 2079, 2080, 5, 801, 401, 2, 2080, 360, 3, 2, 2, 2, 2081, 2082, 5, 789, 395, 2, 2082, 2083, 5, 767, 384, 2, 2083, 2084, 5, 777, 389, 2, 2084, 2085, 5, 763, 382, 2, 2085, 2086, 5, 797, 399, 2, 2086, 362, 3, 2, 2, 2, 2087, 2088, 5, 789, 395, 2, 2088, 2089, 5, 771, 386, 2, 2089, 2090, 5, 807, 404, 2, 2090, 364, 3, 2, 2, 2, 2091, 2092, 5, 789, 395, 2, 2092, 2093, 5, 805, 403, 2, 2093, 2094, 5, 763, 382, 2, 2094, 2095, 5, 797, 399, 2, 2095, 2096, 5, 767, 384, 2, 2096, 2097, 5, 777, 389, 2, 2097, 2098, 5, 763, 382, 2, 2098, 2099, 5, 797, 399, 2, 2099, 366, 3, 2, 2, 2, 2100, 2101, 5, 789, 395, 2, 2101, 2102, 5, 791, 396, 2, 2102, 368, 3, 2, 2, 2, 2103, 2104, 5, 789, 395, 2, 2104, 2105, 5, 791, 396, 2, 2105, 2106, 5, 767, 384, 2, 2106, 2107, 5, 791, 396, 2, 2107, 2108, 5, 803, 402, 2, 2108, 2109, 5, 789, 395, 2, 2109, 2110, 5, 801, 401, 2, 2110, 370, 3, 2, 2, 2, 2111, 2112, 5, 789, 395, 2, 2112, 2113, 5, 791, 396, 2, 2113, 2114, 5, 767, 384, 2, 2114, 2115, 5, 791, 396, 2, 2115, 2116, 5, 787, 394, 2, 2116, 2117, 5, 793, 397, 2, 2117, 2118, 5, 797, 399, 2, 2118, 2119, 5, 771, 386, 2, 2119, 2120, 5, 799, 400, 2, 2120, 2121, 5, 799, 400, 2, 2121, 372, 3, 2, 2, 2, 2122, 2123, 5, 789, 395, 2, 2123, 2124, 5, 791, 396, 2, 2124, 2125, 5, 785, 393, 2, 2125, 2126, 5, 791, 396, 2, 2126, 2127, 5, 775, 388, 2, 2127, 2128, 5, 775, 388, 2, 2128, 2129, 5, 779, 390, 2, 2129, 2130, 5, 789, 395, 2, 2130, 2131, 5, 775, 388, 2, 2131, 374, 3, 2, 2, 2, 2132, 2133, 5, 789, 395, 2, 2133, 2134, 5, 791, 396, 2, 2134, 2135, 5, 789, 395, 2, 2135, 2136, 5, 771, 386, 2, 2136, 376, 3, 2, 2, 2, 2137, 2138, 5, 789, 395, 2, 2138, 2139, 5, 791, 396, 2, 2139, 2140, 5, 801, 401, 2, 2140, 378, 3, 2, 2, 2, 2141, 2142, 5, 789, 395, 2, 2142, 2143, 5, 791, 396, 2, 2143, 2144, 5, 801, 401, 2, 2144, 2145, 5, 773, 387, 2, 2145, 2146, 5, 791, 396, 2, 2146, 2147, 5, 803, 402, 2, 2147, 2148, 5, 789, 395, 2, 2148, 2149, 5, 769, 385, 2, 2149, 380, 3, 2, 2, 2, 2150, 2151, 5, 789, 395, 2, 2151, 2152, 5, 803, 402, 2, 2152, 2153, 5, 785, 393, 2, 2153, 2154, 5, 785, 393, 2, 2154, 382, 3, 2, 2, 2, 2155, 2156, 5, 789, 395, 2, 2156, 2157, 5, 803, 402, 2, 2157, 2158, 5, 787, 394, 2, 2158, 2159, 5, 771, 386, 2, 2159, 2160, 5, 797, 399, 2, 2160, 2161, 5, 779, 390, 2, 2161, 2162, 5, 767, 384, 2, 2162, 384, 3, 2, 2, 2, 2163, 2164, 5, 789, 395, 2, 2164, 2165, 5, 803, 402, 2, 2165, 2166, 5, 787, 394, 2, 2166, 2167, 5, 765, 383, 2, 2167, 2168, 5, 771, 386, 2, 2168, 2169, 5, 797, 399, 2, 2169, 386, 3, 2, 2, 2, 2170, 2171, 5, 791, 396, 2, 2171, 2172, 5, 765, 383, 2, 2172, 2173, 5, 781, 391, 2, 2173, 2174, 5, 771, 386, 2, 2174, 2175, 5, 767, 384, 2, 2175, 2176, 5, 801, 401, 2, 2176, 388, 3, 2, 2, 2, 2177, 2178, 5, 791, 396, 2, 2178, 2179, 5, 773, 387, 2, 2179, 2180, 5, 773, 387, 2, 2180, 390, 3, 2, 2, 2, 2181, 2182, 5, 791, 396, 2, 2182, 2183, 5, 789, 395, 2, 2183, 392, 3, 2, 2, 2, 2184, 2185, 5, 791, 396, 2, 2185, 2186, 5, 789, 395, 2, 2186, 2187, 5, 785, 393, 2, 2187, 2188, 5, 811, 406, 2, 2188, 394, 3, 2, 2, 2, 2189, 2190, 5, 791, 396, 2, 2190, 2191, 5, 793, 397, 2, 2191, 2192, 5, 771, 386, 2, 2192, 2193, 5, 789, 395, 2, 2193, 396, 3, 2, 2, 2, 2194, 2195, 5, 791, 396, 2, 2195, 2196, 5, 797, 399, 2, 2196, 398, 3, 2, 2, 2, 2197, 2198, 5, 791, 396, 2, 2198, 2199, 5, 797, 399, 2, 2199, 2200, 5, 769, 385, 2, 2200, 2201, 5, 771, 386, 2, 2201, 2202, 5, 797, 399, 2, 2202, 400, 3, 2, 2, 2, 2203, 2204, 5, 791, 396, 2, 2204, 2205, 5, 803, 402, 2, 2205, 2206, 5, 801, 401, 2, 2206, 402, 3, 2, 2, 2, 2207, 2208, 5, 791, 396, 2, 2208, 2209, 5, 803, 402, 2, 2209, 2210, 5, 801, 401, 2, 2210, 2211, 5, 771, 386, 2, 2211, 2212, 5, 797, 399, 2, 2212, 404, 3, 2, 2, 2, 2213, 2214, 5, 791, 396, 2, 2214, 2215, 5, 805, 403, 2, 2215, 2216, 5, 771, 386, 2, 2216, 2217, 5, 797, 399, 2, 2217, 406, 3, 2, 2, 2, 2218, 2219, 5, 791, 396, 2, 2219, 2220, 5, 805, 403, 2, 2220, 2221, 5, 771, 386, 2, 2221, 2222, 5, 797, 399, 2, 2222, 2223, 5, 807, 404, 2, 2223, 2224, 5, 797, 399, 2, 2224, 2225, 5, 779, 390, 2, 2225, 2226, 5, 801, 401, 2, 2226, 2227, 5, 771, 386, 2, 2227, 408, 3, 2, 2, 2, 2228, 2229, 5, 791, 396, 2, 2229, 2230, 5, 807, 404, 2, 2230, 2231, 5, 789, 395, 2, 2231, 2232, 5, 771, 386, 2, 2232, 2233, 5, 797, 399, 2, 2233, 410, 3, 2, 2, 2, 2234, 2235, 5, 793, 397, 2, 2235, 2236, 5, 763, 382, 2, 2236, 2237, 5, 767, 384, 2, 2237, 2238, 5, 783, 392, 2, 2238, 2239, 5, 763, 382, 2, 2239, 2240, 5, 775, 388, 2, 2240, 2241, 5, 771, 386, 2, 2241, 412, 3, 2, 2, 2, 2242, 2243, 5, 793, 397, 2, 2243, 2244, 5, 763, 382, 2, 2244, 2245, 5, 797, 399, 2, 2245, 2246, 5, 801, 401, 2, 2246, 2247, 5, 779, 390, 2, 2247, 2248, 5, 801, 401, 2, 2248, 2249, 5, 779, 390, 2, 2249, 2250, 5, 791, 396, 2, 2250, 2251, 5, 789, 395, 2, 2251, 414, 3, 2, 2, 2, 2252, 2253, 5, 793, 397, 2, 2253, 2254, 5, 767, 384, 2, 2254, 2255, 5, 801, 401, 2, 2255, 2256, 5, 773, 387, 2, 2256, 2257, 5, 797, 399, 2, 2257, 2258, 5, 771, 386, 2, 2258, 2259, 5, 771, 386, 2, 2259, 416, 3, 2, 2, 2, 2260, 2261, 5, 793, 397, 2, 2261, 2262, 5, 767, 384, 2, 2262, 2263, 5, 801, 401, 2, 2263, 2264, 5, 803, 402, 2, 2264, 2265, 5, 799, 400, 2, 2265, 2266, 5, 771, 386, 2, 2266, 2267, 5, 769, 385, 2, 2267, 418, 3, 2, 2, 2, 2268, 2269, 5, 793, 397, 2, 2269, 2270, 5, 785, 393, 2, 2270, 2271, 5, 799, 400, 2, 2271, 2272, 7, 97, 2, 2, 2272, 2273, 5, 779, 390, 2, 2273, 2274, 5, 789, 395, 2, 2274, 2275, 5, 801, 401, 2, 2275, 2276, 5, 771, 386, 2, 2276, 2277, 5, 775, 388, 2, 2277, 2278, 5, 771, 386, 2, 2278, 2279, 5, 797, 399, 2, 2279, 420, 3, 2, 2, 2, 2280, 2281, 5, 793, 397, 2, 2281, 2282, 5, 797, 399, 2, 2282, 2283, 5, 771, 386, 2, 2283, 2284, 5, 767, 384, 2, 2284, 2285, 5, 779, 390, 2, 2285, 2286, 5, 799, 400, 2, 2286, 2287, 5, 779, 390, 2, 2287, 2288, 5, 791, 396, 2, 2288, 2289, 5, 789, 395, 2, 2289, 422, 3, 2, 2, 2, 2290, 2291, 5, 793, 397, 2, 2291, 2292, 5, 797, 399, 2, 2292, 2293, 5, 771, 386, 2, 2293, 2294, 5, 799, 400, 2, 2294, 2295, 5, 771, 386, 2, 2295, 2296, 5, 797, 399, 2, 2296, 2297, 5, 805, 403, 2, 2297, 2298, 5, 771, 386, 2, 2298, 424, 3, 2, 2, 2, 2299, 2300, 5, 793, 397, 2, 2300, 2301, 5, 797, 399, 2, 2301, 2302, 5, 779, 390, 2, 2302, 2303, 5, 787, 394, 2, 2303, 2304, 5, 763, 382, 2, 2304, 2305, 5, 797, 399, 2, 2305, 2306, 5, 811, 406, 2, 2306, 426, 3, 2, 2, 2, 2307, 2308, 5, 793, 397, 2, 2308, 2309, 5, 797, 399, 2, 2309, 2310, 5, 779, 390, 2, 2310, 2311, 5, 789, 395, 2, 2311, 2312, 5, 801, 401, 2, 2312, 428, 3, 2, 2, 2, 2313, 2314, 5, 793, 397, 2, 2314, 2315, 5, 797, 399, 2, 2315, 2316, 5, 791, 396, 2, 2316, 2317, 5, 767, 384, 2, 2317, 430, 3, 2, 2, 2, 2318, 2319, 5, 793, 397, 2, 2319, 2320, 5, 797, 399, 2, 2320, 2321, 5, 791, 396, 2, 2321, 2322, 5, 767, 384, 2, 2322, 2323, 5, 771, 386, 2, 2323, 2324, 5, 769, 385, 2, 2324, 2325, 5, 803, 402, 2, 2325, 2326, 5, 797, 399, 2, 2326, 2327, 5, 771, 386, 2, 2327, 432, 3, 2, 2, 2, 2328, 2329, 5, 795, 398, 2, 2329, 2330, 5, 803, 402, 2, 2330, 2331, 5, 763, 382, 2, 2331, 2332, 5, 785, 393, 2, 2332, 2333, 5, 779, 390, 2, 2333, 2334, 5, 773, 387, 2, 2334, 2335, 5, 811, 406, 2, 2335, 434, 3, 2, 2, 2, 2336, 2337, 5, 795, 398, 2, 2337, 2338, 5, 803, 402, 2, 2338, 2339, 5, 771, 386, 2, 2339, 2340, 5, 797, 399, 2, 2340, 2341, 5, 811, 406, 2, 2341, 2342, 7, 97, 2, 2, 2342, 2343, 5, 765, 383, 2, 2343, 2344, 5, 763, 382, 2, 2344, 2345, 5, 789, 395, 2, 2345, 2346, 5, 769, 385, 2, 2346, 436, 3, 2, 2, 2, 2347, 2348, 5, 795, 398, 2, 2348, 2349, 5, 803, 402, 2, 2349, 2350, 5, 779, 390, 2, 2350, 2351, 5, 801, 401, 2, 2351, 438, 3, 2, 2, 2, 2352, 2353, 5, 795, 398, 2, 2353, 2354, 5, 803, 402, 2, 2354, 2355, 5, 791, 396, 2, 2355, 2356, 5, 801, 401, 2, 2356, 2357, 5, 771, 386, 2, 2357, 2358, 5, 769, 385, 2, 2358, 2359, 7, 97, 2, 2, 2359, 2360, 5, 779, 390, 2, 2360, 2361, 5, 769, 385, 2, 2361, 2362, 5, 771, 386, 2, 2362, 2363, 5, 789, 395, 2, 2363, 2364, 5, 801, 401, 2, 2364, 2365, 5, 779, 390, 2, 2365, 2366, 5, 773, 387, 2, 2366, 2367, 5, 779, 390, 2, 2367, 2368, 5, 771, 386, 2, 2368, 2369, 5, 797, 399, 2, 2369, 440, 3, 2, 2, 2, 2370, 2371, 5, 797, 399, 2, 2371, 2372, 5, 763, 382, 2, 2372, 2373, 5, 779, 390, 2, 2373, 2374, 5, 799, 400, 2, 2374, 2375, 5, 771, 386, 2, 2375, 442, 3, 2, 2, 2, 2376, 2377, 5, 797, 399, 2, 2377, 2378, 5, 771, 386, 2, 2378, 2379, 5, 763, 382, 2, 2379, 2380, 5, 785, 393, 2, 2380, 444, 3, 2, 2, 2, 2381, 2382, 5, 797, 399, 2, 2382, 2383, 5, 771, 386, 2, 2383, 2384, 5, 773, 387, 2, 2384, 2385, 5, 771, 386, 2, 2385, 2386, 5, 797, 399, 2, 2386, 2387, 5, 771, 386, 2, 2387, 2388, 5, 789, 395, 2, 2388, 2389, 5, 767, 384, 2, 2389, 2390, 5, 771, 386, 2, 2390, 2391, 5, 799, 400, 2, 2391, 446, 3, 2, 2, 2, 2392, 2393, 5, 797, 399, 2, 2393, 2394, 5, 771, 386, 2, 2394, 2395, 5, 775, 388, 2, 2395, 2396, 5, 771, 386, 2, 2396, 2397, 5, 809, 405, 2, 2397, 2398, 5, 793, 397, 2, 2398, 448, 3, 2, 2, 2, 2399, 2400, 5, 797, 399, 2, 2400, 2401, 5, 771, 386, 2, 2401, 2402, 5, 793, 397, 2, 2402, 2403, 5, 785, 393, 2, 2403, 2404, 5, 763, 382, 2, 2404, 2405, 5, 767, 384, 2, 2405, 2406, 5, 771, 386, 2, 2406, 450, 3, 2, 2, 2, 2407, 2408, 5, 797, 399, 2, 2408, 2409, 5, 771, 386, 2, 2409, 2410, 5, 799, 400, 2, 2410, 2411, 5, 779, 390, 2, 2411, 2412, 5, 775, 388, 2, 2412, 2413, 5, 789, 395, 2, 2413, 2414, 5, 763, 382, 2, 2414, 2415, 5, 785, 393, 2, 2415, 452, 3, 2, 2, 2, 2416, 2417, 5, 797, 399, 2, 2417, 2418, 5, 771, 386, 2, 2418, 2419, 5, 799, 400, 2, 2419, 2420, 5, 801, 401, 2, 2420, 2421, 5, 797, 399, 2, 2421, 2422, 5, 779, 390, 2, 2422, 2423, 5, 767, 384, 2, 2423, 2424, 5, 801, 401, 2, 2424, 454, 3, 2, 2, 2, 2425, 2426, 5, 797, 399, 2, 2426, 2427, 5, 771, 386, 2, 2427, 2428, 5, 799, 400, 2, 2428, 2429, 5, 803, 402, 2, 2429, 2430, 5, 785, 393, 2, 2430, 2431, 5, 801, 401, 2, 2431, 456, 3, 2, 2, 2, 2432, 2433, 5, 797, 399, 2, 2433, 2434, 5, 771, 386, 2, 2434, 2435, 5, 799, 400, 2, 2435, 2436, 5, 803, 402, 2, 2436, 2437, 5, 785, 393, 2, 2437, 2438, 5, 801, 401, 2, 2438, 2439, 7, 97, 2, 2, 2439, 2440, 5, 799, 400, 2, 2440, 2441, 5, 771, 386, 2, 2441, 2442, 5, 801, 401, 2, 2442, 2443, 7, 97, 2, 2, 2443, 2444, 5, 785, 393, 2, 2444, 2445, 5, 791, 396, 2, 2445, 2446, 5, 767, 384, 2, 2446, 2447, 5, 763, 382, 2, 2447, 2448, 5, 801, 401, 2, 2448, 2449, 5, 791, 396, 2, 2449, 2450, 5, 797, 399, 2, 2450, 458, 3, 2, 2, 2, 2451, 2452, 5, 797, 399, 2, 2452, 2453, 5, 771, 386, 2, 2453, 2454, 5, 801, 401, 2, 2454, 2455, 5, 803, 402, 2, 2455, 2456, 5, 797, 399, 2, 2456, 2457, 5, 789, 395, 2, 2457, 460, 3, 2, 2, 2, 2458, 2459, 5, 797, 399, 2, 2459, 2460, 5, 771, 386, 2, 2460, 2461, 5, 801, 401, 2, 2461, 2462, 5, 803, 402, 2, 2462, 2463, 5, 797, 399, 2, 2463, 2464, 5, 789, 395, 2, 2464, 2465, 5, 799, 400, 2, 2465, 462, 3, 2, 2, 2, 2466, 2467, 5, 797, 399, 2, 2467, 2468, 5, 771, 386, 2, 2468, 2469, 5, 805, 403, 2, 2469, 2470, 5, 771, 386, 2, 2470, 2471, 5, 797, 399, 2, 2471, 2472, 5, 799, 400, 2, 2472, 2473, 5, 771, 386, 2, 2473, 464, 3, 2, 2, 2, 2474, 2475, 5, 797, 399, 2, 2475, 2476, 5, 779, 390, 2, 2476, 2477, 5, 775, 388, 2, 2477, 2478, 5, 777, 389, 2, 2478, 2479, 5, 801, 401, 2, 2479, 466, 3, 2, 2, 2, 2480, 2481, 5, 797, 399, 2, 2481, 2482, 5, 785, 393, 2, 2482, 2483, 5, 779, 390, 2, 2483, 2484, 5, 783, 392, 2, 2484, 2485, 5, 771, 386, 2, 2485, 468, 3, 2, 2, 2, 2486, 2487, 5, 797, 399, 2, 2487, 2488, 5, 791, 396, 2, 2488, 2489, 5, 785, 393, 2, 2489, 2490, 5, 771, 386, 2, 2490, 470, 3, 2, 2, 2, 2491, 2492, 5, 797, 399, 2, 2492, 2493, 5, 791, 396, 2, 2493, 2494, 5, 785, 393, 2, 2494, 2495, 5, 785, 393, 2, 2495, 2496, 5, 765, 383, 2, 2496, 2497, 5, 763, 382, 2, 2497, 2498, 5, 767, 384, 2, 2498, 2499, 5, 783, 392, 2, 2499, 472, 3, 2, 2, 2, 2500, 2501, 5, 797, 399, 2, 2501, 2502, 5, 791, 396, 2, 2502, 2503, 5, 807, 404, 2, 2503, 474, 3, 2, 2, 2, 2504, 2505, 5, 797, 399, 2, 2505, 2506, 5, 791, 396, 2, 2506, 2507, 5, 807, 404, 2, 2507, 2508, 5, 799, 400, 2, 2508, 476, 3, 2, 2, 2, 2509, 2510, 5, 797, 399, 2, 2510, 2511, 5, 791, 396, 2, 2511, 2512, 5, 807, 404, 2, 2512, 2513, 5, 801, 401, 2, 2513, 2514, 5, 811, 406, 2, 2514, 2515, 5, 793, 397, 2, 2515, 2516, 5, 771, 386, 2, 2516, 478, 3, 2, 2, 2, 2517, 2518, 5, 797, 399, 2, 2518, 2519, 5, 791, 396, 2, 2519, 2520, 5, 807, 404, 2, 2520, 2521, 7, 97, 2, 2, 2521, 2522, 5, 767, 384, 2, 2522, 2523, 5, 791, 396, 2, 2523, 2524, 5, 803, 402, 2, 2524, 2525, 5, 789, 395, 2, 2525, 2526, 5, 801, 401, 2, 2526, 480, 3, 2, 2, 2, 2527, 2528, 5, 797, 399, 2, 2528, 2529, 5, 797, 399, 2, 2529, 482, 3, 2, 2, 2, 2530, 2531, 5, 797, 399, 2, 2531, 2532, 5, 799, 400, 2, 2532, 484, 3, 2, 2, 2, 2533, 2534, 5, 793, 397, 2, 2534, 2535, 5, 807, 404, 2, 2535, 2536, 5, 769, 385, 2, 2536, 486, 3, 2, 2, 2, 2537, 2538, 5, 801, 401, 2, 2538, 2539, 5, 797, 399, 2, 2539, 2540, 5, 779, 390, 2, 2540, 2541, 5, 787, 394, 2, 2541, 488, 3, 2, 2, 2, 2542, 2543, 5, 799, 400, 2, 2543, 2544, 5, 767, 384, 2, 2544, 2545, 5, 777, 389, 2, 2545, 2546, 5, 771, 386, 2, 2546, 2547, 5, 787, 394, 2, 2547, 2548, 5, 763, 382, 2, 2548, 490, 3, 2, 2, 2, 2549, 2550, 5, 799, 400, 2, 2550, 2551, 5, 771, 386, 2, 2551, 2552, 5, 767, 384, 2, 2552, 2553, 5, 791, 396, 2, 2553, 2554, 5, 789, 395, 2, 2554, 2555, 5, 769, 385, 2, 2555, 492, 3, 2, 2, 2, 2556, 2557, 5, 799, 400, 2, 2557, 2558, 5, 771, 386, 2, 2558, 2559, 5, 767, 384, 2, 2559, 2560, 5, 791, 396, 2, 2560, 2561, 5, 789, 395, 2, 2561, 2562, 5, 769, 385, 2, 2562, 2563, 5, 799, 400, 2, 2563, 494, 3, 2, 2, 2, 2564, 2565, 5, 799, 400, 2, 2565, 2566, 5, 771, 386, 2, 2566, 2567, 5, 767, 384, 2, 2567, 2568, 5, 803, 402, 2, 2568, 2569, 5, 797, 399, 2, 2569, 2570, 5, 779, 390, 2, 2570, 2571, 5, 801, 401, 2, 2571, 2572, 5, 811, 406, 2, 2572, 496, 3, 2, 2, 2, 2573, 2574, 5, 799, 400, 2, 2574, 2575, 5, 771, 386, 2, 2575, 2576, 5, 775, 388, 2, 2576, 2577, 5, 787, 394, 2, 2577, 2578, 5, 771, 386, 2, 2578, 2579, 5, 789, 395, 2, 2579, 2580, 5, 801, 401, 2, 2580, 498, 3, 2, 2, 2, 2581, 2582, 5, 799, 400, 2, 2582, 2583, 5, 771, 386, 2, 2583, 2584, 5, 785, 393, 2, 2584, 500, 3, 2, 2, 2, 2585, 2586, 5, 799, 400, 2, 2586, 2587, 5, 771, 386, 2, 2587, 2588, 5, 785, 393, 2, 2588, 2589, 5, 771, 386, 2, 2589, 2590, 5, 767, 384, 2, 2590, 2591, 5, 801, 401, 2, 2591, 502, 3, 2, 2, 2, 2592, 2593, 5, 799, 400, 2, 2593, 2594, 5, 771, 386, 2, 2594, 2595, 5, 801, 401, 2, 2595, 504, 3, 2, 2, 2, 2596, 2597, 5, 799, 400, 2, 2597, 2598, 5, 771, 386, 2, 2598, 2599, 5, 799, 400, 2, 2599, 2600, 5, 799, 400, 2, 2600, 2601, 5, 779, 390, 2, 2601, 2602, 5, 791, 396, 2, 2602, 2603, 5, 789, 395, 2, 2603, 506, 3, 2, 2, 2, 2604, 2605, 5, 799, 400, 2, 2605, 2606, 5, 771, 386, 2, 2606, 2607, 5, 799, 400, 2, 2607, 2608, 5, 799, 400, 2, 2608, 2609, 5, 779, 390, 2, 2609, 2610, 5, 791, 396, 2, 2610, 2611, 5, 789, 395, 2, 2611, 2612, 5, 799, 400, 2, 2612, 508, 3, 2, 2, 2, 2613, 2614, 5, 799, 400, 2, 2614, 2615, 5, 771, 386, 2, 2615, 2616, 5, 801, 401, 2, 2616, 2617, 5, 799, 400, 2, 2617, 510, 3, 2, 2, 2, 2618, 2619, 5, 799, 400, 2, 2619, 2620, 5, 777, 389, 2, 2620, 2621, 5, 763, 382, 2, 2621, 2622, 5, 797, 399, 2, 2622, 2623, 5, 771, 386, 2, 2623, 512, 3, 2, 2, 2, 2624, 2625, 5, 799, 400, 2, 2625, 2626, 5, 779, 390, 2, 2626, 2627, 5, 775, 388, 2, 2627, 2628, 5, 789, 395, 2, 2628, 2629, 5, 763, 382, 2, 2629, 2630, 5, 785, 393, 2, 2630, 514, 3, 2, 2, 2, 2631, 2632, 5, 799, 400, 2, 2632, 2633, 5, 779, 390, 2, 2633, 2634, 5, 787, 394, 2, 2634, 2635, 5, 793, 397, 2, 2635, 2636, 5, 785, 393, 2, 2636, 2637, 5, 771, 386, 2, 2637, 2638, 7, 97, 2, 2, 2638, 2639, 5, 769, 385, 2, 2639, 2640, 5, 791, 396, 2, 2640, 2641, 5, 803, 402, 2, 2641, 2642, 5, 765, 383, 2, 2642, 2643, 5, 785, 393, 2, 2643, 2644, 5, 771, 386, 2, 2644, 516, 3, 2, 2, 2, 2645, 2646, 5, 799, 400, 2, 2646, 2647, 5, 779, 390, 2, 2647, 2648, 5, 787, 394, 2, 2648, 2649, 5, 793, 397, 2, 2649, 2650, 5, 785, 393, 2, 2650, 2651, 5, 771, 386, 2, 2651, 2652, 7, 97, 2, 2, 2652, 2653, 5, 773, 387, 2, 2653, 2654, 5, 785, 393, 2, 2654, 2655, 5, 791, 396, 2, 2655, 2656, 5, 763, 382, 2, 2656, 2657, 5, 801, 401, 2, 2657, 518, 3, 2, 2, 2, 2658, 2659, 5, 799, 400, 2, 2659, 2660, 5, 779, 390, 2, 2660, 2661, 5, 787, 394, 2, 2661, 2662, 5, 793, 397, 2, 2662, 2663, 5, 785, 393, 2, 2663, 2664, 5, 771, 386, 2, 2664, 2665, 7, 97, 2, 2, 2665, 2666, 5, 779, 390, 2, 2666, 2667, 5, 789, 395, 2, 2667, 2668, 5, 801, 401, 2, 2668, 2669, 5, 771, 386, 2, 2669, 2670, 5, 775, 388, 2, 2670, 2671, 5, 771, 386, 2, 2671, 2672, 5, 797, 399, 2, 2672, 520, 3, 2, 2, 2, 2673, 2674, 5, 799, 400, 2, 2674, 2675, 5, 787, 394, 2, 2675, 2676, 5, 763, 382, 2, 2676, 2677, 5, 785, 393, 2, 2677, 2678, 5, 785, 393, 2, 2678, 2679, 5, 769, 385, 2, 2679, 2680, 5, 763, 382, 2, 2680, 2681, 5, 801, 401, 2, 2681, 2682, 5, 771, 386, 2, 2682, 2683, 5, 801, 401, 2, 2683, 2684, 5, 779, 390, 2, 2684, 2685, 5, 787, 394, 2, 2685, 2686, 5, 771, 386, 2, 2686, 522, 3, 2, 2, 2, 2687, 2688, 5, 799, 400, 2, 2688, 2689, 5, 787, 394, 2, 2689, 2690, 5, 763, 382, 2, 2690, 2691, 5, 785, 393, 2, 2691, 2692, 5, 785, 393, 2, 2692, 2693, 5, 779, 390, 2, 2693, 2694, 5, 789, 395, 2, 2694, 2695, 5, 801, 401, 2, 2695, 524, 3, 2, 2, 2, 2696, 2697, 5, 799, 400, 2, 2697, 2698, 5, 795, 398, 2, 2698, 2699, 5, 785, 393, 2, 2699, 526, 3, 2, 2, 2, 2700, 2701, 5, 799, 400, 2, 2701, 2702, 5, 795, 398, 2, 2702, 2703, 5, 785, 393, 2, 2703, 2704, 5, 771, 386, 2, 2704, 2705, 5, 809, 405, 2, 2705, 2706, 5, 767, 384, 2, 2706, 2707, 5, 771, 386, 2, 2707, 2708, 5, 793, 397, 2, 2708, 2709, 5, 801, 401, 2, 2709, 2710, 5, 779, 390, 2, 2710, 2711, 5, 791, 396, 2, 2711, 2712, 5, 789, 395, 2, 2712, 528, 3, 2, 2, 2, 2713, 2714, 5, 799, 400, 2, 2714, 2715, 5, 795, 398, 2, 2715, 2716, 5, 785, 393, 2, 2716, 2717, 5, 779, 390, 2, 2717, 2718, 5, 789, 395, 2, 2718, 2719, 5, 799, 400, 2, 2719, 2720, 5, 771, 386, 2, 2720, 2721, 5, 797, 399, 2, 2721, 2722, 5, 801, 401, 2, 2722, 530, 3, 2, 2, 2, 2723, 2724, 5, 799, 400, 2, 2724, 2725, 5, 795, 398, 2, 2725, 2726, 5, 785, 393, 2, 2726, 2727, 5, 799, 400, 2, 2727, 2728, 5, 801, 401, 2, 2728, 2729, 5, 763, 382, 2, 2729, 2730, 5, 801, 401, 2, 2730, 2731, 5, 771, 386, 2, 2731, 532, 3, 2, 2, 2, 2732, 2733, 5, 799, 400, 2, 2733, 2734, 5, 795, 398, 2, 2734, 2735, 5, 785, 393, 2, 2735, 2736, 5, 807, 404, 2, 2736, 2737, 5, 763, 382, 2, 2737, 2738, 5, 797, 399, 2, 2738, 2739, 5, 789, 395, 2, 2739, 2740, 5, 779, 390, 2, 2740, 2741, 5, 789, 395, 2, 2741, 2742, 5, 775, 388, 2, 2742, 534, 3, 2, 2, 2, 2743, 2744, 5, 799, 400, 2, 2744, 2745, 5, 801, 401, 2, 2745, 2746, 5, 763, 382, 2, 2746, 2747, 5, 801, 401, 2, 2747, 2748, 5, 799, 400, 2, 2748, 536, 3, 2, 2, 2, 2749, 2750, 5, 799, 400, 2, 2750, 2751, 5, 801, 401, 2, 2751, 2752, 5, 763, 382, 2, 2752, 2753, 5, 801, 401, 2, 2753, 2754, 5, 779, 390, 2, 2754, 2755, 5, 799, 400, 2, 2755, 2756, 5, 801, 401, 2, 2756, 2757, 5, 779, 390, 2, 2757, 2758, 5, 767, 384, 2, 2758, 2759, 5, 799, 400, 2, 2759, 538, 3, 2, 2, 2, 2760, 2761, 5, 799, 400, 2, 2761, 2762, 5, 801, 401, 2, 2762, 2763, 5, 771, 386, 2, 2763, 2764, 5, 793, 397, 2, 2764, 540, 3, 2, 2, 2, 2765, 2766, 5, 799, 400, 2, 2766, 2767, 5, 801, 401, 2, 2767, 2768, 5, 791, 396, 2, 2768, 2769, 5, 797, 399, 2, 2769, 2770, 5, 763, 382, 2, 2770, 2771, 5, 775, 388, 2, 2771, 2772, 5, 771, 386, 2, 2772, 542, 3, 2, 2, 2, 2773, 2774, 5, 799, 400, 2, 2774, 2775, 5, 801, 401, 2, 2775, 2776, 5, 791, 396, 2, 2776, 2777, 5, 797, 399, 2, 2777, 2778, 5, 771, 386, 2, 2778, 2779, 5, 769, 385, 2, 2779, 544, 3, 2, 2, 2, 2780, 2781, 5, 799, 400, 2, 2781, 2782, 5, 801, 401, 2, 2782, 2783, 5, 797, 399, 2, 2783, 2784, 5, 779, 390, 2, 2784, 2785, 5, 789, 395, 2, 2785, 2786, 5, 775, 388, 2, 2786, 546, 3, 2, 2, 2, 2787, 2788, 5, 799, 400, 2, 2788, 2789, 5, 803, 402, 2, 2789, 2790, 5, 765, 383, 2, 2790, 2791, 5, 769, 385, 2, 2791, 2792, 5, 779, 390, 2, 2792, 2793, 5, 797, 399, 2, 2793, 548, 3, 2, 2, 2, 2794, 2795, 5, 799, 400, 2, 2795, 2796, 5, 803, 402, 2, 2796, 2797, 5, 765, 383, 2, 2797, 2798, 5, 799, 400, 2, 2798, 2799, 5, 801, 401, 2, 2799, 2800, 5, 797, 399, 2, 2800, 2801, 5, 779, 390, 2, 2801, 2802, 5, 789, 395, 2, 2802, 2803, 5, 775, 388, 2, 2803, 550, 3, 2, 2, 2, 2804, 2805, 5, 799, 400, 2, 2805, 2806, 5, 803, 402, 2, 2806, 2807, 5, 787, 394, 2, 2807, 552, 3, 2, 2, 2, 2808, 2809, 5, 799, 400, 2, 2809, 2810, 5, 803, 402, 2, 2810, 2811, 5, 787, 394, 2, 2811, 2812, 5, 787, 394, 2, 2812, 2813, 5, 763, 382, 2, 2813, 2814, 5, 797, 399, 2, 2814, 2815, 5, 811, 406, 2, 2815, 554, 3, 2, 2, 2, 2816, 2817, 5, 799, 400, 2, 2817, 2818, 5, 811, 406, 2, 2818, 2819, 5, 799, 400, 2, 2819, 2820, 7, 97, 2, 2, 2820, 2821, 5, 797, 399, 2, 2821, 2822, 5, 771, 386, 2, 2822, 2823, 5, 773, 387, 2, 2823, 2824, 5, 767, 384, 2, 2824, 2825, 5, 803, 402, 2, 2825, 2826, 5, 797, 399, 2, 2826, 2827, 5, 799, 400, 2, 2827, 2828, 5, 791, 396, 2, 2828, 2829, 5, 797, 399, 2, 2829, 556, 3, 2, 2, 2, 2830, 2831, 5, 801, 401, 2, 2831, 2832, 5, 763, 382, 2, 2832, 2833, 5, 765, 383, 2, 2833, 2834, 5, 785, 393, 2, 2834, 2835, 5, 771, 386, 2, 2835, 558, 3, 2, 2, 2, 2836, 2837, 5, 801, 401, 2, 2837, 2838, 5, 763, 382, 2, 2838, 2839, 5, 765, 383, 2, 2839, 2840, 5, 785, 393, 2, 2840, 2841, 5, 771, 386, 2, 2841, 2842, 5, 799, 400, 2, 2842, 2843, 5, 793, 397, 2, 2843, 2844, 5, 763, 382, 2, 2844, 2845, 5, 767, 384, 2, 2845, 2846, 5, 771, 386, 2, 2846, 560, 3, 2, 2, 2, 2847, 2848, 5, 801, 401, 2, 2848, 2849, 5, 771, 386, 2, 2849, 2850, 5, 787, 394, 2, 2850, 2851, 5, 793, 397, 2, 2851, 2852, 5, 791, 396, 2, 2852, 2853, 5, 797, 399, 2, 2853, 2854, 5, 763, 382, 2, 2854, 2855, 5, 797, 399, 2, 2855, 2856, 5, 811, 406, 2, 2856, 562, 3, 2, 2, 2, 2857, 2858, 5, 801, 401, 2, 2858, 2859, 5, 771, 386, 2, 2859, 2860, 5, 797, 399, 2, 2860, 2861, 5, 787, 394, 2, 2861, 2862, 5, 779, 390, 2, 2862, 2863, 5, 789, 395, 2, 2863, 2864, 5, 763, 382, 2, 2864, 2865, 5, 801, 401, 2, 2865, 2866, 5, 771, 386, 2, 2866, 2867, 5, 769, 385, 2, 2867, 564, 3, 2, 2, 2, 2868, 2869, 5, 801, 401, 2, 2869, 2870, 5, 771, 386, 2, 2870, 2871, 5, 809, 405, 2, 2871, 2872, 5, 801, 401, 2, 2872, 2873, 5, 779, 390, 2, 2873, 2874, 5, 787, 394, 2, 2874, 2875, 5, 763, 382, 2, 2875, 2876, 5, 775, 388, 2, 2876, 2877, 5, 771, 386, 2, 2877, 2878, 7, 97, 2, 2, 2878, 2879, 5, 791, 396, 2, 2879, 2880, 5, 789, 395, 2, 2880, 566, 3, 2, 2, 2, 2881, 2882, 5, 801, 401, 2, 2882, 2883, 5, 777, 389, 2, 2883, 2884, 5, 771, 386, 2, 2884, 2885, 5, 789, 395, 2, 2885, 568, 3, 2, 2, 2, 2886, 2887, 5, 801, 401, 2, 2887, 2888, 5, 779, 390, 2, 2888, 2889, 5, 787, 394, 2, 2889, 2890, 5, 771, 386, 2, 2890, 2891, 5, 799, 400, 2, 2891, 2892, 5, 801, 401, 2, 2892, 2893, 5, 763, 382, 2, 2893, 2894, 5, 787, 394, 2, 2894, 2895, 5, 793, 397, 2, 2895, 570, 3, 2, 2, 2, 2896, 2897, 5, 801, 401, 2, 2897, 2898, 5, 779, 390, 2, 2898, 2899, 5, 789, 395, 2, 2899, 2900, 5, 811, 406, 2, 2900, 2901, 5, 779, 390, 2, 2901, 2902, 5, 789, 395, 2, 2902, 2903, 5, 801, 401, 2, 2903, 572, 3, 2, 2, 2, 2904, 2905, 5, 801, 401, 2, 2905, 2906, 5, 779, 390, 2, 2906, 2907, 5, 801, 401, 2, 2907, 2908, 5, 785, 393, 2, 2908, 2909, 5, 771, 386, 2, 2909, 574, 3, 2, 2, 2, 2910, 2911, 5, 801, 401, 2, 2911, 2912, 5, 791, 396, 2, 2912, 576, 3, 2, 2, 2, 2913, 2914, 5, 801, 401, 2, 2914, 2915, 5, 791, 396, 2, 2915, 2916, 5, 793, 397, 2, 2916, 578, 3, 2, 2, 2, 2917, 2918, 5, 801, 401, 2, 2918, 2919, 5, 797, 399, 2, 2919, 2920, 5, 763, 382, 2, 2920, 2921, 5, 789, 395, 2, 2921, 2922, 5, 799, 400, 2, 2922, 2923, 5, 763, 382, 2, 2923, 2924, 5, 767, 384, 2, 2924, 2925, 5, 801, 401, 2, 2925, 2926, 5, 779, 390, 2, 2926, 2927, 5, 791, 396, 2, 2927, 2928, 5, 789, 395, 2, 2928, 580, 3, 2, 2, 2, 2929, 2930, 5, 801, 401, 2, 2930, 2931, 5, 797, 399, 2, 2931, 2932, 5, 803, 402, 2, 2932, 2933, 5, 771, 386, 2, 2933, 582, 3, 2, 2, 2, 2934, 2935, 5, 801, 401, 2, 2935, 2936, 5, 797, 399, 2, 2936, 2937, 5, 803, 402, 2, 2937, 2938, 5, 789, 395, 2, 2938, 2939, 5, 767, 384, 2, 2939, 2940, 5, 763, 382, 2, 2940, 2941, 5, 801, 401, 2, 2941, 2942, 5, 771, 386, 2, 2942, 584, 3, 2, 2, 2, 2943, 2944, 5, 801, 401, 2, 2944, 2945, 5, 811, 406, 2, 2945, 2946, 5, 793, 397, 2, 2946, 2947, 5, 771, 386, 2, 2947, 586, 3, 2, 2, 2, 2948, 2949, 5, 803, 402, 2, 2949, 2950, 5, 789, 395, 2, 2950, 2951, 5, 779, 390, 2, 2951, 2952, 5, 791, 396, 2, 2952, 2953, 5, 789, 395, 2, 2953, 588, 3, 2, 2, 2, 2954, 2955, 5, 803, 402, 2, 2955, 2956, 5, 789, 395, 2, 2956, 2957, 5, 779, 390, 2, 2957, 2958, 5, 795, 398, 2, 2958, 2959, 5, 803, 402, 2, 2959, 2960, 5, 771, 386, 2, 2960, 590, 3, 2, 2, 2, 2961, 2962, 5, 803, 402, 2, 2962, 2963, 5, 793, 397, 2, 2963, 2964, 5, 769, 385, 2, 2964, 2965, 5, 763, 382, 2, 2965, 2966, 5, 801, 401, 2, 2966, 2967, 5, 771, 386, 2, 2967, 592, 3, 2, 2, 2, 2968, 2969, 5, 803, 402, 2, 2969, 2970, 5, 797, 399, 2, 2970, 594, 3, 2, 2, 2, 2971, 2972, 5, 803, 402, 2, 2972, 2973, 5, 799, 400, 2, 2973, 2974, 5, 771, 386, 2, 2974, 596, 3, 2, 2, 2, 2975, 2976, 5, 803, 402, 2, 2976, 2977, 5, 799, 400, 2, 2977, 2978, 5, 779, 390, 2, 2978, 2979, 5, 789, 395, 2, 2979, 2980, 5, 775, 388, 2, 2980, 598, 3, 2, 2, 2, 2981, 2982, 5, 805, 403, 2, 2982, 2983, 5, 763, 382, 2, 2983, 2984, 5, 785, 393, 2, 2984, 2985, 5, 803, 402, 2, 2985, 2986, 5, 771, 386, 2, 2986, 600, 3, 2, 2, 2, 2987, 2988, 5, 805, 403, 2, 2988, 2989, 5, 763, 382, 2, 2989, 2990, 5, 785, 393, 2, 2990, 2991, 5, 803, 402, 2, 2991, 2992, 5, 771, 386, 2, 2992, 2993, 5, 799, 400, 2, 2993, 602, 3, 2, 2, 2, 2994, 2995, 5, 805, 403, 2, 2995, 2996, 5, 763, 382, 2, 2996, 2997, 5, 797, 399, 2, 2997, 604, 3, 2, 2, 2, 2998, 2999, 5, 805, 403, 2, 2999, 3000, 5, 763, 382, 2, 3000, 3001, 5, 797, 399, 2, 3001, 3002, 5, 767, 384, 2, 3002, 3003, 5, 777, 389, 2, 3003, 3004, 5, 763, 382, 2, 3004, 3005, 5, 797, 399, 2, 3005, 606, 3, 2, 2, 2, 3006, 3007, 5, 805, 403, 2, 3007, 3008, 5, 763, 382, 2, 3008, 3009, 5, 797, 399, 2, 3009, 3010, 5, 767, 384, 2, 3010, 3011, 5, 777, 389, 2, 3011, 3012, 5, 763, 382, 2, 3012, 3013, 5, 797, 399, 2, 3013, 3014, 7, 52, 2, 2, 3014, 608, 3, 2, 2, 2, 3015, 3016, 5, 805, 403, 2, 3016, 3017, 5, 763, 382, 2, 3017, 3018, 5, 797, 399, 2, 3018, 3019, 5, 811, 406, 2, 3019, 3020, 5, 779, 390, 2, 3020, 3021, 5, 789, 395, 2, 3021, 3022, 5, 775, 388, 2, 3022, 610, 3, 2, 2, 2, 3023, 3024, 5, 805, 403, 2, 3024, 3025, 5, 791, 396, 2, 3025, 3026, 5, 785, 393, 2, 3026, 3027, 5, 763, 382, 2, 3027, 3028, 5, 801, 401, 2, 3028, 3029, 5, 779, 390, 2, 3029, 3030, 5, 785, 393, 2, 3030, 3031, 5, 771, 386, 2, 3031, 612, 3, 2, 2, 2, 3032, 3033, 5, 807, 404, 2, 3033, 3034, 5, 777, 389, 2, 3034, 3035, 5, 771, 386, 2, 3035, 3036, 5, 789, 395, 2, 3036, 614, 3, 2, 2, 2, 3037, 3038, 5, 807, 404, 2, 3038, 3039, 5, 777, 389, 2, 3039, 3040, 5, 771, 386, 2, 3040, 3041, 5, 797, 399, 2, 3041, 3042, 5, 771, 386, 2, 3042, 616, 3, 2, 2, 2, 3043, 3044, 5, 807, 404, 2, 3044, 3045, 5, 777, 389, 2, 3045, 3046, 5, 779, 390, 2, 3046, 3047, 5, 785, 393, 2, 3047, 3048, 5, 771, 386, 2, 3048, 618, 3, 2, 2, 2, 3049, 3050, 5, 807, 404, 2, 3050, 3051, 5, 779, 390, 2, 3051, 3052, 5, 801, 401, 2, 3052, 3053, 5, 777, 389, 2, 3053, 620, 3, 2, 2, 2, 3054, 3055, 5, 807, 404, 2, 3055, 3056, 5, 779, 390, 2, 3056, 3057, 5, 801, 401, 2, 3057, 3058, 5, 777, 389, 2, 3058, 3059, 5, 791, 396, 2, 3059, 3060, 5, 803, 402, 2, 3060, 3061, 5, 801, 401, 2, 3061, 622, 3, 2, 2, 2, 3062, 3063, 5, 807, 404, 2, 3063, 3064, 5, 791, 396, 2, 3064, 3065, 5, 797, 399, 2, 3065, 3066, 5, 783, 392, 2, 3066, 624, 3, 2, 2, 2, 3067, 3068, 5, 809, 405, 2, 3068, 3069, 5, 763, 382, 2, 3069, 3070, 5, 767, 384, 2, 3070, 3071, 5, 801, 401, 2, 3071, 3072, 7, 97, 2, 2, 3072, 3073, 5, 763, 382, 2, 3073, 3074, 5, 765, 383, 2, 3074, 3075, 5, 791, 396, 2, 3075, 3076, 5, 797, 399, 2, 3076, 3077, 5, 801, 401, 2, 3077, 626, 3, 2, 2, 2, 3078, 3079, 5, 809, 405, 2, 3079, 3080, 5, 787, 394, 2, 3080, 3081, 5, 785, 393, 2, 3081, 628, 3, 2, 2, 2, 3082, 3083, 5, 811, 406, 2, 3083, 3084, 5, 771, 386, 2, 3084, 3085, 5, 799, 400, 2, 3085, 630, 3, 2, 2, 2, 3086, 3087, 5, 763, 382, 2, 3087, 3088, 5, 767, 384, 2, 3088, 3089, 5, 801, 401, 2, 3089, 3090, 5, 779, 390, 2, 3090, 3091, 5, 805, 403, 2, 3091, 3092, 5, 779, 390, 2, 3092, 3093, 5, 801, 401, 2, 3093, 3094, 5, 811, 406, 2, 3094, 3095, 7, 97, 2, 2, 3095, 3096, 5, 767, 384, 2, 3096, 3097, 5, 791, 396, 2, 3097, 3098, 5, 803, 402, 2, 3098, 3099, 5, 789, 395, 2, 3099, 3100, 5, 801, 401, 2, 3100, 632, 3, 2, 2, 2, 3101, 3102, 5, 767, 384, 2, 3102, 3103, 5, 803, 402, 2, 3103, 3104, 5, 787, 394, 2, 3104, 3105, 5, 771, 386, 2, 3105, 3106, 7, 97, 2, 2, 3106, 3107, 5, 769, 385, 2, 3107, 3108, 5, 779, 390, 2, 3108, 3109, 5, 799, 400, 2, 3109, 3110, 5, 801, 401, 2, 3110, 634, 3, 2, 2, 2, 3111, 3112, 5, 767, 384, 2, 3112, 3113, 5, 803, 402, 2, 3113, 3114, 5, 797, 399, 2, 3114, 3115, 5, 797, 399, 2, 3115, 3116, 5, 771, 386, 2, 3116, 3117, 5, 789, 395, 2, 3117, 3118, 5, 801, 401, 2, 3118, 3119, 7, 97, 2, 2, 3119, 3120, 5, 769, 385, 2, 3120, 3121, 5, 763, 382, 2, 3121, 3122, 5, 801, 401, 2, 3122, 3123, 5, 771, 386, 2, 3123, 636, 3, 2, 2, 2, 3124, 3125, 5, 767, 384, 2, 3125, 3126, 5, 803, 402, 2, 3126, 3127, 5, 797, 399, 2, 3127, 3128, 5, 797, 399, 2, 3128, 3129, 5, 771, 386, 2, 3129, 3130, 5, 789, 395, 2, 3130, 3131, 5, 801, 401, 2, 3131, 3132, 7, 97, 2, 2, 3132, 3133, 5, 801, 401, 2, 3133, 3134, 5, 779, 390, 2, 3134, 3135, 5, 787, 394, 2, 3135, 3136, 5, 771, 386, 2, 3136, 3137, 5, 799, 400, 2, 3137, 3138, 5, 801, 401, 2, 3138, 3139, 5, 763, 382, 2, 3139, 3140, 5, 787, 394, 2, 3140, 3141, 5, 793, 397, 2, 3141, 638, 3, 2, 2, 2, 3142, 3143, 5, 767, 384, 2, 3143, 3144, 5, 803, 402, 2, 3144, 3145, 5, 797, 399, 2, 3145, 3146, 5, 797, 399, 2, 3146, 3147, 5, 771, 386, 2, 3147, 3148, 5, 789, 395, 2, 3148, 3149, 5, 801, 401, 2, 3149, 3150, 7, 97, 2, 2, 3150, 3151, 5, 803, 402, 2, 3151, 3152, 5, 799, 400, 2, 3152, 3153, 5, 771, 386, 2, 3153, 3154, 5, 797, 399, 2, 3154, 640, 3, 2, 2, 2, 3155, 3156, 5, 769, 385, 2, 3156, 3157, 5, 771, 386, 2, 3157, 3158, 5, 789, 395, 2, 3158, 3159, 5, 799, 400, 2, 3159, 3160, 5, 771, 386, 2, 3160, 3161, 7, 97, 2, 2, 3161, 3162, 5, 797, 399, 2, 3162, 3163, 5, 763, 382, 2, 3163, 3164, 5, 789, 395, 2, 3164, 3165, 5, 783, 392, 2, 3165, 642, 3, 2, 2, 2, 3166, 3167, 5, 773, 387, 2, 3167, 3168, 5, 779, 390, 2, 3168, 3169, 5, 797, 399, 2, 3169, 3170, 5, 799, 400, 2, 3170, 3171, 5, 801, 401, 2, 3171, 3172, 7, 97, 2, 2, 3172, 3173, 5, 805, 403, 2, 3173, 3174, 5, 763, 382, 2, 3174, 3175, 5, 785, 393, 2, 3175, 3176, 5, 803, 402, 2, 3176, 3177, 5, 771, 386, 2, 3177, 644, 3, 2, 2, 2, 3178, 3179, 5, 785, 393, 2, 3179, 3180, 5, 763, 382, 2, 3180, 3181, 5, 775, 388, 2, 3181, 646, 3, 2, 2, 2, 3182, 3183, 5, 785, 393, 2, 3183, 3184, 5, 763, 382, 2, 3184, 3185, 5, 799, 400, 2, 3185, 3186, 5, 801, 401, 2, 3186, 3187, 7, 97, 2, 2, 3187, 3188, 5, 805, 403, 2, 3188, 3189, 5, 763, 382, 2, 3189, 3190, 5, 785, 393, 2, 3190, 3191, 5, 803, 402, 2, 3191, 3192, 5, 771, 386, 2, 3192, 648, 3, 2, 2, 2, 3193, 3194, 5, 785, 393, 2, 3194, 3195, 5, 771, 386, 2, 3195, 3196, 5, 763, 382, 2, 3196, 3197, 5, 769, 385, 2, 3197, 650, 3, 2, 2, 2, 3198, 3199, 5, 787, 394, 2, 3199, 3200, 5, 763, 382, 2, 3200, 3201, 5, 809, 405, 2, 3201, 3202, 7, 97, 2, 2, 3202, 3203, 5, 793, 397, 2, 3203, 3204, 5, 763, 382, 2, 3204, 3205, 5, 797, 399, 2, 3205, 3206, 5, 801, 401, 2, 3206, 3207, 7, 97, 2, 2, 3207, 3208, 5, 799, 400, 2, 3208, 3209, 5, 801, 401, 2, 3209, 3210, 5, 797, 399, 2, 3210, 3211, 5, 779, 390, 2, 3211, 3212, 5, 789, 395, 2, 3212, 3213, 5, 775, 388, 2, 3213, 652, 3, 2, 2, 2, 3214, 3215, 5, 787, 394, 2, 3215, 3216, 5, 779, 390, 2, 3216, 3217, 5, 789, 395, 2, 3217, 3218, 7, 97, 2, 2, 3218, 3219, 5, 793, 397, 2, 3219, 3220, 5, 763, 382, 2, 3220, 3221, 5, 797, 399, 2, 3221, 3222, 5, 801, 401, 2, 3222, 3223, 7, 97, 2, 2, 3223, 3224, 5, 799, 400, 2, 3224, 3225, 5, 801, 401, 2, 3225, 3226, 5, 797, 399, 2, 3226, 3227, 5, 779, 390, 2, 3227, 3228, 5, 789, 395, 2, 3228, 3229, 5, 775, 388, 2, 3229, 654, 3, 2, 2, 2, 3230, 3231, 5, 787, 394, 2, 3231, 3232, 5, 763, 382, 2, 3232, 3233, 5, 809, 405, 2, 3233, 3234, 7, 97, 2, 2, 3234, 3235, 5, 793, 397, 2, 3235, 3236, 5, 763, 382, 2, 3236, 3237, 5, 797, 399, 2, 3237, 3238, 5, 801, 401, 2, 3238, 3239, 7, 97, 2, 2, 3239, 3240, 5, 779, 390, 2, 3240, 3241, 5, 789, 395, 2, 3241, 3242, 5, 801, 401, 2, 3242, 656, 3, 2, 2, 2, 3243, 3244, 5, 787, 394, 2, 3244, 3245, 5, 779, 390, 2, 3245, 3246, 5, 789, 395, 2, 3246, 3247, 7, 97, 2, 2, 3247, 3248, 5, 793, 397, 2, 3248, 3249, 5, 763, 382, 2, 3249, 3250, 5, 797, 399, 2, 3250, 3251, 5, 801, 401, 2, 3251, 3252, 7, 97, 2, 2, 3252, 3253, 5, 779, 390, 2, 3253, 3254, 5, 789, 395, 2, 3254, 3255, 5, 801, 401, 2, 3255, 658, 3, 2, 2, 2, 3256, 3257, 5, 787, 394, 2, 3257, 3258, 5, 763, 382, 2, 3258, 3259, 5, 809, 405, 2, 3259, 3260, 7, 97, 2, 2, 3260, 3261, 5, 793, 397, 2, 3261, 3262, 5, 763, 382, 2, 3262, 3263, 5, 797, 399, 2, 3263, 3264, 5, 801, 401, 2, 3264, 3265, 7, 97, 2, 2, 3265, 3266, 5, 769, 385, 2, 3266, 3267, 5, 763, 382, 2, 3267, 3268, 5, 801, 401, 2, 3268, 3269, 5, 771, 386, 2, 3269, 660, 3, 2, 2, 2, 3270, 3271, 5, 787, 394, 2, 3271, 3272, 5, 779, 390, 2, 3272, 3273, 5, 789, 395, 2, 3273, 3274, 7, 97, 2, 2, 3274, 3275, 5, 793, 397, 2, 3275, 3276, 5, 763, 382, 2, 3276, 3277, 5, 797, 399, 2, 3277, 3278, 5, 801, 401, 2, 3278, 3279, 7, 97, 2, 2, 3279, 3280, 5, 769, 385, 2, 3280, 3281, 5, 763, 382, 2, 3281, 3282, 5, 801, 401, 2, 3282, 3283, 5, 771, 386, 2, 3283, 662, 3, 2, 2, 2, 3284, 3285, 5, 793, 397, 2, 3285, 3286, 5, 763, 382, 2, 3286, 3287, 5, 797, 399, 2, 3287, 3288, 5, 801, 401, 2, 3288, 3289, 7, 97, 2, 2, 3289, 3290, 5, 767, 384, 2, 3290, 3291, 5, 791, 396, 2, 3291, 3292, 5, 803, 402, 2, 3292, 3293, 5, 789, 395, 2, 3293, 3294, 5, 801, 401, 2, 3294, 664, 3, 2, 2, 2, 3295, 3296, 5, 793, 397, 2, 3296, 3297, 5, 763, 382, 2, 3297, 3298, 5, 797, 399, 2, 3298, 3299, 5, 801, 401, 2, 3299, 3300, 7, 97, 2, 2, 3300, 3301, 5, 785, 393, 2, 3301, 3302, 5, 791, 396, 2, 3302, 3303, 5, 767, 384, 2, 3303, 666, 3, 2, 2, 2, 3304, 3305, 5, 797, 399, 2, 3305, 3306, 5, 763, 382, 2, 3306, 3307, 5, 789, 395, 2, 3307, 3308, 5, 783, 392, 2, 3308, 668, 3, 2, 2, 2, 3309, 3310, 5, 797, 399, 2, 3310, 3311, 5, 791, 396, 2, 3311, 3312, 5, 807, 404, 2, 3312, 3313, 7, 97, 2, 2, 3313, 3314, 5, 789, 395, 2, 3314, 3315, 5, 803, 402, 2, 3315, 3316, 5, 787, 394, 2, 3316, 3317, 5, 765, 383, 2, 3317, 3318, 5, 771, 386, 2, 3318, 3319, 5, 797, 399, 2, 3319, 670, 3, 2, 2, 2, 3320, 3321, 5, 799, 400, 2, 3321, 3322, 5, 801, 401, 2, 3322, 3323, 5, 769, 385, 2, 3323, 3324, 5, 771, 386, 2, 3324, 3325, 5, 805, 403, 2, 3325, 672, 3, 2, 2, 2, 3326, 3327, 5, 799, 400, 2, 3327, 3328, 5, 811, 406, 2, 3328, 3329, 5, 799, 400, 2, 3329, 3330, 5, 769, 385, 2, 3330, 3331, 5, 763, 382, 2, 3331, 3332, 5, 801, 401, 2, 3332, 3333, 5, 771, 386, 2, 3333, 674, 3, 2, 2, 2, 3334, 3335, 5, 805, 403, 2, 3335, 3336, 5, 763, 382, 2, 3336, 3337, 5, 797, 399, 2, 3337, 3338, 5, 779, 390, 2, 3338, 3339, 5, 763, 382, 2, 3339, 3340, 5, 789, 395, 2, 3340, 3341, 5, 767, 384, 2, 3341, 3342, 5, 771, 386, 2, 3342, 676, 3, 2, 2, 2, 3343, 3344, 5, 803, 402, 2, 3344, 3345, 5, 799, 400, 2, 3345, 3346, 5, 771, 386, 2, 3346, 3347, 5, 797, 399, 2, 3347, 678, 3, 2, 2, 2, 3348, 3349, 7, 45, 2, 2, 3349, 680, 3, 2, 2, 2, 3350, 3351, 7, 60, 2, 2, 3351, 682, 3, 2, 2, 2, 3352, 3353, 7, 46, 2, 2, 3353, 684, 3, 2, 2, 2, 3354, 3355, 7, 126, 2, 2, 3355, 3356, 7, 126, 2, 2, 3356, 686, 3, 2, 2, 2, 3357, 3358, 7, 49, 2, 2, 3358, 688, 3, 2, 2, 2, 3359, 3360, 7, 48, 2, 2, 3360, 690, 3, 2, 2, 2, 3361, 3362, 7, 48, 2, 2, 3362, 3363, 7, 48, 2, 2, 3363, 692, 3, 2, 2, 2, 3364, 3365, 7, 63, 2, 2, 3365, 694, 3, 2, 2, 2, 3366, 3367, 7, 63, 2, 2, 3367, 3368, 7, 63, 2, 2, 3368, 696, 3, 2, 2, 2, 3369, 3370, 7, 37, 2, 2, 3370, 698, 3, 2, 2, 2, 3371, 3372, 7, 35, 2, 2, 3372, 700, 3, 2, 2, 2, 3373, 3374, 7, 62, 2, 2, 3374, 3375, 7, 64, 2, 2, 3375, 702, 3, 2, 2, 2, 3376, 3377, 7, 35, 2, 2, 3377, 3378, 7, 63, 2, 2, 3378, 704, 3, 2, 2, 2, 3379, 3380, 7, 64, 2, 2, 3380, 706, 3, 2, 2, 2, 3381, 3382, 7, 64, 2, 2, 3382, 3383, 7, 63, 2, 2, 3383, 708, 3, 2, 2, 2, 3384, 3385, 7, 62, 2, 2, 3385, 710, 3, 2, 2, 2, 3386, 3387, 7, 62, 2, 2, 3387, 3388, 7, 63, 2, 2, 3388, 712, 3, 2, 2, 2, 3389, 3390, 7, 44, 2, 2, 3390, 714, 3, 2, 2, 2, 3391, 3392, 7, 39, 2, 2, 3392, 716, 3, 2, 2, 2, 3393, 3394, 7, 66, 2, 2, 3394, 718, 3, 2, 2, 2, 3395, 3396, 7, 125, 2, 2, 3396, 720, 3, 2, 2, 2, 3397, 3398, 7, 42, 2, 2, 3398, 722, 3, 2, 2, 2, 3399, 3400, 7, 93, 2, 2, 3400, 724, 3, 2, 2, 2, 3401, 3402, 7, 127, 2, 2, 3402, 726, 3, 2, 2, 2, 3403, 3404, 7, 43, 2, 2, 3404, 728, 3, 2, 2, 2, 3405, 3406, 7, 95, 2, 2, 3406, 730, 3, 2, 2, 2, 3407, 3408, 7, 61, 2, 2, 3408, 732, 3, 2, 2, 2, 3409, 3410, 7, 47, 2, 2, 3410, 734, 3, 2, 2, 2, 3411, 3412, 5, 755, 378, 2, 3412, 736, 3, 2, 2, 2, 3413, 3421, 7, 41, 2, 2, 3414, 3415, 7, 41, 2, 2, 3415, 3420, 7, 41, 2, 2, 3416, 3417, 7, 94, 2, 2, 3417, 3420, 7, 41, 2, 2, 3418, 3420, 10, 2, 2, 2, 3419, 3414, 3, 2, 2, 2, 3419, 3416, 3, 2, 2, 2, 3419, 3418, 3, 2, 2, 2, 3420, 3423, 3, 2, 2, 2, 3421, 3419, 3, 2, 2, 2, 3421, 3422, 3, 2, 2, 2, 3422, 3424, 3, 2, 2, 2, 3423, 3421, 3, 2, 2, 2, 3424, 3425, 7, 41, 2, 2, 3425, 738, 3, 2, 2, 2, 3426, 3431, 7, 36, 2, 2, 3427, 3430, 5, 757, 379, 2, 3428, 3430, 11, 2, 2, 2, 3429, 3427, 3, 2, 2, 2, 3429, 3428, 3, 2, 2, 2, 3430, 3433, 3, 2, 2, 2, 3431, 3432, 3, 2, 2, 2, 3431, 3429, 3, 2, 2, 2, 3432, 3434, 3, 2, 2, 2, 3433, 3431, 3, 2, 2, 2, 3434, 3435, 7, 36, 2, 2, 3435, 740, 3, 2, 2, 2, 3436, 3438, 5, 759, 380, 2, 3437, 3436, 3, 2, 2, 2, 3438, 3439, 3, 2, 2, 2, 3439, 3437, 3, 2, 2, 2, 3439, 3440, 3, 2, 2, 2, 3440, 742, 3, 2, 2, 2, 3441, 3443, 5, 759, 380, 2, 3442, 3441, 3, 2, 2, 2, 3443, 3444, 3, 2, 2, 2, 3444, 3442, 3, 2, 2, 2, 3444, 3445, 3, 2, 2, 2, 3445, 3446, 3, 2, 2, 2, 3446, 3447, 7, 48, 2, 2, 3447, 3451, 10, 3, 2, 2, 3448, 3450, 5, 759, 380, 2, 3449, 3448, 3, 2, 2, 2, 3450, 3453, 3, 2, 2, 2, 3451, 3449, 3, 2, 2, 2, 3451, 3452, 3, 2, 2, 2, 3452, 3461, 3, 2, 2, 2, 3453, 3451, 3, 2, 2, 2, 3454, 3456, 7, 48, 2, 2, 3455, 3457, 5, 759, 380, 2, 3456, 3455, 3, 2, 2, 2, 3457, 3458, 3, 2, 2, 2, 3458, 3456, 3, 2, 2, 2, 3458, 3459, 3, 2, 2, 2, 3459, 3461, 3, 2, 2, 2, 3460, 3442, 3, 2, 2, 2, 3460, 3454, 3, 2, 2, 2, 3461, 744, 3, 2, 2, 2, 3462, 3464, 5, 761, 381, 2, 3463, 3462, 3, 2, 2, 2, 3464, 3465, 3, 2, 2, 2, 3465, 3463, 3, 2, 2, 2, 3465, 3466, 3, 2, 2, 2, 3466, 3467, 3, 2, 2, 2, 3467, 3468, 8, 373, 2, 2, 3468, 746, 3, 2, 2, 2, 3469, 3470, 7, 49, 2, 2, 3470, 3471, 7, 44, 2, 2, 3471, 3475, 3, 2, 2, 2, 3472, 3474, 11, 2, 2, 2, 3473, 3472, 3, 2, 2, 2, 3474, 3477, 3, 2, 2, 2, 3475, 3476, 3, 2, 2, 2, 3475, 3473, 3, 2, 2, 2, 3476, 3478, 3, 2, 2, 2, 3477, 3475, 3, 2, 2, 2, 3478, 3479, 7, 44, 2, 2, 3479, 3480, 7, 49, 2, 2, 3480, 3481, 3, 2, 2, 2, 3481, 3482, 8, 374, 3, 2, 3482, 748, 3, 2, 2, 2, 3483, 3484, 7, 47, 2, 2, 3484, 3488, 7, 47, 2, 2, 3485, 3486, 7, 49, 2, 2, 3486, 3488, 7, 49, 2, 2, 3487, 3483, 3, 2, 2, 2, 3487, 3485, 3, 2, 2, 2, 3488, 3492, 3, 2, 2, 2, 3489, 3491, 11, 2, 2, 2, 3490, 3489, 3, 2, 2, 2, 3491, 3494, 3, 2, 2, 2, 3492, 3493, 3, 2, 2, 2, 3492, 3490, 3, 2, 2, 2, 3493, 3496, 3, 2, 2, 2, 3494, 3492, 3, 2, 2, 2, 3495, 3497, 7, 15, 2, 2, 3496, 3495, 3, 2, 2, 2, 3496, 3497, 3, 2, 2, 2, 3497, 3498, 3, 2, 2, 2, 3498, 3499, 7, 12, 2, 2, 3499, 3500, 3, 2, 2, 2, 3500, 3501, 8, 375, 3, 2, 3501, 750, 3, 2, 2, 2, 3502, 3503, 9, 4, 2, 2, 3503, 3505, 7, 60, 2, 2, 3504, 3506, 7, 94, 2, 2, 3505, 3504, 3, 2, 2, 2, 3505, 3506, 3, 2, 2, 2, 3506, 3508, 3, 2, 2, 2, 3507, 3502, 3, 2, 2, 2, 3507, 3508, 3, 2, 2, 2, 3508, 3509, 3, 2, 2, 2, 3509, 3514, 5, 735, 368, 2, 3510, 3511, 7, 94, 2, 2, 3511, 3513, 5, 735, 368, 2, 3512, 3510, 3, 2, 2, 2, 3513, 3516, 3, 2, 2, 2, 3514, 3512, 3, 2, 2, 2, 3514, 3515, 3, 2, 2, 2, 3515, 752, 3, 2, 2, 2, 3516, 3514, 3, 2, 2, 2, 3517, 3521, 9, 4, 2, 2, 3518, 3521, 5, 759, 380, 2, 3519, 3521, 7, 97, 2, 2, 3520, 3517, 3, 2, 2, 2, 3520, 3518, 3, 2, 2, 2, 3520, 3519, 3, 2, 2, 2, 3521, 3524, 3, 2, 2, 2, 3522, 3520, 3, 2, 2, 2, 3522, 3523, 3, 2, 2, 2, 3523, 3525, 3, 2, 2, 2, 3524, 3522, 3, 2, 2, 2, 3525, 3526, 7, 60, 2, 2, 3526, 754, 3, 2, 2, 2, 3527, 3533, 9, 4, 2, 2, 3528, 3532, 9, 4, 2, 2, 3529, 3532, 5, 759, 380, 2, 3530, 3532, 7, 97, 2, 2, 3531, 3528, 3, 2, 2, 2, 3531, 3529, 3, 2, 2, 2, 3531, 3530, 3, 2, 2, 2, 3532, 3535, 3, 2, 2, 2, 3533, 3531, 3, 2, 2, 2, 3533, 3534, 3, 2, 2, 2, 3534, 3578, 3, 2, 2, 2, 3535, 3533, 3, 2, 2, 2, 3536, 3537, 7, 38, 2, 2, 3537, 3541, 7, 125, 2, 2, 3538, 3540, 11, 2, 2, 2, 3539, 3538, 3, 2, 2, 2, 3540, 3543, 3, 2, 2, 2, 3541, 3542, 3, 2, 2, 2, 3541, 3539, 3, 2, 2, 2, 3542, 3544, 3, 2, 2, 2, 3543, 3541, 3, 2, 2, 2, 3544, 3578, 7, 127, 2, 2, 3545, 3549, 9, 5, 2, 2, 3546, 3550, 9, 4, 2, 2, 3547, 3550, 5, 759, 380, 2, 3548, 3550, 9, 5, 2, 2, 3549, 3546, 3, 2, 2, 2, 3549, 3547, 3, 2, 2, 2, 3549, 3548, 3, 2, 2, 2, 3550, 3551, 3, 2, 2, 2, 3551, 3549, 3, 2, 2, 2, 3551, 3552, 3, 2, 2, 2, 3552, 3578, 3, 2, 2, 2, 3553, 3557, 7, 36, 2, 2, 3554, 3556, 11, 2, 2, 2, 3555, 3554, 3, 2, 2, 2, 3556, 3559, 3, 2, 2, 2, 3557, 3558, 3, 2, 2, 2, 3557, 3555, 3, 2, 2, 2, 3558, 3560, 3, 2, 2, 2, 3559, 3557, 3, 2, 2, 2, 3560, 3578, 7, 36, 2, 2, 3561, 3565, 7, 93, 2, 2, 3562, 3564, 11, 2, 2, 2, 3563, 3562, 3, 2, 2, 2, 3564, 3567, 3, 2, 2, 2, 3565, 3566, 3, 2, 2, 2, 3565, 3563, 3, 2, 2, 2, 3566, 3568, 3, 2, 2, 2, 3567, 3565, 3, 2, 2, 2, 3568, 3578, 7, 95, 2, 2, 3569, 3573, 7, 98, 2, 2, 3570, 3572, 11, 2, 2, 2, 3571, 3570, 3, 2, 2, 2, 3572, 3575, 3, 2, 2, 2, 3573, 3574, 3, 2, 2, 2, 3573, 3571, 3, 2, 2, 2, 3574, 3576, 3, 2, 2, 2, 3575, 3573, 3, 2, 2, 2, 3576, 3578, 7, 98, 2, 2, 3577, 3527, 3, 2, 2, 2, 3577, 3536, 3, 2, 2, 2, 3577, 3545, 3, 2, 2, 2, 3577, 3553, 3, 2, 2, 2, 3577, 3561, 3, 2, 2, 2, 3577, 3569, 3, 2, 2, 2, 3578, 756, 3, 2, 2, 2, 3579, 3580, 7, 36, 2, 2, 3580, 3584, 7, 36, 2, 2, 3581, 3582, 7, 94, 2, 2, 3582, 3584, 7, 36, 2, 2, 3583, 3579, 3, 2, 2, 2, 3583, 3581, 3, 2, 2, 2, 3584, 758, 3, 2, 2, 2, 3585, 3586, 9, 6, 2, 2, 3586, 760, 3, 2, 2, 2, 3587, 3588, 9, 7, 2, 2, 3588, 762, 3, 2, 2, 2, 3589, 3590, 9, 8, 2, 2, 3590, 764, 3, 2, 2, 2, 3591, 3592, 9, 9, 2, 2, 3592, 766, 3, 2, 2, 2, 3593, 3594, 9, 10, 2, 2, 3594, 768, 3, 2, 2, 2, 3595, 3596, 9, 11, 2, 2, 3596, 770, 3, 2, 2, 2, 3597, 3598, 9, 12, 2, 2, 3598, 772, 3, 2, 2, 2, 3599, 3600, 9, 13, 2, 2, 3600, 774, 3, 2, 2, 2, 3601, 3602, 9, 14, 2, 2, 3602, 776, 3, 2, 2, 2, 3603, 3604, 9, 15, 2, 2, 3604, 778, 3, 2, 2, 2, 3605, 3606, 9, 16, 2, 2, 3606, 780, 3, 2, 2, 2, 3607, 3608, 9, 17, 2, 2, 3608, 782, 3, 2, 2, 2, 3609, 3610, 9, 18, 2, 2, 3610, 784, 3, 2, 2, 2, 3611, 3612, 9, 19, 2, 2, 3612, 786, 3, 2, 2, 2, 3613, 3614, 9, 20, 2, 2, 3614, 788, 3, 2, 2, 2, 3615, 3616, 9, 21, 2, 2, 3616, 790, 3, 2, 2, 2, 3617, 3618, 9, 22, 2, 2, 3618, 792, 3, 2, 2, 2, 3619, 3620, 9, 23, 2, 2, 3620, 794, 3, 2, 2, 2, 3621, 3622, 9, 24, 2, 2, 3622, 796, 3, 2, 2, 2, 3623, 3624, 9, 25, 2, 2, 3624, 798, 3, 2, 2, 2, 3625, 3626, 9, 26, 2, 2, 3626, 800, 3, 2, 2, 2, 3627, 3628, 9, 27, 2, 2, 3628, 802, 3, 2, 2, 2, 3629, 3630, 9, 28, 2, 2, 3630, 804, 3, 2, 2, 2, 3631, 3632, 9, 29, 2, 2, 3632, 806, 3, 2, 2, 2, 3633, 3634, 9, 30, 2, 2, 3634, 808, 3, 2, 2, 2, 3635, 3636, 9, 31, 2, 2, 3636, 810, 3, 2, 2, 2, 3637, 3638, 9, 32, 2, 2, 3638, 812, 3, 2, 2, 2, 3639, 3640, 9, 33, 2, 2, 3640, 814, 3, 2, 2, 2, 32, 2, 3419, 3421, 3429, 3431, 3439, 3444, 3451, 3458, 3460, 3465, 3475, 3487, 3492, 3496, 3505, 3507, 3514, 3520, 3522, 3531, 3533, 3541, 3549, 3551, 3557, 3565, 3573, 3577, 3583, 4, 8, 2, 2, 2, 3, 2] \ No newline at end of file diff --git a/src/lib/hive/HiveSqlLexer.js b/src/lib/hive/HiveSqlLexer.js index 748797c..8a84c74 100644 --- a/src/lib/hive/HiveSqlLexer.js +++ b/src/lib/hive/HiveSqlLexer.js @@ -1,37 +1,2424 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSqlLexer.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); var serializedATN = ["\u0003\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964", - "\u0002\f+\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004\u0004", - "\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t\u0007", - "\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0003\u0002", - "\u0003\u0002\u0003\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0005", - "\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\b", - "\u0003\b\u0003\t\u0003\t\u0003\n\u0003\n\u0003\u000b\u0003\u000b\u0002", - "\u0002\f\u0003\u0003\u0005\u0004\u0007\u0005\t\u0006\u000b\u0007\r\b", - "\u000f\t\u0011\n\u0013\u000b\u0015\f\u0003\u0002\u0002\u0002*\u0002", - "\u0003\u0003\u0002\u0002\u0002\u0002\u0005\u0003\u0002\u0002\u0002\u0002", - "\u0007\u0003\u0002\u0002\u0002\u0002\t\u0003\u0002\u0002\u0002\u0002", - "\u000b\u0003\u0002\u0002\u0002\u0002\r\u0003\u0002\u0002\u0002\u0002", - "\u000f\u0003\u0002\u0002\u0002\u0002\u0011\u0003\u0002\u0002\u0002\u0002", - "\u0013\u0003\u0002\u0002\u0002\u0002\u0015\u0003\u0002\u0002\u0002\u0003", - "\u0017\u0003\u0002\u0002\u0002\u0005\u0019\u0003\u0002\u0002\u0002\u0007", - "\u001b\u0003\u0002\u0002\u0002\t\u001d\u0003\u0002\u0002\u0002\u000b", - "\u001f\u0003\u0002\u0002\u0002\r!\u0003\u0002\u0002\u0002\u000f#\u0003", - "\u0002\u0002\u0002\u0011%\u0003\u0002\u0002\u0002\u0013\'\u0003\u0002", - "\u0002\u0002\u0015)\u0003\u0002\u0002\u0002\u0017\u0018\u0007B\u0002", - "\u0002\u0018\u0004\u0003\u0002\u0002\u0002\u0019\u001a\u0007%\u0002", - "\u0002\u001a\u0006\u0003\u0002\u0002\u0002\u001b\u001c\u00071\u0002", - "\u0002\u001c\b\u0003\u0002\u0002\u0002\u001d\u001e\u0007\'\u0002\u0002", - "\u001e\n\u0003\u0002\u0002\u0002\u001f \u00070\u0002\u0002 \f\u0003", - "\u0002\u0002\u0002!\"\u0007,\u0002\u0002\"\u000e\u0003\u0002\u0002\u0002", - "#$\u0007#\u0002\u0002$\u0010\u0003\u0002\u0002\u0002%&\u0007=\u0002", - "\u0002&\u0012\u0003\u0002\u0002\u0002\'(\u0007/\u0002\u0002(\u0014\u0003", - "\u0002\u0002\u0002)*\u0007-\u0002\u0002*\u0016\u0003\u0002\u0002\u0002", - "\u0003\u0002\u0002"].join(""); + "\u0002\u017a\u0e39\b\u0001\u0004\u0002\t\u0002\u0004\u0003\t\u0003\u0004", + "\u0004\t\u0004\u0004\u0005\t\u0005\u0004\u0006\t\u0006\u0004\u0007\t", + "\u0007\u0004\b\t\b\u0004\t\t\t\u0004\n\t\n\u0004\u000b\t\u000b\u0004", + "\f\t\f\u0004\r\t\r\u0004\u000e\t\u000e\u0004\u000f\t\u000f\u0004\u0010", + "\t\u0010\u0004\u0011\t\u0011\u0004\u0012\t\u0012\u0004\u0013\t\u0013", + "\u0004\u0014\t\u0014\u0004\u0015\t\u0015\u0004\u0016\t\u0016\u0004\u0017", + "\t\u0017\u0004\u0018\t\u0018\u0004\u0019\t\u0019\u0004\u001a\t\u001a", + "\u0004\u001b\t\u001b\u0004\u001c\t\u001c\u0004\u001d\t\u001d\u0004\u001e", + "\t\u001e\u0004\u001f\t\u001f\u0004 \t \u0004!\t!\u0004\"\t\"\u0004#", + "\t#\u0004$\t$\u0004%\t%\u0004&\t&\u0004\'\t\'\u0004(\t(\u0004)\t)\u0004", + "*\t*\u0004+\t+\u0004,\t,\u0004-\t-\u0004.\t.\u0004/\t/\u00040\t0\u0004", + "1\t1\u00042\t2\u00043\t3\u00044\t4\u00045\t5\u00046\t6\u00047\t7\u0004", + "8\t8\u00049\t9\u0004:\t:\u0004;\t;\u0004<\t<\u0004=\t=\u0004>\t>\u0004", + "?\t?\u0004@\t@\u0004A\tA\u0004B\tB\u0004C\tC\u0004D\tD\u0004E\tE\u0004", + "F\tF\u0004G\tG\u0004H\tH\u0004I\tI\u0004J\tJ\u0004K\tK\u0004L\tL\u0004", + "M\tM\u0004N\tN\u0004O\tO\u0004P\tP\u0004Q\tQ\u0004R\tR\u0004S\tS\u0004", + "T\tT\u0004U\tU\u0004V\tV\u0004W\tW\u0004X\tX\u0004Y\tY\u0004Z\tZ\u0004", + "[\t[\u0004\\\t\\\u0004]\t]\u0004^\t^\u0004_\t_\u0004`\t`\u0004a\ta\u0004", + "b\tb\u0004c\tc\u0004d\td\u0004e\te\u0004f\tf\u0004g\tg\u0004h\th\u0004", + "i\ti\u0004j\tj\u0004k\tk\u0004l\tl\u0004m\tm\u0004n\tn\u0004o\to\u0004", + "p\tp\u0004q\tq\u0004r\tr\u0004s\ts\u0004t\tt\u0004u\tu\u0004v\tv\u0004", + "w\tw\u0004x\tx\u0004y\ty\u0004z\tz\u0004{\t{\u0004|\t|\u0004}\t}\u0004", + "~\t~\u0004\u007f\t\u007f\u0004\u0080\t\u0080\u0004\u0081\t\u0081\u0004", + "\u0082\t\u0082\u0004\u0083\t\u0083\u0004\u0084\t\u0084\u0004\u0085\t", + "\u0085\u0004\u0086\t\u0086\u0004\u0087\t\u0087\u0004\u0088\t\u0088\u0004", + "\u0089\t\u0089\u0004\u008a\t\u008a\u0004\u008b\t\u008b\u0004\u008c\t", + "\u008c\u0004\u008d\t\u008d\u0004\u008e\t\u008e\u0004\u008f\t\u008f\u0004", + "\u0090\t\u0090\u0004\u0091\t\u0091\u0004\u0092\t\u0092\u0004\u0093\t", + "\u0093\u0004\u0094\t\u0094\u0004\u0095\t\u0095\u0004\u0096\t\u0096\u0004", + "\u0097\t\u0097\u0004\u0098\t\u0098\u0004\u0099\t\u0099\u0004\u009a\t", + "\u009a\u0004\u009b\t\u009b\u0004\u009c\t\u009c\u0004\u009d\t\u009d\u0004", + "\u009e\t\u009e\u0004\u009f\t\u009f\u0004\u00a0\t\u00a0\u0004\u00a1\t", + "\u00a1\u0004\u00a2\t\u00a2\u0004\u00a3\t\u00a3\u0004\u00a4\t\u00a4\u0004", + "\u00a5\t\u00a5\u0004\u00a6\t\u00a6\u0004\u00a7\t\u00a7\u0004\u00a8\t", + "\u00a8\u0004\u00a9\t\u00a9\u0004\u00aa\t\u00aa\u0004\u00ab\t\u00ab\u0004", + "\u00ac\t\u00ac\u0004\u00ad\t\u00ad\u0004\u00ae\t\u00ae\u0004\u00af\t", + "\u00af\u0004\u00b0\t\u00b0\u0004\u00b1\t\u00b1\u0004\u00b2\t\u00b2\u0004", + "\u00b3\t\u00b3\u0004\u00b4\t\u00b4\u0004\u00b5\t\u00b5\u0004\u00b6\t", + "\u00b6\u0004\u00b7\t\u00b7\u0004\u00b8\t\u00b8\u0004\u00b9\t\u00b9\u0004", + "\u00ba\t\u00ba\u0004\u00bb\t\u00bb\u0004\u00bc\t\u00bc\u0004\u00bd\t", + "\u00bd\u0004\u00be\t\u00be\u0004\u00bf\t\u00bf\u0004\u00c0\t\u00c0\u0004", + "\u00c1\t\u00c1\u0004\u00c2\t\u00c2\u0004\u00c3\t\u00c3\u0004\u00c4\t", + "\u00c4\u0004\u00c5\t\u00c5\u0004\u00c6\t\u00c6\u0004\u00c7\t\u00c7\u0004", + "\u00c8\t\u00c8\u0004\u00c9\t\u00c9\u0004\u00ca\t\u00ca\u0004\u00cb\t", + "\u00cb\u0004\u00cc\t\u00cc\u0004\u00cd\t\u00cd\u0004\u00ce\t\u00ce\u0004", + "\u00cf\t\u00cf\u0004\u00d0\t\u00d0\u0004\u00d1\t\u00d1\u0004\u00d2\t", + "\u00d2\u0004\u00d3\t\u00d3\u0004\u00d4\t\u00d4\u0004\u00d5\t\u00d5\u0004", + "\u00d6\t\u00d6\u0004\u00d7\t\u00d7\u0004\u00d8\t\u00d8\u0004\u00d9\t", + "\u00d9\u0004\u00da\t\u00da\u0004\u00db\t\u00db\u0004\u00dc\t\u00dc\u0004", + "\u00dd\t\u00dd\u0004\u00de\t\u00de\u0004\u00df\t\u00df\u0004\u00e0\t", + "\u00e0\u0004\u00e1\t\u00e1\u0004\u00e2\t\u00e2\u0004\u00e3\t\u00e3\u0004", + "\u00e4\t\u00e4\u0004\u00e5\t\u00e5\u0004\u00e6\t\u00e6\u0004\u00e7\t", + "\u00e7\u0004\u00e8\t\u00e8\u0004\u00e9\t\u00e9\u0004\u00ea\t\u00ea\u0004", + "\u00eb\t\u00eb\u0004\u00ec\t\u00ec\u0004\u00ed\t\u00ed\u0004\u00ee\t", + "\u00ee\u0004\u00ef\t\u00ef\u0004\u00f0\t\u00f0\u0004\u00f1\t\u00f1\u0004", + "\u00f2\t\u00f2\u0004\u00f3\t\u00f3\u0004\u00f4\t\u00f4\u0004\u00f5\t", + "\u00f5\u0004\u00f6\t\u00f6\u0004\u00f7\t\u00f7\u0004\u00f8\t\u00f8\u0004", + "\u00f9\t\u00f9\u0004\u00fa\t\u00fa\u0004\u00fb\t\u00fb\u0004\u00fc\t", + "\u00fc\u0004\u00fd\t\u00fd\u0004\u00fe\t\u00fe\u0004\u00ff\t\u00ff\u0004", + "\u0100\t\u0100\u0004\u0101\t\u0101\u0004\u0102\t\u0102\u0004\u0103\t", + "\u0103\u0004\u0104\t\u0104\u0004\u0105\t\u0105\u0004\u0106\t\u0106\u0004", + "\u0107\t\u0107\u0004\u0108\t\u0108\u0004\u0109\t\u0109\u0004\u010a\t", + "\u010a\u0004\u010b\t\u010b\u0004\u010c\t\u010c\u0004\u010d\t\u010d\u0004", + "\u010e\t\u010e\u0004\u010f\t\u010f\u0004\u0110\t\u0110\u0004\u0111\t", + "\u0111\u0004\u0112\t\u0112\u0004\u0113\t\u0113\u0004\u0114\t\u0114\u0004", + "\u0115\t\u0115\u0004\u0116\t\u0116\u0004\u0117\t\u0117\u0004\u0118\t", + "\u0118\u0004\u0119\t\u0119\u0004\u011a\t\u011a\u0004\u011b\t\u011b\u0004", + "\u011c\t\u011c\u0004\u011d\t\u011d\u0004\u011e\t\u011e\u0004\u011f\t", + "\u011f\u0004\u0120\t\u0120\u0004\u0121\t\u0121\u0004\u0122\t\u0122\u0004", + "\u0123\t\u0123\u0004\u0124\t\u0124\u0004\u0125\t\u0125\u0004\u0126\t", + "\u0126\u0004\u0127\t\u0127\u0004\u0128\t\u0128\u0004\u0129\t\u0129\u0004", + "\u012a\t\u012a\u0004\u012b\t\u012b\u0004\u012c\t\u012c\u0004\u012d\t", + "\u012d\u0004\u012e\t\u012e\u0004\u012f\t\u012f\u0004\u0130\t\u0130\u0004", + "\u0131\t\u0131\u0004\u0132\t\u0132\u0004\u0133\t\u0133\u0004\u0134\t", + "\u0134\u0004\u0135\t\u0135\u0004\u0136\t\u0136\u0004\u0137\t\u0137\u0004", + "\u0138\t\u0138\u0004\u0139\t\u0139\u0004\u013a\t\u013a\u0004\u013b\t", + "\u013b\u0004\u013c\t\u013c\u0004\u013d\t\u013d\u0004\u013e\t\u013e\u0004", + "\u013f\t\u013f\u0004\u0140\t\u0140\u0004\u0141\t\u0141\u0004\u0142\t", + "\u0142\u0004\u0143\t\u0143\u0004\u0144\t\u0144\u0004\u0145\t\u0145\u0004", + "\u0146\t\u0146\u0004\u0147\t\u0147\u0004\u0148\t\u0148\u0004\u0149\t", + "\u0149\u0004\u014a\t\u014a\u0004\u014b\t\u014b\u0004\u014c\t\u014c\u0004", + "\u014d\t\u014d\u0004\u014e\t\u014e\u0004\u014f\t\u014f\u0004\u0150\t", + "\u0150\u0004\u0151\t\u0151\u0004\u0152\t\u0152\u0004\u0153\t\u0153\u0004", + "\u0154\t\u0154\u0004\u0155\t\u0155\u0004\u0156\t\u0156\u0004\u0157\t", + "\u0157\u0004\u0158\t\u0158\u0004\u0159\t\u0159\u0004\u015a\t\u015a\u0004", + "\u015b\t\u015b\u0004\u015c\t\u015c\u0004\u015d\t\u015d\u0004\u015e\t", + "\u015e\u0004\u015f\t\u015f\u0004\u0160\t\u0160\u0004\u0161\t\u0161\u0004", + "\u0162\t\u0162\u0004\u0163\t\u0163\u0004\u0164\t\u0164\u0004\u0165\t", + "\u0165\u0004\u0166\t\u0166\u0004\u0167\t\u0167\u0004\u0168\t\u0168\u0004", + "\u0169\t\u0169\u0004\u016a\t\u016a\u0004\u016b\t\u016b\u0004\u016c\t", + "\u016c\u0004\u016d\t\u016d\u0004\u016e\t\u016e\u0004\u016f\t\u016f\u0004", + "\u0170\t\u0170\u0004\u0171\t\u0171\u0004\u0172\t\u0172\u0004\u0173\t", + "\u0173\u0004\u0174\t\u0174\u0004\u0175\t\u0175\u0004\u0176\t\u0176\u0004", + "\u0177\t\u0177\u0004\u0178\t\u0178\u0004\u0179\t\u0179\u0004\u017a\t", + "\u017a\u0004\u017b\t\u017b\u0004\u017c\t\u017c\u0004\u017d\t\u017d\u0004", + "\u017e\t\u017e\u0004\u017f\t\u017f\u0004\u0180\t\u0180\u0004\u0181\t", + "\u0181\u0004\u0182\t\u0182\u0004\u0183\t\u0183\u0004\u0184\t\u0184\u0004", + "\u0185\t\u0185\u0004\u0186\t\u0186\u0004\u0187\t\u0187\u0004\u0188\t", + "\u0188\u0004\u0189\t\u0189\u0004\u018a\t\u018a\u0004\u018b\t\u018b\u0004", + "\u018c\t\u018c\u0004\u018d\t\u018d\u0004\u018e\t\u018e\u0004\u018f\t", + "\u018f\u0004\u0190\t\u0190\u0004\u0191\t\u0191\u0004\u0192\t\u0192\u0004", + "\u0193\t\u0193\u0004\u0194\t\u0194\u0004\u0195\t\u0195\u0004\u0196\t", + "\u0196\u0004\u0197\t\u0197\u0003\u0002\u0003\u0002\u0003\u0002\u0003", + "\u0002\u0003\u0002\u0003\u0002\u0003\u0002\u0003\u0003\u0003\u0003\u0003", + "\u0003\u0003\u0003\u0003\u0004\u0003\u0004\u0003\u0004\u0003\u0004\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003\u0005\u0003", + "\u0005\u0003\u0005\u0003\u0005\u0003\u0006\u0003\u0006\u0003\u0006\u0003", + "\u0006\u0003\u0006\u0003\u0006\u0003\u0007\u0003\u0007\u0003\u0007\u0003", + "\u0007\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003\b\u0003", + "\b\u0003\b\u0003\b\u0003\b\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003", + "\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\t\u0003\n\u0003", + "\n\u0003\n\u0003\u000b\u0003\u000b\u0003\u000b\u0003\u000b\u0003\f\u0003", + "\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003\f\u0003", + "\r\u0003\r\u0003\r\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003", + "\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000e\u0003\u000f\u0003", + "\u000f\u0003\u000f\u0003\u000f\u0003\u0010\u0003\u0010\u0003\u0010\u0003", + "\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003\u0010\u0003", + "\u0010\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003\u0011\u0003", + "\u0011\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003\u0012\u0003", + "\u0012\u0003\u0012\u0003\u0012\u0003\u0013\u0003\u0013\u0003\u0013\u0003", + "\u0013\u0003\u0013\u0003\u0013\u0003\u0013\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003\u0014\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003\u0015\u0003", + "\u0015\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003", + "\u0016\u0003\u0016\u0003\u0016\u0003\u0016\u0003\u0017\u0003\u0017\u0003", + "\u0017\u0003\u0017\u0003\u0018\u0003\u0018\u0003\u0018\u0003\u0018\u0003", + "\u0018\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003\u0019\u0003", + "\u0019\u0003\u001a\u0003\u001a\u0003\u001a\u0003\u001b\u0003\u001b\u0003", + "\u001b\u0003\u001b\u0003\u001b\u0003\u001c\u0003\u001c\u0003\u001c\u0003", + "\u001c\u0003\u001c\u0003\u001d\u0003\u001d\u0003\u001d\u0003\u001d\u0003", + "\u001d\u0003\u001d\u0003\u001d\u0003\u001e\u0003\u001e\u0003\u001e\u0003", + "\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001e\u0003\u001f\u0003", + "\u001f\u0003\u001f\u0003\u001f\u0003\u001f\u0003 \u0003 \u0003 \u0003", + " \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003 \u0003", + "!\u0003!\u0003!\u0003!\u0003!\u0003\"\u0003\"\u0003\"\u0003\"\u0003", + "\"\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003#\u0003", + "#\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003$\u0003%\u0003", + "%\u0003%\u0003%\u0003%\u0003%\u0003%\u0003&\u0003&\u0003&\u0003&\u0003", + "&\u0003&\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003\'\u0003", + "\'\u0003\'\u0003\'\u0003(\u0003(\u0003(\u0003(\u0003)\u0003)\u0003)", + "\u0003)\u0003)\u0003)\u0003)\u0003)\u0003*\u0003*\u0003*\u0003*\u0003", + "*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003*\u0003+\u0003+\u0003+\u0003", + "+\u0003+\u0003+\u0003+\u0003,\u0003,\u0003,\u0003,\u0003,\u0003,\u0003", + ",\u0003,\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003-\u0003", + "-\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003.\u0003/\u0003/\u0003", + "/\u0003/\u0003/\u0003/\u0003/\u0003/\u0003/\u00030\u00030\u00030\u0003", + "0\u00030\u00030\u00030\u00031\u00031\u00031\u00031\u00031\u00031\u0003", + "1\u00031\u00031\u00031\u00032\u00032\u00032\u00032\u00032\u00032\u0003", + "2\u00032\u00032\u00032\u00032\u00033\u00033\u00033\u00033\u00033\u0003", + "3\u00033\u00033\u00033\u00034\u00034\u00034\u00034\u00034\u00035\u0003", + "5\u00035\u00035\u00035\u00035\u00036\u00036\u00036\u00036\u00036\u0003", + "6\u00036\u00036\u00036\u00036\u00037\u00037\u00037\u00037\u00037\u0003", + "7\u00037\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u00038\u0003", + "8\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u00039\u0003:\u0003", + ":\u0003:\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003;\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003<\u0003", + "<\u0003<\u0003<\u0003<\u0003<\u0003=\u0003=\u0003=\u0003=\u0003=\u0003", + "=\u0003=\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003>\u0003", + ">\u0003?\u0003?\u0003?\u0003?\u0003?\u0003@\u0003@\u0003@\u0003@\u0003", + "@\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003A\u0003", + "B\u0003B\u0003B\u0003B\u0003C\u0003C\u0003C\u0003C\u0003C\u0003D\u0003", + "D\u0003D\u0003D\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003E\u0003", + "E\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003F\u0003G\u0003", + "G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003G\u0003H\u0003H\u0003H\u0003", + "H\u0003H\u0003H\u0003H\u0003H\u0003H\u0003I\u0003I\u0003I\u0003I\u0003", + "I\u0003I\u0003I\u0003I\u0003J\u0003J\u0003J\u0003J\u0003J\u0003J\u0003", + "J\u0003J\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003K\u0003", + "K\u0003K\u0003K\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003L\u0003", + "M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003M\u0003", + "N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003N\u0003", + "O\u0003O\u0003O\u0003O\u0003O\u0003P\u0003P\u0003P\u0003P\u0003P\u0003", + "P\u0003P\u0003P\u0003P\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003", + "Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003Q\u0003R\u0003R\u0003R\u0003R\u0003", + "S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003S\u0003", + "T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003T\u0003U\u0003", + "U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003U\u0003", + "V\u0003V\u0003V\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003W\u0003", + "X\u0003X\u0003X\u0003X\u0003X\u0003Y\u0003Y\u0003Y\u0003Y\u0003Y\u0003", + "Y\u0003Y\u0003Y\u0003Z\u0003Z\u0003Z\u0003Z\u0003Z\u0003[\u0003[\u0003", + "[\u0003[\u0003[\u0003[\u0003[\u0003\\\u0003\\\u0003\\\u0003\\\u0003", + "\\\u0003\\\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003]\u0003^\u0003", + "^\u0003^\u0003^\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003_\u0003", + "`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003`\u0003a\u0003a\u0003", + "a\u0003a\u0003a\u0003a\u0003a\u0003b\u0003b\u0003b\u0003b\u0003b\u0003", + "c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003c\u0003d\u0003d\u0003", + "d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003d\u0003e\u0003e\u0003", + "e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003e\u0003f\u0003f\u0003", + "f\u0003f\u0003f\u0003f\u0003f\u0003g\u0003g\u0003g\u0003g\u0003g\u0003", + "h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003h\u0003i\u0003", + "i\u0003i\u0003i\u0003i\u0003i\u0003j\u0003j\u0003j\u0003j\u0003j\u0003", + "j\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0003k\u0003l\u0003l\u0003", + "l\u0003l\u0003l\u0003m\u0003m\u0003m\u0003m\u0003m\u0003m\u0003n\u0003", + "n\u0003n\u0003n\u0003n\u0003n\u0003o\u0003o\u0003o\u0003o\u0003p\u0003", + "p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003p\u0003q\u0003q\u0003q\u0003", + "q\u0003q\u0003q\u0003q\u0003r\u0003r\u0003r\u0003r\u0003r\u0003r\u0003", + "s\u0003s\u0003s\u0003s\u0003s\u0003t\u0003t\u0003t\u0003t\u0003t\u0003", + "u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003u\u0003v\u0003", + "v\u0003v\u0003v\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003w\u0003", + "x\u0003x\u0003x\u0003y\u0003y\u0003y\u0003y\u0003y\u0003y\u0003z\u0003", + "z\u0003z\u0003z\u0003z\u0003z\u0003{\u0003{\u0003{\u0003{\u0003{\u0003", + "{\u0003{\u0003{\u0003|\u0003|\u0003|\u0003|\u0003|\u0003}\u0003}\u0003", + "}\u0003}\u0003}\u0003}\u0003}\u0003~\u0003~\u0003~\u0003~\u0003~\u0003", + "\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u007f\u0003\u0080\u0003", + "\u0080\u0003\u0080\u0003\u0080\u0003\u0080\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003\u0081\u0003", + "\u0081\u0003\u0082\u0003\u0082\u0003\u0082\u0003\u0083\u0003\u0083\u0003", + "\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0083\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003\u0084\u0003", + "\u0084\u0003\u0084\u0003\u0084\u0003\u0085\u0003\u0085\u0003\u0085\u0003", + "\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003\u0086\u0003", + "\u0086\u0003\u0086\u0003\u0087\u0003\u0087\u0003\u0087\u0003\u0087\u0003", + "\u0087\u0003\u0087\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003", + "\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0088\u0003\u0089\u0003", + "\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u0089\u0003\u008a\u0003", + "\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008a\u0003\u008b\u0003", + "\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003\u008b\u0003", + "\u008c\u0003\u008c\u0003\u008c\u0003\u008c\u0003\u008d\u0003\u008d\u0003", + "\u008d\u0003\u008d\u0003\u008d\u0003\u008e\u0003\u008e\u0003\u008e\u0003", + "\u008e\u0003\u008e\u0003\u008f\u0003\u008f\u0003\u008f\u0003\u008f\u0003", + "\u008f\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003\u0090\u0003", + "\u0090\u0003\u0090\u0003\u0090\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003\u0091\u0003", + "\u0091\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003", + "\u0092\u0003\u0092\u0003\u0092\u0003\u0092\u0003\u0093\u0003\u0093\u0003", + "\u0093\u0003\u0093\u0003\u0093\u0003\u0094\u0003\u0094\u0003\u0094\u0003", + "\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0094\u0003\u0095\u0003", + "\u0095\u0003\u0095\u0003\u0096\u0003\u0096\u0003\u0096\u0003\u0096\u0003", + "\u0096\u0003\u0096\u0003\u0096\u0003\u0097\u0003\u0097\u0003\u0097\u0003", + "\u0097\u0003\u0097\u0003\u0097\u0003\u0098\u0003\u0098\u0003\u0098\u0003", + "\u0098\u0003\u0098\u0003\u0099\u0003\u0099\u0003\u0099\u0003\u0099\u0003", + "\u0099\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009a\u0003\u009b\u0003", + "\u009b\u0003\u009b\u0003\u009b\u0003\u009b\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003\u009c\u0003", + "\u009c\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003\u009d\u0003", + "\u009d\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003\u009e\u0003", + "\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u009f\u0003\u00a0\u0003", + "\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a0\u0003\u00a1\u0003", + "\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a1\u0003\u00a2\u0003", + "\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a2\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003\u00a3\u0003", + "\u00a3\u0003\u00a3\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003", + "\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a4\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003\u00a5\u0003", + "\u00a5\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003\u00a6\u0003", + "\u00a6\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a7\u0003\u00a8\u0003", + "\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003\u00a8\u0003", + "\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003\u00a9\u0003", + "\u00a9\u0003\u00a9\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003\u00aa\u0003", + "\u00aa\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ab\u0003\u00ac\u0003", + "\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003\u00ac\u0003", + "\u00ac\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ad\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003\u00ae\u0003", + "\u00ae\u0003\u00ae\u0003\u00af\u0003\u00af\u0003\u00af\u0003\u00af\u0003", + "\u00af\u0003\u00af\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b0\u0003", + "\u00b0\u0003\u00b0\u0003\u00b0\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b1\u0003", + "\u00b1\u0003\u00b1\u0003\u00b1\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003", + "\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b2\u0003\u00b3\u0003\u00b3\u0003", + "\u00b3\u0003\u00b3\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003", + "\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b4\u0003\u00b5\u0003", + "\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b5\u0003\u00b6\u0003", + "\u00b6\u0003\u00b6\u0003\u00b6\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003\u00b7\u0003", + "\u00b8\u0003\u00b8\u0003\u00b8\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003", + "\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00b9\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003", + "\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00ba\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003\u00bb\u0003", + "\u00bb\u0003\u00bb\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003\u00bc\u0003", + "\u00bc\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00bd\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003\u00be\u0003", + "\u00be\u0003\u00be\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003\u00bf\u0003", + "\u00bf\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c0\u0003", + "\u00c0\u0003\u00c0\u0003\u00c0\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003", + "\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c1\u0003\u00c2\u0003\u00c2\u0003", + "\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c2\u0003\u00c3\u0003", + "\u00c3\u0003\u00c3\u0003\u00c3\u0003\u00c4\u0003\u00c4\u0003\u00c4\u0003", + "\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c5\u0003\u00c6\u0003", + "\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c6\u0003\u00c7\u0003\u00c7\u0003", + "\u00c7\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003\u00c8\u0003", + "\u00c8\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00c9\u0003\u00ca\u0003", + "\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00ca\u0003\u00cb\u0003", + "\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cb\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003\u00cc\u0003", + "\u00cc\u0003\u00cc\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003\u00cd\u0003", + "\u00cd\u0003\u00cd\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003", + "\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00ce\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003\u00cf\u0003", + "\u00cf\u0003\u00cf\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003", + "\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d0\u0003\u00d1\u0003\u00d1\u0003", + "\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003\u00d1\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003\u00d2\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003", + "\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d3\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003\u00d4\u0003", + "\u00d4\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d5\u0003", + "\u00d5\u0003\u00d5\u0003\u00d5\u0003\u00d6\u0003\u00d6\u0003\u00d6\u0003", + "\u00d6\u0003\u00d6\u0003\u00d6\u0003\u00d7\u0003\u00d7\u0003\u00d7\u0003", + "\u00d7\u0003\u00d7\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003\u00d8\u0003", + "\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003\u00d9\u0003", + "\u00d9\u0003\u00d9\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003\u00da\u0003", + "\u00da\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003\u00db\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003\u00dc\u0003", + "\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003\u00dd\u0003", + "\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00de\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003", + "\u00df\u0003\u00df\u0003\u00df\u0003\u00df\u0003\u00e0\u0003\u00e0\u0003", + "\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e0\u0003\u00e1\u0003", + "\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003\u00e1\u0003", + "\u00e1\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003", + "\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e2\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003\u00e3\u0003", + "\u00e3\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003\u00e4\u0003", + "\u00e4\u0003\u00e4\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e5\u0003", + "\u00e5\u0003\u00e5\u0003\u00e5\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003", + "\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e6\u0003\u00e7\u0003\u00e7\u0003", + "\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003\u00e7\u0003", + "\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003\u00e8\u0003", + "\u00e8\u0003\u00e8\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003\u00e9\u0003", + "\u00e9\u0003\u00e9\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003\u00ea\u0003", + "\u00ea\u0003\u00ea\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003\u00eb\u0003", + "\u00eb\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003", + "\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ec\u0003\u00ed\u0003\u00ed\u0003", + "\u00ed\u0003\u00ed\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003\u00ee\u0003", + "\u00ee\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00ef\u0003", + "\u00ef\u0003\u00ef\u0003\u00ef\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003\u00f0\u0003", + "\u00f0\u0003\u00f1\u0003\u00f1\u0003\u00f1\u0003\u00f2\u0003\u00f2\u0003", + "\u00f2\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f3\u0003\u00f4\u0003", + "\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f4\u0003\u00f5\u0003\u00f5\u0003", + "\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f5\u0003\u00f6\u0003", + "\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003\u00f6\u0003", + "\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003\u00f7\u0003", + "\u00f7\u0003\u00f7\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003", + "\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f8\u0003\u00f9\u0003", + "\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003\u00f9\u0003", + "\u00f9\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fa\u0003\u00fb\u0003", + "\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003\u00fb\u0003", + "\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fc\u0003\u00fd\u0003\u00fd\u0003", + "\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003\u00fd\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00fe\u0003", + "\u00fe\u0003\u00fe\u0003\u00fe\u0003\u00ff\u0003\u00ff\u0003\u00ff\u0003", + "\u00ff\u0003\u00ff\u0003\u0100\u0003\u0100\u0003\u0100\u0003\u0100\u0003", + "\u0100\u0003\u0100\u0003\u0101\u0003\u0101\u0003\u0101\u0003\u0101\u0003", + "\u0101\u0003\u0101\u0003\u0101\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003", + "\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0102\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003\u0103\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003\u0104\u0003", + "\u0104\u0003\u0104\u0003\u0104\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003", + "\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0105\u0003\u0106\u0003", + "\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003\u0106\u0003", + "\u0106\u0003\u0106\u0003\u0107\u0003\u0107\u0003\u0107\u0003\u0107\u0003", + "\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003\u0108\u0003", + "\u0108\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003", + "\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u0109\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003\u010a\u0003", + "\u010a\u0003\u010a\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003\u010b\u0003", + "\u010b\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003\u010c\u0003", + "\u010c\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003\u010d\u0003", + "\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010e\u0003\u010f\u0003", + "\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003\u010f\u0003", + "\u010f\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003\u0110\u0003", + "\u0110\u0003\u0110\u0003\u0111\u0003\u0111\u0003\u0111\u0003\u0111\u0003", + "\u0111\u0003\u0111\u0003\u0111\u0003\u0112\u0003\u0112\u0003\u0112\u0003", + "\u0112\u0003\u0112\u0003\u0112\u0003\u0112\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003\u0113\u0003", + "\u0113\u0003\u0113\u0003\u0114\u0003\u0114\u0003\u0114\u0003\u0114\u0003", + "\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003\u0115\u0003", + "\u0115\u0003\u0115\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003", + "\u0116\u0003\u0116\u0003\u0116\u0003\u0116\u0003\u0117\u0003\u0117\u0003", + "\u0117\u0003\u0117\u0003\u0117\u0003\u0117\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003\u0118\u0003", + "\u0118\u0003\u0118\u0003\u0118\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003\u0119\u0003", + "\u0119\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003\u011a\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003\u011b\u0003", + "\u011b\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003\u011c\u0003", + "\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003", + "\u011d\u0003\u011d\u0003\u011d\u0003\u011d\u0003\u011e\u0003\u011e\u0003", + "\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003\u011e\u0003", + "\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003\u011f\u0003", + "\u0120\u0003\u0120\u0003\u0120\u0003\u0121\u0003\u0121\u0003\u0121\u0003", + "\u0121\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003\u0122\u0003", + "\u0122\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003\u0123\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003\u0124\u0003", + "\u0124\u0003\u0124\u0003\u0124\u0003\u0125\u0003\u0125\u0003\u0125\u0003", + "\u0125\u0003\u0125\u0003\u0126\u0003\u0126\u0003\u0126\u0003\u0126\u0003", + "\u0126\u0003\u0126\u0003\u0127\u0003\u0127\u0003\u0127\u0003\u0127\u0003", + "\u0127\u0003\u0127\u0003\u0127\u0003\u0128\u0003\u0128\u0003\u0128\u0003", + "\u0128\u0003\u0128\u0003\u0128\u0003\u0128\u0003\u0129\u0003\u0129\u0003", + "\u0129\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012a\u0003\u012b\u0003", + "\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012b\u0003\u012c\u0003", + "\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012c\u0003\u012d\u0003", + "\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003\u012d\u0003", + "\u012e\u0003\u012e\u0003\u012e\u0003\u012e\u0003\u012f\u0003\u012f\u0003", + "\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003\u012f\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003\u0130\u0003", + "\u0130\u0003\u0130\u0003\u0130\u0003\u0131\u0003\u0131\u0003\u0131\u0003", + "\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0131\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003\u0132\u0003", + "\u0132\u0003\u0132\u0003\u0133\u0003\u0133\u0003\u0133\u0003\u0133\u0003", + "\u0133\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003\u0134\u0003", + "\u0134\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003\u0135\u0003", + "\u0135\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003\u0136\u0003", + "\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003\u0137\u0003", + "\u0137\u0003\u0137\u0003\u0138\u0003\u0138\u0003\u0138\u0003\u0138\u0003", + "\u0138\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003\u0139\u0003", + "\u013a\u0003\u013a\u0003\u013a\u0003\u013a\u0003\u013b\u0003\u013b\u0003", + "\u013b\u0003\u013b\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003", + "\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013c\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003\u013d\u0003", + "\u013d\u0003\u013d\u0003\u013d\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003", + "\u013e\u0003\u013e\u0003\u013e\u0003\u013e\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003", + "\u013f\u0003\u013f\u0003\u013f\u0003\u013f\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003", + "\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0140\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003", + "\u0141\u0003\u0141\u0003\u0141\u0003\u0141\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003", + "\u0142\u0003\u0142\u0003\u0142\u0003\u0142\u0003\u0143\u0003\u0143\u0003", + "\u0143\u0003\u0143\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003\u0144\u0003", + "\u0144\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003\u0145\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003", + "\u0146\u0003\u0146\u0003\u0146\u0003\u0146\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003\u0147\u0003", + "\u0147\u0003\u0147\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003\u0148\u0003", + "\u0148\u0003\u0148\u0003\u0148\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003", + "\u0149\u0003\u0149\u0003\u0149\u0003\u0149\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003\u014a\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003\u014b\u0003", + "\u014b\u0003\u014b\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003\u014c\u0003", + "\u014c\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003", + "\u014d\u0003\u014d\u0003\u014d\u0003\u014d\u0003\u014e\u0003\u014e\u0003", + "\u014e\u0003\u014e\u0003\u014e\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003\u014f\u0003", + "\u014f\u0003\u014f\u0003\u0150\u0003\u0150\u0003\u0150\u0003\u0150\u0003", + "\u0150\u0003\u0150\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003", + "\u0151\u0003\u0151\u0003\u0151\u0003\u0151\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003\u0152\u0003", + "\u0152\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003\u0153\u0003", + "\u0154\u0003\u0154\u0003\u0155\u0003\u0155\u0003\u0156\u0003\u0156\u0003", + "\u0157\u0003\u0157\u0003\u0157\u0003\u0158\u0003\u0158\u0003\u0159\u0003", + "\u0159\u0003\u015a\u0003\u015a\u0003\u015a\u0003\u015b\u0003\u015b\u0003", + "\u015c\u0003\u015c\u0003\u015c\u0003\u015d\u0003\u015d\u0003\u015e\u0003", + "\u015e\u0003\u015f\u0003\u015f\u0003\u015f\u0003\u0160\u0003\u0160\u0003", + "\u0160\u0003\u0161\u0003\u0161\u0003\u0162\u0003\u0162\u0003\u0162\u0003", + "\u0163\u0003\u0163\u0003\u0164\u0003\u0164\u0003\u0164\u0003\u0165\u0003", + "\u0165\u0003\u0166\u0003\u0166\u0003\u0167\u0003\u0167\u0003\u0168\u0003", + "\u0168\u0003\u0169\u0003\u0169\u0003\u016a\u0003\u016a\u0003\u016b\u0003", + "\u016b\u0003\u016c\u0003\u016c\u0003\u016d\u0003\u016d\u0003\u016e\u0003", + "\u016e\u0003\u016f\u0003\u016f\u0003\u0170\u0003\u0170\u0003\u0171\u0003", + "\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0003\u0171\u0007\u0171\u0d5c", + "\n\u0171\f\u0171\u000e\u0171\u0d5f\u000b\u0171\u0003\u0171\u0003\u0171", + "\u0003\u0172\u0003\u0172\u0003\u0172\u0007\u0172\u0d66\n\u0172\f\u0172", + "\u000e\u0172\u0d69\u000b\u0172\u0003\u0172\u0003\u0172\u0003\u0173\u0006", + "\u0173\u0d6e\n\u0173\r\u0173\u000e\u0173\u0d6f\u0003\u0174\u0006\u0174", + "\u0d73\n\u0174\r\u0174\u000e\u0174\u0d74\u0003\u0174\u0003\u0174\u0003", + "\u0174\u0007\u0174\u0d7a\n\u0174\f\u0174\u000e\u0174\u0d7d\u000b\u0174", + "\u0003\u0174\u0003\u0174\u0006\u0174\u0d81\n\u0174\r\u0174\u000e\u0174", + "\u0d82\u0005\u0174\u0d85\n\u0174\u0003\u0175\u0006\u0175\u0d88\n\u0175", + "\r\u0175\u000e\u0175\u0d89\u0003\u0175\u0003\u0175\u0003\u0176\u0003", + "\u0176\u0003\u0176\u0003\u0176\u0007\u0176\u0d92\n\u0176\f\u0176\u000e", + "\u0176\u0d95\u000b\u0176\u0003\u0176\u0003\u0176\u0003\u0176\u0003\u0176", + "\u0003\u0176\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0177\u0005\u0177", + "\u0da0\n\u0177\u0003\u0177\u0007\u0177\u0da3\n\u0177\f\u0177\u000e\u0177", + "\u0da6\u000b\u0177\u0003\u0177\u0005\u0177\u0da9\n\u0177\u0003\u0177", + "\u0003\u0177\u0003\u0177\u0003\u0177\u0003\u0178\u0003\u0178\u0003\u0178", + "\u0005\u0178\u0db2\n\u0178\u0005\u0178\u0db4\n\u0178\u0003\u0178\u0003", + "\u0178\u0003\u0178\u0007\u0178\u0db9\n\u0178\f\u0178\u000e\u0178\u0dbc", + "\u000b\u0178\u0003\u0179\u0003\u0179\u0003\u0179\u0007\u0179\u0dc1\n", + "\u0179\f\u0179\u000e\u0179\u0dc4\u000b\u0179\u0003\u0179\u0003\u0179", + "\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0007\u017a\u0dcc\n", + "\u017a\f\u017a\u000e\u017a\u0dcf\u000b\u017a\u0003\u017a\u0003\u017a", + "\u0003\u017a\u0007\u017a\u0dd4\n\u017a\f\u017a\u000e\u017a\u0dd7\u000b", + "\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0006", + "\u017a\u0dde\n\u017a\r\u017a\u000e\u017a\u0ddf\u0003\u017a\u0003\u017a", + "\u0007\u017a\u0de4\n\u017a\f\u017a\u000e\u017a\u0de7\u000b\u017a\u0003", + "\u017a\u0003\u017a\u0003\u017a\u0007\u017a\u0dec\n\u017a\f\u017a\u000e", + "\u017a\u0def\u000b\u017a\u0003\u017a\u0003\u017a\u0003\u017a\u0007\u017a", + "\u0df4\n\u017a\f\u017a\u000e\u017a\u0df7\u000b\u017a\u0003\u017a\u0005", + "\u017a\u0dfa\n\u017a\u0003\u017b\u0003\u017b\u0003\u017b\u0003\u017b", + "\u0005\u017b\u0e00\n\u017b\u0003\u017c\u0003\u017c\u0003\u017d\u0003", + "\u017d\u0003\u017e\u0003\u017e\u0003\u017f\u0003\u017f\u0003\u0180\u0003", + "\u0180\u0003\u0181\u0003\u0181\u0003\u0182\u0003\u0182\u0003\u0183\u0003", + "\u0183\u0003\u0184\u0003\u0184\u0003\u0185\u0003\u0185\u0003\u0186\u0003", + "\u0186\u0003\u0187\u0003\u0187\u0003\u0188\u0003\u0188\u0003\u0189\u0003", + "\u0189\u0003\u018a\u0003\u018a\u0003\u018b\u0003\u018b\u0003\u018c\u0003", + "\u018c\u0003\u018d\u0003\u018d\u0003\u018e\u0003\u018e\u0003\u018f\u0003", + "\u018f\u0003\u0190\u0003\u0190\u0003\u0191\u0003\u0191\u0003\u0192\u0003", + "\u0192\u0003\u0193\u0003\u0193\u0003\u0194\u0003\u0194\u0003\u0195\u0003", + "\u0195\u0003\u0196\u0003\u0196\u0003\u0197\u0003\u0197\t\u0d67\u0d93", + "\u0da4\u0dd5\u0de5\u0ded\u0df5\u0002\u0198\u0003\u0003\u0005\u0004\u0007", + "\u0005\t\u0006\u000b\u0007\r\b\u000f\t\u0011\n\u0013\u000b\u0015\f\u0017", + "\r\u0019\u000e\u001b\u000f\u001d\u0010\u001f\u0011!\u0012#\u0013%\u0014", + "\'\u0015)\u0016+\u0017-\u0018/\u00191\u001a3\u001b5\u001c7\u001d9\u001e", + ";\u001f= ?!A\"C#E$G%I&K\'M(O)Q*S+U,W-Y.[/]0_1a2c3e4g5i6k7m8o9q:s;u<", + "w=y>{?}@\u007fA\u0081B\u0083C\u0085D\u0087E\u0089F\u008bG\u008dH\u008f", + "I\u0091J\u0093K\u0095L\u0097M\u0099N\u009bO\u009dP\u009fQ\u00a1R\u00a3", + "S\u00a5T\u00a7U\u00a9V\u00abW\u00adX\u00afY\u00b1Z\u00b3[\u00b5\\\u00b7", + "]\u00b9^\u00bb_\u00bd`\u00bfa\u00c1b\u00c3c\u00c5d\u00c7e\u00c9f\u00cb", + "g\u00cdh\u00cfi\u00d1j\u00d3k\u00d5l\u00d7m\u00d9n\u00dbo\u00ddp\u00df", + "q\u00e1r\u00e3s\u00e5t\u00e7u\u00e9v\u00ebw\u00edx\u00efy\u00f1z\u00f3", + "{\u00f5|\u00f7}\u00f9~\u00fb\u007f\u00fd\u0080\u00ff\u0081\u0101\u0082", + "\u0103\u0083\u0105\u0084\u0107\u0085\u0109\u0086\u010b\u0087\u010d\u0088", + "\u010f\u0089\u0111\u008a\u0113\u008b\u0115\u008c\u0117\u008d\u0119\u008e", + "\u011b\u008f\u011d\u0090\u011f\u0091\u0121\u0092\u0123\u0093\u0125\u0094", + "\u0127\u0095\u0129\u0096\u012b\u0097\u012d\u0098\u012f\u0099\u0131\u009a", + "\u0133\u009b\u0135\u009c\u0137\u009d\u0139\u009e\u013b\u009f\u013d\u00a0", + "\u013f\u00a1\u0141\u00a2\u0143\u00a3\u0145\u00a4\u0147\u00a5\u0149\u00a6", + "\u014b\u00a7\u014d\u00a8\u014f\u00a9\u0151\u00aa\u0153\u00ab\u0155\u00ac", + "\u0157\u00ad\u0159\u00ae\u015b\u00af\u015d\u00b0\u015f\u00b1\u0161\u00b2", + "\u0163\u00b3\u0165\u00b4\u0167\u00b5\u0169\u00b6\u016b\u00b7\u016d\u00b8", + "\u016f\u00b9\u0171\u00ba\u0173\u00bb\u0175\u00bc\u0177\u00bd\u0179\u00be", + "\u017b\u00bf\u017d\u00c0\u017f\u00c1\u0181\u00c2\u0183\u00c3\u0185\u00c4", + "\u0187\u00c5\u0189\u00c6\u018b\u00c7\u018d\u00c8\u018f\u00c9\u0191\u00ca", + "\u0193\u00cb\u0195\u00cc\u0197\u00cd\u0199\u00ce\u019b\u00cf\u019d\u00d0", + "\u019f\u00d1\u01a1\u00d2\u01a3\u00d3\u01a5\u00d4\u01a7\u00d5\u01a9\u00d6", + "\u01ab\u00d7\u01ad\u00d8\u01af\u00d9\u01b1\u00da\u01b3\u00db\u01b5\u00dc", + "\u01b7\u00dd\u01b9\u00de\u01bb\u00df\u01bd\u00e0\u01bf\u00e1\u01c1\u00e2", + "\u01c3\u00e3\u01c5\u00e4\u01c7\u00e5\u01c9\u00e6\u01cb\u00e7\u01cd\u00e8", + "\u01cf\u00e9\u01d1\u00ea\u01d3\u00eb\u01d5\u00ec\u01d7\u00ed\u01d9\u00ee", + "\u01db\u00ef\u01dd\u00f0\u01df\u00f1\u01e1\u00f2\u01e3\u00f3\u01e5\u00f4", + "\u01e7\u00f5\u01e9\u00f6\u01eb\u00f7\u01ed\u00f8\u01ef\u00f9\u01f1\u00fa", + "\u01f3\u00fb\u01f5\u00fc\u01f7\u00fd\u01f9\u00fe\u01fb\u00ff\u01fd\u0100", + "\u01ff\u0101\u0201\u0102\u0203\u0103\u0205\u0104\u0207\u0105\u0209\u0106", + "\u020b\u0107\u020d\u0108\u020f\u0109\u0211\u010a\u0213\u010b\u0215\u010c", + "\u0217\u010d\u0219\u010e\u021b\u010f\u021d\u0110\u021f\u0111\u0221\u0112", + "\u0223\u0113\u0225\u0114\u0227\u0115\u0229\u0116\u022b\u0117\u022d\u0118", + "\u022f\u0119\u0231\u011a\u0233\u011b\u0235\u011c\u0237\u011d\u0239\u011e", + "\u023b\u011f\u023d\u0120\u023f\u0121\u0241\u0122\u0243\u0123\u0245\u0124", + "\u0247\u0125\u0249\u0126\u024b\u0127\u024d\u0128\u024f\u0129\u0251\u012a", + "\u0253\u012b\u0255\u012c\u0257\u012d\u0259\u012e\u025b\u012f\u025d\u0130", + "\u025f\u0131\u0261\u0132\u0263\u0133\u0265\u0134\u0267\u0135\u0269\u0136", + "\u026b\u0137\u026d\u0138\u026f\u0139\u0271\u013a\u0273\u013b\u0275\u013c", + "\u0277\u013d\u0279\u013e\u027b\u013f\u027d\u0140\u027f\u0141\u0281\u0142", + "\u0283\u0143\u0285\u0144\u0287\u0145\u0289\u0146\u028b\u0147\u028d\u0148", + "\u028f\u0149\u0291\u014a\u0293\u014b\u0295\u014c\u0297\u014d\u0299\u014e", + "\u029b\u014f\u029d\u0150\u029f\u0151\u02a1\u0152\u02a3\u0153\u02a5\u0154", + "\u02a7\u0155\u02a9\u0156\u02ab\u0157\u02ad\u0158\u02af\u0159\u02b1\u015a", + "\u02b3\u015b\u02b5\u015c\u02b7\u015d\u02b9\u015e\u02bb\u015f\u02bd\u0160", + "\u02bf\u0161\u02c1\u0162\u02c3\u0163\u02c5\u0164\u02c7\u0165\u02c9\u0166", + "\u02cb\u0167\u02cd\u0168\u02cf\u0169\u02d1\u016a\u02d3\u016b\u02d5\u016c", + "\u02d7\u016d\u02d9\u016e\u02db\u016f\u02dd\u0170\u02df\u0171\u02e1\u0172", + "\u02e3\u0173\u02e5\u0174\u02e7\u0175\u02e9\u0176\u02eb\u0177\u02ed\u0178", + "\u02ef\u0179\u02f1\u017a\u02f3\u0002\u02f5\u0002\u02f7\u0002\u02f9\u0002", + "\u02fb\u0002\u02fd\u0002\u02ff\u0002\u0301\u0002\u0303\u0002\u0305\u0002", + "\u0307\u0002\u0309\u0002\u030b\u0002\u030d\u0002\u030f\u0002\u0311\u0002", + "\u0313\u0002\u0315\u0002\u0317\u0002\u0319\u0002\u031b\u0002\u031d\u0002", + "\u031f\u0002\u0321\u0002\u0323\u0002\u0325\u0002\u0327\u0002\u0329\u0002", + "\u032b\u0002\u032d\u0002\u0003\u0002\"\u0003\u0002))\u0003\u000200\u0004", + "\u0002C\\c|\u0006\u0002%&<\u0003\u0002", + "\u0002\u0002\u0409\u040a\u0005\u02ff\u0180\u0002\u040a\u040b\u0005\u02fb", + "\u017e\u0002\u040b\u040c\u0005\u031f\u0190\u0002\u040c\u040d\u0005\u0303", + "\u0182\u0002\u040d\u040e\u0005\u031f\u0190\u0002\u040e\u040f\u0005\u0319", + "\u018d\u0002\u040f\u0410\u0005\u0303\u0182\u0002\u0410\u0411\u0005\u02ff", + "\u0180\u0002\u0411\u0412\u0005\u030b\u0186\u0002\u0412\u0413\u0005\u0305", + "\u0183\u0002\u0413\u0414\u0005\u030b\u0186\u0002\u0414\u0415\u0005\u02ff", + "\u0180\u0002\u0415@\u0003\u0002\u0002\u0002\u0416\u0417\u0005\u02ff", + "\u0180\u0002\u0417\u0418\u0005\u02fb\u017e\u0002\u0418\u0419\u0005\u031f", + "\u0190\u0002\u0419\u041a\u0005\u0321\u0191\u0002\u041aB\u0003\u0002", + "\u0002\u0002\u041b\u041c\u0005\u02ff\u0180\u0002\u041c\u041d\u0005\u0309", + "\u0185\u0002\u041d\u041e\u0005\u02fb\u017e\u0002\u041e\u041f\u0005\u031d", + "\u018f\u0002\u041fD\u0003\u0002\u0002\u0002\u0420\u0421\u0005\u02ff", + "\u0180\u0002\u0421\u0422\u0005\u0309\u0185\u0002\u0422\u0423\u0005\u02fb", + "\u017e\u0002\u0423\u0424\u0005\u031d\u018f\u0002\u0424\u0425\u0005\u02fb", + "\u017e\u0002\u0425\u0426\u0005\u02ff\u0180\u0002\u0426\u0427\u0005\u0321", + "\u0191\u0002\u0427\u0428\u0005\u0303\u0182\u0002\u0428\u0429\u0005\u031d", + "\u018f\u0002\u0429F\u0003\u0002\u0002\u0002\u042a\u042b\u0005\u02ff", + "\u0180\u0002\u042b\u042c\u0005\u0309\u0185\u0002\u042c\u042d\u0005\u02fb", + "\u017e\u0002\u042d\u042e\u0005\u031d\u018f\u0002\u042e\u042f\u0005\u031f", + "\u0190\u0002\u042f\u0430\u0005\u0303\u0182\u0002\u0430\u0431\u0005\u0321", + "\u0191\u0002\u0431H\u0003\u0002\u0002\u0002\u0432\u0433\u0005\u02ff", + "\u0180\u0002\u0433\u0434\u0005\u0311\u0189\u0002\u0434\u0435\u0005\u030b", + "\u0186\u0002\u0435\u0436\u0005\u0303\u0182\u0002\u0436\u0437\u0005\u0315", + "\u018b\u0002\u0437\u0438\u0005\u0321\u0191\u0002\u0438J\u0003\u0002", + "\u0002\u0002\u0439\u043a\u0005\u02ff\u0180\u0002\u043a\u043b\u0005\u0311", + "\u0189\u0002\u043b\u043c\u0005\u0317\u018c\u0002\u043c\u043d\u0005\u031f", + "\u0190\u0002\u043d\u043e\u0005\u0303\u0182\u0002\u043eL\u0003\u0002", + "\u0002\u0002\u043f\u0440\u0005\u02ff\u0180\u0002\u0440\u0441\u0005\u0311", + "\u0189\u0002\u0441\u0442\u0005\u0323\u0192\u0002\u0442\u0443\u0005\u031f", + "\u0190\u0002\u0443\u0444\u0005\u0321\u0191\u0002\u0444\u0445\u0005\u0303", + "\u0182\u0002\u0445\u0446\u0005\u031d\u018f\u0002\u0446\u0447\u0005\u0303", + "\u0182\u0002\u0447\u0448\u0005\u0301\u0181\u0002\u0448N\u0003\u0002", + "\u0002\u0002\u0449\u044a\u0005\u02ff\u0180\u0002\u044a\u044b\u0005\u0313", + "\u018a\u0002\u044b\u044c\u0005\u0319\u018d\u0002\u044cP\u0003\u0002", + "\u0002\u0002\u044d\u044e\u0005\u02ff\u0180\u0002\u044e\u044f\u0005\u0317", + "\u018c\u0002\u044f\u0450\u0005\u0311\u0189\u0002\u0450\u0451\u0005\u0311", + "\u0189\u0002\u0451\u0452\u0005\u0303\u0182\u0002\u0452\u0453\u0005\u02ff", + "\u0180\u0002\u0453\u0454\u0005\u0321\u0191\u0002\u0454R\u0003\u0002", + "\u0002\u0002\u0455\u0456\u0005\u02ff\u0180\u0002\u0456\u0457\u0005\u0317", + "\u018c\u0002\u0457\u0458\u0005\u0311\u0189\u0002\u0458\u0459\u0005\u0311", + "\u0189\u0002\u0459\u045a\u0005\u0303\u0182\u0002\u045a\u045b\u0005\u02ff", + "\u0180\u0002\u045b\u045c\u0005\u0321\u0191\u0002\u045c\u045d\u0005\u030b", + "\u0186\u0002\u045d\u045e\u0005\u0317\u018c\u0002\u045e\u045f\u0005\u0315", + "\u018b\u0002\u045fT\u0003\u0002\u0002\u0002\u0460\u0461\u0005\u02ff", + "\u0180\u0002\u0461\u0462\u0005\u0317\u018c\u0002\u0462\u0463\u0005\u0311", + "\u0189\u0002\u0463\u0464\u0005\u0323\u0192\u0002\u0464\u0465\u0005\u0313", + "\u018a\u0002\u0465\u0466\u0005\u0315\u018b\u0002\u0466V\u0003\u0002", + "\u0002\u0002\u0467\u0468\u0005\u02ff\u0180\u0002\u0468\u0469\u0005\u0317", + "\u018c\u0002\u0469\u046a\u0005\u0313\u018a\u0002\u046a\u046b\u0005\u0313", + "\u018a\u0002\u046b\u046c\u0005\u0303\u0182\u0002\u046c\u046d\u0005\u0315", + "\u018b\u0002\u046d\u046e\u0005\u0321\u0191\u0002\u046eX\u0003\u0002", + "\u0002\u0002\u046f\u0470\u0005\u02ff\u0180\u0002\u0470\u0471\u0005\u0317", + "\u018c\u0002\u0471\u0472\u0005\u0315\u018b\u0002\u0472\u0473\u0005\u031f", + "\u0190\u0002\u0473\u0474\u0005\u0321\u0191\u0002\u0474\u0475\u0005\u02fb", + "\u017e\u0002\u0475\u0476\u0005\u0315\u018b\u0002\u0476\u0477\u0005\u0321", + "\u0191\u0002\u0477Z\u0003\u0002\u0002\u0002\u0478\u0479\u0005\u02ff", + "\u0180\u0002\u0479\u047a\u0005\u0317\u018c\u0002\u047a\u047b\u0005\u0313", + "\u018a\u0002\u047b\u047c\u0005\u0313\u018a\u0002\u047c\u047d\u0005\u030b", + "\u0186\u0002\u047d\u047e\u0005\u0321\u0191\u0002\u047e\\\u0003\u0002", + "\u0002\u0002\u047f\u0480\u0005\u02ff\u0180\u0002\u0480\u0481\u0005\u0317", + "\u018c\u0002\u0481\u0482\u0005\u0313\u018a\u0002\u0482\u0483\u0005\u0319", + "\u018d\u0002\u0483\u0484\u0005\u031d\u018f\u0002\u0484\u0485\u0005\u0303", + "\u0182\u0002\u0485\u0486\u0005\u031f\u0190\u0002\u0486\u0487\u0005\u031f", + "\u0190\u0002\u0487^\u0003\u0002\u0002\u0002\u0488\u0489\u0005\u02ff", + "\u0180\u0002\u0489\u048a\u0005\u0317\u018c\u0002\u048a\u048b\u0005\u0315", + "\u018b\u0002\u048b\u048c\u0005\u02ff\u0180\u0002\u048c\u048d\u0005\u02fb", + "\u017e\u0002\u048d\u048e\u0005\u0321\u0191\u0002\u048e`\u0003\u0002", + "\u0002\u0002\u048f\u0490\u0005\u02ff\u0180\u0002\u0490\u0491\u0005\u0317", + "\u018c\u0002\u0491\u0492\u0005\u0315\u018b\u0002\u0492\u0493\u0005\u0301", + "\u0181\u0002\u0493\u0494\u0005\u030b\u0186\u0002\u0494\u0495\u0005\u0321", + "\u0191\u0002\u0495\u0496\u0005\u030b\u0186\u0002\u0496\u0497\u0005\u0317", + "\u018c\u0002\u0497\u0498\u0005\u0315\u018b\u0002\u0498b\u0003\u0002", + "\u0002\u0002\u0499\u049a\u0005\u02ff\u0180\u0002\u049a\u049b\u0005\u0317", + "\u018c\u0002\u049b\u049c\u0005\u0315\u018b\u0002\u049c\u049d\u0005\u031f", + "\u0190\u0002\u049d\u049e\u0005\u0321\u0191\u0002\u049e\u049f\u0005\u031d", + "\u018f\u0002\u049f\u04a0\u0005\u02fb\u017e\u0002\u04a0\u04a1\u0005\u030b", + "\u0186\u0002\u04a1\u04a2\u0005\u0315\u018b\u0002\u04a2\u04a3\u0005\u0321", + "\u0191\u0002\u04a3d\u0003\u0002\u0002\u0002\u04a4\u04a5\u0005\u02ff", + "\u0180\u0002\u04a5\u04a6\u0005\u0317\u018c\u0002\u04a6\u04a7\u0005\u0315", + "\u018b\u0002\u04a7\u04a8\u0005\u0321\u0191\u0002\u04a8\u04a9\u0005\u030b", + "\u0186\u0002\u04a9\u04aa\u0005\u0315\u018b\u0002\u04aa\u04ab\u0005\u0323", + "\u0192\u0002\u04ab\u04ac\u0005\u0303\u0182\u0002\u04acf\u0003\u0002", + "\u0002\u0002\u04ad\u04ae\u0005\u02ff\u0180\u0002\u04ae\u04af\u0005\u0317", + "\u018c\u0002\u04af\u04b0\u0005\u0319\u018d\u0002\u04b0\u04b1\u0005\u032b", + "\u0196\u0002\u04b1h\u0003\u0002\u0002\u0002\u04b2\u04b3\u0005\u02ff", + "\u0180\u0002\u04b3\u04b4\u0005\u0317\u018c\u0002\u04b4\u04b5\u0005\u0323", + "\u0192\u0002\u04b5\u04b6\u0005\u0315\u018b\u0002\u04b6\u04b7\u0005\u0321", + "\u0191\u0002\u04b7j\u0003\u0002\u0002\u0002\u04b8\u04b9\u0005\u02ff", + "\u0180\u0002\u04b9\u04ba\u0005\u0317\u018c\u0002\u04ba\u04bb\u0005\u0323", + "\u0192\u0002\u04bb\u04bc\u0005\u0315\u018b\u0002\u04bc\u04bd\u0005\u0321", + "\u0191\u0002\u04bd\u04be\u0007a\u0002\u0002\u04be\u04bf\u0005\u02fd", + "\u017f\u0002\u04bf\u04c0\u0005\u030b\u0186\u0002\u04c0\u04c1\u0005\u0307", + "\u0184\u0002\u04c1l\u0003\u0002\u0002\u0002\u04c2\u04c3\u0005\u02ff", + "\u0180\u0002\u04c3\u04c4\u0005\u031d\u018f\u0002\u04c4\u04c5\u0005\u0303", + "\u0182\u0002\u04c5\u04c6\u0005\u02fb\u017e\u0002\u04c6\u04c7\u0005\u0321", + "\u0191\u0002\u04c7\u04c8\u0005\u0303\u0182\u0002\u04c8n\u0003\u0002", + "\u0002\u0002\u04c9\u04ca\u0005\u02ff\u0180\u0002\u04ca\u04cb\u0005\u031d", + "\u018f\u0002\u04cb\u04cc\u0005\u0303\u0182\u0002\u04cc\u04cd\u0005\u02fb", + "\u017e\u0002\u04cd\u04ce\u0005\u0321\u0191\u0002\u04ce\u04cf\u0005\u030b", + "\u0186\u0002\u04cf\u04d0\u0005\u0317\u018c\u0002\u04d0\u04d1\u0005\u0315", + "\u018b\u0002\u04d1p\u0003\u0002\u0002\u0002\u04d2\u04d3\u0005\u02ff", + "\u0180\u0002\u04d3\u04d4\u0005\u031d\u018f\u0002\u04d4\u04d5\u0005\u0303", + "\u0182\u0002\u04d5\u04d6\u0005\u02fb\u017e\u0002\u04d6\u04d7\u0005\u0321", + "\u0191\u0002\u04d7\u04d8\u0005\u0317\u018c\u0002\u04d8\u04d9\u0005\u031d", + "\u018f\u0002\u04d9r\u0003\u0002\u0002\u0002\u04da\u04db\u0005\u02ff", + "\u0180\u0002\u04db\u04dc\u0005\u031f\u0190\u0002\u04dct\u0003\u0002", + "\u0002\u0002\u04dd\u04de\u0005\u02ff\u0180\u0002\u04de\u04df\u0005\u0323", + "\u0192\u0002\u04df\u04e0\u0005\u031d\u018f\u0002\u04e0\u04e1\u0005\u031d", + "\u018f\u0002\u04e1\u04e2\u0005\u0303\u0182\u0002\u04e2\u04e3\u0005\u0315", + "\u018b\u0002\u04e3\u04e4\u0005\u0321\u0191\u0002\u04e4v\u0003\u0002", + "\u0002\u0002\u04e5\u04e6\u0005\u02ff\u0180\u0002\u04e6\u04e7\u0005\u0323", + "\u0192\u0002\u04e7\u04e8\u0005\u031d\u018f\u0002\u04e8\u04e9\u0005\u031d", + "\u018f\u0002\u04e9\u04ea\u0005\u0303\u0182\u0002\u04ea\u04eb\u0005\u0315", + "\u018b\u0002\u04eb\u04ec\u0005\u0321\u0191\u0002\u04ec\u04ed\u0007a", + "\u0002\u0002\u04ed\u04ee\u0005\u031f\u0190\u0002\u04ee\u04ef\u0005\u02ff", + "\u0180\u0002\u04ef\u04f0\u0005\u0309\u0185\u0002\u04f0\u04f1\u0005\u0303", + "\u0182\u0002\u04f1\u04f2\u0005\u0313\u018a\u0002\u04f2\u04f3\u0005\u02fb", + "\u017e\u0002\u04f3x\u0003\u0002\u0002\u0002\u04f4\u04f5\u0005\u02ff", + "\u0180\u0002\u04f5\u04f6\u0005\u0323\u0192\u0002\u04f6\u04f7\u0005\u031d", + "\u018f\u0002\u04f7\u04f8\u0005\u031f\u0190\u0002\u04f8\u04f9\u0005\u0317", + "\u018c\u0002\u04f9\u04fa\u0005\u031d\u018f\u0002\u04faz\u0003\u0002", + "\u0002\u0002\u04fb\u04fc\u0005\u0301\u0181\u0002\u04fc\u04fd\u0005\u02fb", + "\u017e\u0002\u04fd\u04fe\u0005\u0321\u0191\u0002\u04fe\u04ff\u0005\u02fb", + "\u017e\u0002\u04ff\u0500\u0005\u02fd\u017f\u0002\u0500\u0501\u0005\u02fb", + "\u017e\u0002\u0501\u0502\u0005\u031f\u0190\u0002\u0502\u0503\u0005\u0303", + "\u0182\u0002\u0503|\u0003\u0002\u0002\u0002\u0504\u0505\u0005\u0301", + "\u0181\u0002\u0505\u0506\u0005\u02fb\u017e\u0002\u0506\u0507\u0005\u0321", + "\u0191\u0002\u0507\u0508\u0005\u02fb\u017e\u0002\u0508~\u0003\u0002", + "\u0002\u0002\u0509\u050a\u0005\u0301\u0181\u0002\u050a\u050b\u0005\u02fb", + "\u017e\u0002\u050b\u050c\u0005\u0321\u0191\u0002\u050c\u050d\u0005\u0303", + "\u0182\u0002\u050d\u0080\u0003\u0002\u0002\u0002\u050e\u050f\u0005\u0301", + "\u0181\u0002\u050f\u0510\u0005\u02fb\u017e\u0002\u0510\u0511\u0005\u0321", + "\u0191\u0002\u0511\u0512\u0005\u0303\u0182\u0002\u0512\u0513\u0005\u0321", + "\u0191\u0002\u0513\u0514\u0005\u030b\u0186\u0002\u0514\u0515\u0005\u0313", + "\u018a\u0002\u0515\u0516\u0005\u0303\u0182\u0002\u0516\u0082\u0003\u0002", + "\u0002\u0002\u0517\u0518\u0005\u0301\u0181\u0002\u0518\u0519\u0005\u02fb", + "\u017e\u0002\u0519\u051a\u0005\u032b\u0196\u0002\u051a\u0084\u0003\u0002", + "\u0002\u0002\u051b\u051c\u0005\u0301\u0181\u0002\u051c\u051d\u0005\u02fb", + "\u017e\u0002\u051d\u051e\u0005\u032b\u0196\u0002\u051e\u051f\u0005\u031f", + "\u0190\u0002\u051f\u0086\u0003\u0002\u0002\u0002\u0520\u0521\u0005\u0301", + "\u0181\u0002\u0521\u0522\u0005\u0303\u0182\u0002\u0522\u0523\u0005\u02ff", + "\u0180\u0002\u0523\u0088\u0003\u0002\u0002\u0002\u0524\u0525\u0005\u0301", + "\u0181\u0002\u0525\u0526\u0005\u0303\u0182\u0002\u0526\u0527\u0005\u02ff", + "\u0180\u0002\u0527\u0528\u0005\u030b\u0186\u0002\u0528\u0529\u0005\u0313", + "\u018a\u0002\u0529\u052a\u0005\u02fb\u017e\u0002\u052a\u052b\u0005\u0311", + "\u0189\u0002\u052b\u008a\u0003\u0002\u0002\u0002\u052c\u052d\u0005\u0301", + "\u0181\u0002\u052d\u052e\u0005\u0303\u0182\u0002\u052e\u052f\u0005\u02ff", + "\u0180\u0002\u052f\u0530\u0005\u0311\u0189\u0002\u0530\u0531\u0005\u02fb", + "\u017e\u0002\u0531\u0532\u0005\u031d\u018f\u0002\u0532\u0533\u0005\u0303", + "\u0182\u0002\u0533\u008c\u0003\u0002\u0002\u0002\u0534\u0535\u0005\u0301", + "\u0181\u0002\u0535\u0536\u0005\u0303\u0182\u0002\u0536\u0537\u0005\u0305", + "\u0183\u0002\u0537\u0538\u0005\u02fb\u017e\u0002\u0538\u0539\u0005\u0323", + "\u0192\u0002\u0539\u053a\u0005\u0311\u0189\u0002\u053a\u053b\u0005\u0321", + "\u0191\u0002\u053b\u008e\u0003\u0002\u0002\u0002\u053c\u053d\u0005\u0301", + "\u0181\u0002\u053d\u053e\u0005\u0303\u0182\u0002\u053e\u053f\u0005\u0305", + "\u0183\u0002\u053f\u0540\u0005\u0303\u0182\u0002\u0540\u0541\u0005\u031d", + "\u018f\u0002\u0541\u0542\u0005\u031d\u018f\u0002\u0542\u0543\u0005\u0303", + "\u0182\u0002\u0543\u0544\u0005\u0301\u0181\u0002\u0544\u0090\u0003\u0002", + "\u0002\u0002\u0545\u0546\u0005\u0301\u0181\u0002\u0546\u0547\u0005\u0303", + "\u0182\u0002\u0547\u0548\u0005\u0305\u0183\u0002\u0548\u0549\u0005\u030b", + "\u0186\u0002\u0549\u054a\u0005\u0315\u018b\u0002\u054a\u054b\u0005\u0303", + "\u0182\u0002\u054b\u054c\u0005\u0301\u0181\u0002\u054c\u0092\u0003\u0002", + "\u0002\u0002\u054d\u054e\u0005\u0301\u0181\u0002\u054e\u054f\u0005\u0303", + "\u0182\u0002\u054f\u0550\u0005\u0305\u0183\u0002\u0550\u0551\u0005\u030b", + "\u0186\u0002\u0551\u0552\u0005\u0315\u018b\u0002\u0552\u0553\u0005\u0303", + "\u0182\u0002\u0553\u0554\u0005\u031d\u018f\u0002\u0554\u0094\u0003\u0002", + "\u0002\u0002\u0555\u0556\u0005\u0301\u0181\u0002\u0556\u0557\u0005\u0303", + "\u0182\u0002\u0557\u0558\u0005\u0305\u0183\u0002\u0558\u0559\u0005\u030b", + "\u0186\u0002\u0559\u055a\u0005\u0315\u018b\u0002\u055a\u055b\u0005\u030b", + "\u0186\u0002\u055b\u055c\u0005\u0321\u0191\u0002\u055c\u055d\u0005\u030b", + "\u0186\u0002\u055d\u055e\u0005\u0317\u018c\u0002\u055e\u055f\u0005\u0315", + "\u018b\u0002\u055f\u0096\u0003\u0002\u0002\u0002\u0560\u0561\u0005\u0301", + "\u0181\u0002\u0561\u0562\u0005\u0303\u0182\u0002\u0562\u0563\u0005\u0311", + "\u0189\u0002\u0563\u0564\u0005\u0303\u0182\u0002\u0564\u0565\u0005\u0321", + "\u0191\u0002\u0565\u0566\u0005\u0303\u0182\u0002\u0566\u0098\u0003\u0002", + "\u0002\u0002\u0567\u0568\u0005\u0301\u0181\u0002\u0568\u0569\u0005\u0303", + "\u0182\u0002\u0569\u056a\u0005\u0311\u0189\u0002\u056a\u056b\u0005\u030b", + "\u0186\u0002\u056b\u056c\u0005\u0313\u018a\u0002\u056c\u056d\u0005\u030b", + "\u0186\u0002\u056d\u056e\u0005\u0321\u0191\u0002\u056e\u056f\u0005\u0303", + "\u0182\u0002\u056f\u0570\u0005\u0301\u0181\u0002\u0570\u009a\u0003\u0002", + "\u0002\u0002\u0571\u0572\u0005\u0301\u0181\u0002\u0572\u0573\u0005\u0303", + "\u0182\u0002\u0573\u0574\u0005\u0311\u0189\u0002\u0574\u0575\u0005\u030b", + "\u0186\u0002\u0575\u0576\u0005\u0313\u018a\u0002\u0576\u0577\u0005\u030b", + "\u0186\u0002\u0577\u0578\u0005\u0321\u0191\u0002\u0578\u0579\u0005\u0303", + "\u0182\u0002\u0579\u057a\u0005\u031d\u018f\u0002\u057a\u009c\u0003\u0002", + "\u0002\u0002\u057b\u057c\u0005\u0301\u0181\u0002\u057c\u057d\u0005\u0303", + "\u0182\u0002\u057d\u057e\u0005\u031f\u0190\u0002\u057e\u057f\u0005\u02ff", + "\u0180\u0002\u057f\u009e\u0003\u0002\u0002\u0002\u0580\u0581\u0005\u0301", + "\u0181\u0002\u0581\u0582\u0005\u0303\u0182\u0002\u0582\u0583\u0005\u031f", + "\u0190\u0002\u0583\u0584\u0005\u02ff\u0180\u0002\u0584\u0585\u0005\u031d", + "\u018f\u0002\u0585\u0586\u0005\u030b\u0186\u0002\u0586\u0587\u0005\u02fd", + "\u017f\u0002\u0587\u0588\u0005\u0303\u0182\u0002\u0588\u00a0\u0003\u0002", + "\u0002\u0002\u0589\u058a\u0005\u0301\u0181\u0002\u058a\u058b\u0005\u030b", + "\u0186\u0002\u058b\u058c\u0005\u02fb\u017e\u0002\u058c\u058d\u0005\u0307", + "\u0184\u0002\u058d\u058e\u0005\u0315\u018b\u0002\u058e\u058f\u0005\u0317", + "\u018c\u0002\u058f\u0590\u0005\u031f\u0190\u0002\u0590\u0591\u0005\u0321", + "\u0191\u0002\u0591\u0592\u0005\u030b\u0186\u0002\u0592\u0593\u0005\u02ff", + "\u0180\u0002\u0593\u0594\u0005\u031f\u0190\u0002\u0594\u00a2\u0003\u0002", + "\u0002\u0002\u0595\u0596\u0005\u0301\u0181\u0002\u0596\u0597\u0005\u030b", + "\u0186\u0002\u0597\u0598\u0005\u031d\u018f\u0002\u0598\u00a4\u0003\u0002", + "\u0002\u0002\u0599\u059a\u0005\u0301\u0181\u0002\u059a\u059b\u0005\u030b", + "\u0186\u0002\u059b\u059c\u0005\u031d\u018f\u0002\u059c\u059d\u0005\u0303", + "\u0182\u0002\u059d\u059e\u0005\u02ff\u0180\u0002\u059e\u059f\u0005\u0321", + "\u0191\u0002\u059f\u05a0\u0005\u0317\u018c\u0002\u05a0\u05a1\u0005\u031d", + "\u018f\u0002\u05a1\u05a2\u0005\u032b\u0196\u0002\u05a2\u00a6\u0003\u0002", + "\u0002\u0002\u05a3\u05a4\u0005\u0301\u0181\u0002\u05a4\u05a5\u0005\u030b", + "\u0186\u0002\u05a5\u05a6\u0005\u031f\u0190\u0002\u05a6\u05a7\u0005\u0321", + "\u0191\u0002\u05a7\u05a8\u0005\u030b\u0186\u0002\u05a8\u05a9\u0005\u0315", + "\u018b\u0002\u05a9\u05aa\u0005\u02ff\u0180\u0002\u05aa\u05ab\u0005\u0321", + "\u0191\u0002\u05ab\u00a8\u0003\u0002\u0002\u0002\u05ac\u05ad\u0005\u0301", + "\u0181\u0002\u05ad\u05ae\u0005\u030b\u0186\u0002\u05ae\u05af\u0005\u031f", + "\u0190\u0002\u05af\u05b0\u0005\u0321\u0191\u0002\u05b0\u05b1\u0005\u031d", + "\u018f\u0002\u05b1\u05b2\u0005\u030b\u0186\u0002\u05b2\u05b3\u0005\u02fd", + "\u017f\u0002\u05b3\u05b4\u0005\u0323\u0192\u0002\u05b4\u05b5\u0005\u0321", + "\u0191\u0002\u05b5\u05b6\u0005\u0303\u0182\u0002\u05b6\u00aa\u0003\u0002", + "\u0002\u0002\u05b7\u05b8\u0005\u0301\u0181\u0002\u05b8\u05b9\u0005\u0317", + "\u018c\u0002\u05b9\u00ac\u0003\u0002\u0002\u0002\u05ba\u05bb\u0005\u0301", + "\u0181\u0002\u05bb\u05bc\u0005\u0317\u018c\u0002\u05bc\u05bd\u0005\u0323", + "\u0192\u0002\u05bd\u05be\u0005\u02fd\u017f\u0002\u05be\u05bf\u0005\u0311", + "\u0189\u0002\u05bf\u05c0\u0005\u0303\u0182\u0002\u05c0\u00ae\u0003\u0002", + "\u0002\u0002\u05c1\u05c2\u0005\u0301\u0181\u0002\u05c2\u05c3\u0005\u031d", + "\u018f\u0002\u05c3\u05c4\u0005\u0317\u018c\u0002\u05c4\u05c5\u0005\u0319", + "\u018d\u0002\u05c5\u00b0\u0003\u0002\u0002\u0002\u05c6\u05c7\u0005\u0301", + "\u0181\u0002\u05c7\u05c8\u0005\u032b\u0196\u0002\u05c8\u05c9\u0005\u0315", + "\u018b\u0002\u05c9\u05ca\u0005\u02fb\u017e\u0002\u05ca\u05cb\u0005\u0313", + "\u018a\u0002\u05cb\u05cc\u0005\u030b\u0186\u0002\u05cc\u05cd\u0005\u02ff", + "\u0180\u0002\u05cd\u00b2\u0003\u0002\u0002\u0002\u05ce\u05cf\u0005\u0303", + "\u0182\u0002\u05cf\u05d0\u0005\u0311\u0189\u0002\u05d0\u05d1\u0005\u031f", + "\u0190\u0002\u05d1\u05d2\u0005\u0303\u0182\u0002\u05d2\u00b4\u0003\u0002", + "\u0002\u0002\u05d3\u05d4\u0005\u0303\u0182\u0002\u05d4\u05d5\u0005\u0311", + "\u0189\u0002\u05d5\u05d6\u0005\u031f\u0190\u0002\u05d6\u05d7\u0005\u0303", + "\u0182\u0002\u05d7\u05d8\u0005\u030b\u0186\u0002\u05d8\u05d9\u0005\u0305", + "\u0183\u0002\u05d9\u00b6\u0003\u0002\u0002\u0002\u05da\u05db\u0005\u0303", + "\u0182\u0002\u05db\u05dc\u0005\u0311\u0189\u0002\u05dc\u05dd\u0005\u031f", + "\u0190\u0002\u05dd\u05de\u0005\u030b\u0186\u0002\u05de\u05df\u0005\u0305", + "\u0183\u0002\u05df\u00b8\u0003\u0002\u0002\u0002\u05e0\u05e1\u0005\u0303", + "\u0182\u0002\u05e1\u05e2\u0005\u0315\u018b\u0002\u05e2\u05e3\u0005\u02fb", + "\u017e\u0002\u05e3\u05e4\u0005\u02fd\u017f\u0002\u05e4\u05e5\u0005\u0311", + "\u0189\u0002\u05e5\u05e6\u0005\u0303\u0182\u0002\u05e6\u00ba\u0003\u0002", + "\u0002\u0002\u05e7\u05e8\u0005\u0303\u0182\u0002\u05e8\u05e9\u0005\u0315", + "\u018b\u0002\u05e9\u05ea\u0005\u0301\u0181\u0002\u05ea\u00bc\u0003\u0002", + "\u0002\u0002\u05eb\u05ec\u0005\u0303\u0182\u0002\u05ec\u05ed\u0005\u0315", + "\u018b\u0002\u05ed\u05ee\u0005\u0307\u0184\u0002\u05ee\u05ef\u0005\u030b", + "\u0186\u0002\u05ef\u05f0\u0005\u0315\u018b\u0002\u05f0\u05f1\u0005\u0303", + "\u0182\u0002\u05f1\u00be\u0003\u0002\u0002\u0002\u05f2\u05f3\u0005\u0303", + "\u0182\u0002\u05f3\u05f4\u0005\u031f\u0190\u0002\u05f4\u05f5\u0005\u02ff", + "\u0180\u0002\u05f5\u05f6\u0005\u02fb\u017e\u0002\u05f6\u05f7\u0005\u0319", + "\u018d\u0002\u05f7\u05f8\u0005\u0303\u0182\u0002\u05f8\u05f9\u0005\u0301", + "\u0181\u0002\u05f9\u00c0\u0003\u0002\u0002\u0002\u05fa\u05fb\u0005\u0303", + "\u0182\u0002\u05fb\u05fc\u0005\u0329\u0195\u0002\u05fc\u05fd\u0005\u02ff", + "\u0180\u0002\u05fd\u05fe\u0005\u0303\u0182\u0002\u05fe\u05ff\u0005\u0319", + "\u018d\u0002\u05ff\u0600\u0005\u0321\u0191\u0002\u0600\u00c2\u0003\u0002", + "\u0002\u0002\u0601\u0602\u0005\u0303\u0182\u0002\u0602\u0603\u0005\u0329", + "\u0195\u0002\u0603\u0604\u0005\u0303\u0182\u0002\u0604\u0605\u0005\u02ff", + "\u0180\u0002\u0605\u00c4\u0003\u0002\u0002\u0002\u0606\u0607\u0005\u0303", + "\u0182\u0002\u0607\u0608\u0005\u0329\u0195\u0002\u0608\u0609\u0005\u0303", + "\u0182\u0002\u0609\u060a\u0005\u02ff\u0180\u0002\u060a\u060b\u0005\u0323", + "\u0192\u0002\u060b\u060c\u0005\u0321\u0191\u0002\u060c\u060d\u0005\u0303", + "\u0182\u0002\u060d\u00c6\u0003\u0002\u0002\u0002\u060e\u060f\u0005\u0303", + "\u0182\u0002\u060f\u0610\u0005\u0329\u0195\u0002\u0610\u0611\u0005\u02ff", + "\u0180\u0002\u0611\u0612\u0005\u0303\u0182\u0002\u0612\u0613\u0005\u0319", + "\u018d\u0002\u0613\u0614\u0005\u0321\u0191\u0002\u0614\u0615\u0005\u030b", + "\u0186\u0002\u0615\u0616\u0005\u0317\u018c\u0002\u0616\u0617\u0005\u0315", + "\u018b\u0002\u0617\u00c8\u0003\u0002\u0002\u0002\u0618\u0619\u0005\u0303", + "\u0182\u0002\u0619\u061a\u0005\u0329\u0195\u0002\u061a\u061b\u0005\u02ff", + "\u0180\u0002\u061b\u061c\u0005\u0311\u0189\u0002\u061c\u061d\u0005\u0323", + "\u0192\u0002\u061d\u061e\u0005\u031f\u0190\u0002\u061e\u061f\u0005\u030b", + "\u0186\u0002\u061f\u0620\u0005\u0325\u0193\u0002\u0620\u0621\u0005\u0303", + "\u0182\u0002\u0621\u00ca\u0003\u0002\u0002\u0002\u0622\u0623\u0005\u0303", + "\u0182\u0002\u0623\u0624\u0005\u0329\u0195\u0002\u0624\u0625\u0005\u030b", + "\u0186\u0002\u0625\u0626\u0005\u031f\u0190\u0002\u0626\u0627\u0005\u0321", + "\u0191\u0002\u0627\u0628\u0005\u031f\u0190\u0002\u0628\u00cc\u0003\u0002", + "\u0002\u0002\u0629\u062a\u0005\u0303\u0182\u0002\u062a\u062b\u0005\u0329", + "\u0195\u0002\u062b\u062c\u0005\u030b\u0186\u0002\u062c\u062d\u0005\u0321", + "\u0191\u0002\u062d\u00ce\u0003\u0002\u0002\u0002\u062e\u062f\u0005\u0305", + "\u0183\u0002\u062f\u0630\u0005\u02fb\u017e\u0002\u0630\u0631\u0005\u0311", + "\u0189\u0002\u0631\u0632\u0005\u0311\u0189\u0002\u0632\u0633\u0005\u02fd", + "\u017f\u0002\u0633\u0634\u0005\u02fb\u017e\u0002\u0634\u0635\u0005\u02ff", + "\u0180\u0002\u0635\u0636\u0005\u030f\u0188\u0002\u0636\u00d0\u0003\u0002", + "\u0002\u0002\u0637\u0638\u0005\u0305\u0183\u0002\u0638\u0639\u0005\u02fb", + "\u017e\u0002\u0639\u063a\u0005\u0311\u0189\u0002\u063a\u063b\u0005\u031f", + "\u0190\u0002\u063b\u063c\u0005\u0303\u0182\u0002\u063c\u00d2\u0003\u0002", + "\u0002\u0002\u063d\u063e\u0005\u0305\u0183\u0002\u063e\u063f\u0005\u0303", + "\u0182\u0002\u063f\u0640\u0005\u0321\u0191\u0002\u0640\u0641\u0005\u02ff", + "\u0180\u0002\u0641\u0642\u0005\u0309\u0185\u0002\u0642\u00d4\u0003\u0002", + "\u0002\u0002\u0643\u0644\u0005\u0305\u0183\u0002\u0644\u0645\u0005\u030b", + "\u0186\u0002\u0645\u0646\u0005\u0303\u0182\u0002\u0646\u0647\u0005\u0311", + "\u0189\u0002\u0647\u0648\u0005\u0301\u0181\u0002\u0648\u0649\u0005\u031f", + "\u0190\u0002\u0649\u00d6\u0003\u0002\u0002\u0002\u064a\u064b\u0005\u0305", + "\u0183\u0002\u064b\u064c\u0005\u030b\u0186\u0002\u064c\u064d\u0005\u0311", + "\u0189\u0002\u064d\u064e\u0005\u0303\u0182\u0002\u064e\u00d8\u0003\u0002", + "\u0002\u0002\u064f\u0650\u0005\u0305\u0183\u0002\u0650\u0651\u0005\u030b", + "\u0186\u0002\u0651\u0652\u0005\u0311\u0189\u0002\u0652\u0653\u0005\u0303", + "\u0182\u0002\u0653\u0654\u0005\u031f\u0190\u0002\u0654\u00da\u0003\u0002", + "\u0002\u0002\u0655\u0656\u0005\u0305\u0183\u0002\u0656\u0657\u0005\u0311", + "\u0189\u0002\u0657\u0658\u0005\u0317\u018c\u0002\u0658\u0659\u0005\u02fb", + "\u017e\u0002\u0659\u065a\u0005\u0321\u0191\u0002\u065a\u00dc\u0003\u0002", + "\u0002\u0002\u065b\u065c\u0005\u0305\u0183\u0002\u065c\u065d\u0005\u0317", + "\u018c\u0002\u065d\u065e\u0005\u031d\u018f\u0002\u065e\u00de\u0003\u0002", + "\u0002\u0002\u065f\u0660\u0005\u0305\u0183\u0002\u0660\u0661\u0005\u0317", + "\u018c\u0002\u0661\u0662\u0005\u031d\u018f\u0002\u0662\u0663\u0005\u0303", + "\u0182\u0002\u0663\u0664\u0005\u030b\u0186\u0002\u0664\u0665\u0005\u0307", + "\u0184\u0002\u0665\u0666\u0005\u0315\u018b\u0002\u0666\u00e0\u0003\u0002", + "\u0002\u0002\u0667\u0668\u0005\u0305\u0183\u0002\u0668\u0669\u0005\u0317", + "\u018c\u0002\u0669\u066a\u0005\u031d\u018f\u0002\u066a\u066b\u0005\u0313", + "\u018a\u0002\u066b\u066c\u0005\u02fb\u017e\u0002\u066c\u066d\u0005\u0321", + "\u0191\u0002\u066d\u00e2\u0003\u0002\u0002\u0002\u066e\u066f\u0005\u0305", + "\u0183\u0002\u066f\u0670\u0005\u0317\u018c\u0002\u0670\u0671\u0005\u0323", + "\u0192\u0002\u0671\u0672\u0005\u0315\u018b\u0002\u0672\u0673\u0005\u0301", + "\u0181\u0002\u0673\u00e4\u0003\u0002\u0002\u0002\u0674\u0675\u0005\u0305", + "\u0183\u0002\u0675\u0676\u0005\u031d\u018f\u0002\u0676\u0677\u0005\u0317", + "\u018c\u0002\u0677\u0678\u0005\u0313\u018a\u0002\u0678\u00e6\u0003\u0002", + "\u0002\u0002\u0679\u067a\u0005\u0305\u0183\u0002\u067a\u067b\u0005\u0323", + "\u0192\u0002\u067b\u067c\u0005\u0311\u0189\u0002\u067c\u067d\u0005\u0311", + "\u0189\u0002\u067d\u00e8\u0003\u0002\u0002\u0002\u067e\u067f\u0005\u0305", + "\u0183\u0002\u067f\u0680\u0005\u0323\u0192\u0002\u0680\u0681\u0005\u0315", + "\u018b\u0002\u0681\u0682\u0005\u02ff\u0180\u0002\u0682\u0683\u0005\u0321", + "\u0191\u0002\u0683\u0684\u0005\u030b\u0186\u0002\u0684\u0685\u0005\u0317", + "\u018c\u0002\u0685\u0686\u0005\u0315\u018b\u0002\u0686\u00ea\u0003\u0002", + "\u0002\u0002\u0687\u0688\u0005\u0307\u0184\u0002\u0688\u0689\u0005\u0303", + "\u0182\u0002\u0689\u068a\u0005\u0321\u0191\u0002\u068a\u00ec\u0003\u0002", + "\u0002\u0002\u068b\u068c\u0005\u0307\u0184\u0002\u068c\u068d\u0005\u0311", + "\u0189\u0002\u068d\u068e\u0005\u0317\u018c\u0002\u068e\u068f\u0005\u02fd", + "\u017f\u0002\u068f\u0690\u0005\u02fb\u017e\u0002\u0690\u0691\u0005\u0311", + "\u0189\u0002\u0691\u00ee\u0003\u0002\u0002\u0002\u0692\u0693\u0005\u0307", + "\u0184\u0002\u0693\u0694\u0005\u0317\u018c\u0002\u0694\u00f0\u0003\u0002", + "\u0002\u0002\u0695\u0696\u0005\u0307\u0184\u0002\u0696\u0697\u0005\u031d", + "\u018f\u0002\u0697\u0698\u0005\u02fb\u017e\u0002\u0698\u0699\u0005\u0315", + "\u018b\u0002\u0699\u069a\u0005\u0321\u0191\u0002\u069a\u00f2\u0003\u0002", + "\u0002\u0002\u069b\u069c\u0005\u0307\u0184\u0002\u069c\u069d\u0005\u031d", + "\u018f\u0002\u069d\u069e\u0005\u0317\u018c\u0002\u069e\u069f\u0005\u0323", + "\u0192\u0002\u069f\u06a0\u0005\u0319\u018d\u0002\u06a0\u00f4\u0003\u0002", + "\u0002\u0002\u06a1\u06a2\u0005\u0309\u0185\u0002\u06a2\u06a3\u0005\u02fb", + "\u017e\u0002\u06a3\u06a4\u0005\u0315\u018b\u0002\u06a4\u06a5\u0005\u0301", + "\u0181\u0002\u06a5\u06a6\u0005\u0311\u0189\u0002\u06a6\u06a7\u0005\u0303", + "\u0182\u0002\u06a7\u06a8\u0005\u031d\u018f\u0002\u06a8\u00f6\u0003\u0002", + "\u0002\u0002\u06a9\u06aa\u0005\u0309\u0185\u0002\u06aa\u06ab\u0005\u02fb", + "\u017e\u0002\u06ab\u06ac\u0005\u031f\u0190\u0002\u06ac\u06ad\u0005\u0309", + "\u0185\u0002\u06ad\u00f8\u0003\u0002\u0002\u0002\u06ae\u06af\u0005\u0309", + "\u0185\u0002\u06af\u06b0\u0005\u02fb\u017e\u0002\u06b0\u06b1\u0005\u0325", + "\u0193\u0002\u06b1\u06b2\u0005\u030b\u0186\u0002\u06b2\u06b3\u0005\u0315", + "\u018b\u0002\u06b3\u06b4\u0005\u0307\u0184\u0002\u06b4\u00fa\u0003\u0002", + "\u0002\u0002\u06b5\u06b6\u0005\u0309\u0185\u0002\u06b6\u06b7\u0005\u0301", + "\u0181\u0002\u06b7\u06b8\u0005\u0305\u0183\u0002\u06b8\u06b9\u0005\u031f", + "\u0190\u0002\u06b9\u00fc\u0003\u0002\u0002\u0002\u06ba\u06bb\u0005\u0309", + "\u0185\u0002\u06bb\u06bc\u0005\u030b\u0186\u0002\u06bc\u06bd\u0005\u0325", + "\u0193\u0002\u06bd\u06be\u0005\u0303\u0182\u0002\u06be\u00fe\u0003\u0002", + "\u0002\u0002\u06bf\u06c0\u0005\u0309\u0185\u0002\u06c0\u06c1\u0005\u0317", + "\u018c\u0002\u06c1\u06c2\u0005\u031f\u0190\u0002\u06c2\u06c3\u0005\u0321", + "\u0191\u0002\u06c3\u0100\u0003\u0002\u0002\u0002\u06c4\u06c5\u0005\u030b", + "\u0186\u0002\u06c5\u06c6\u0005\u0301\u0181\u0002\u06c6\u06c7\u0005\u0303", + "\u0182\u0002\u06c7\u06c8\u0005\u0315\u018b\u0002\u06c8\u06c9\u0005\u0321", + "\u0191\u0002\u06c9\u06ca\u0005\u030b\u0186\u0002\u06ca\u06cb\u0005\u0321", + "\u0191\u0002\u06cb\u06cc\u0005\u032b\u0196\u0002\u06cc\u0102\u0003\u0002", + "\u0002\u0002\u06cd\u06ce\u0005\u030b\u0186\u0002\u06ce\u06cf\u0005\u0305", + "\u0183\u0002\u06cf\u0104\u0003\u0002\u0002\u0002\u06d0\u06d1\u0005\u030b", + "\u0186\u0002\u06d1\u06d2\u0005\u0307\u0184\u0002\u06d2\u06d3\u0005\u0315", + "\u018b\u0002\u06d3\u06d4\u0005\u0317\u018c\u0002\u06d4\u06d5\u0005\u031d", + "\u018f\u0002\u06d5\u06d6\u0005\u0303\u0182\u0002\u06d6\u0106\u0003\u0002", + "\u0002\u0002\u06d7\u06d8\u0005\u030b\u0186\u0002\u06d8\u06d9\u0005\u0313", + "\u018a\u0002\u06d9\u06da\u0005\u0313\u018a\u0002\u06da\u06db\u0005\u0303", + "\u0182\u0002\u06db\u06dc\u0005\u0301\u0181\u0002\u06dc\u06dd\u0005\u030b", + "\u0186\u0002\u06dd\u06de\u0005\u02fb\u017e\u0002\u06de\u06df\u0005\u0321", + "\u0191\u0002\u06df\u06e0\u0005\u0303\u0182\u0002\u06e0\u0108\u0003\u0002", + "\u0002\u0002\u06e1\u06e2\u0005\u030b\u0186\u0002\u06e2\u06e3\u0005\u0315", + "\u018b\u0002\u06e3\u010a\u0003\u0002\u0002\u0002\u06e4\u06e5\u0005\u030b", + "\u0186\u0002\u06e5\u06e6\u0005\u0315\u018b\u0002\u06e6\u06e7\u0005\u02ff", + "\u0180\u0002\u06e7\u06e8\u0005\u0311\u0189\u0002\u06e8\u06e9\u0005\u0323", + "\u0192\u0002\u06e9\u06ea\u0005\u0301\u0181\u0002\u06ea\u06eb\u0005\u0303", + "\u0182\u0002\u06eb\u010c\u0003\u0002\u0002\u0002\u06ec\u06ed\u0005\u030b", + "\u0186\u0002\u06ed\u06ee\u0005\u0315\u018b\u0002\u06ee\u06ef\u0005\u0301", + "\u0181\u0002\u06ef\u06f0\u0005\u0303\u0182\u0002\u06f0\u06f1\u0005\u0329", + "\u0195\u0002\u06f1\u010e\u0003\u0002\u0002\u0002\u06f2\u06f3\u0005\u030b", + "\u0186\u0002\u06f3\u06f4\u0005\u0315\u018b\u0002\u06f4\u06f5\u0005\u030b", + "\u0186\u0002\u06f5\u06f6\u0005\u0321\u0191\u0002\u06f6\u06f7\u0005\u031d", + "\u018f\u0002\u06f7\u06f8\u0005\u02fb\u017e\u0002\u06f8\u06f9\u0005\u0315", + "\u018b\u0002\u06f9\u06fa\u0005\u031f\u0190\u0002\u06fa\u0110\u0003\u0002", + "\u0002\u0002\u06fb\u06fc\u0005\u030b\u0186\u0002\u06fc\u06fd\u0005\u0315", + "\u018b\u0002\u06fd\u06fe\u0005\u0315\u018b\u0002\u06fe\u06ff\u0005\u0303", + "\u0182\u0002\u06ff\u0700\u0005\u031d\u018f\u0002\u0700\u0112\u0003\u0002", + "\u0002\u0002\u0701\u0702\u0005\u030b\u0186\u0002\u0702\u0703\u0005\u0315", + "\u018b\u0002\u0703\u0704\u0005\u0317\u018c\u0002\u0704\u0705\u0005\u0323", + "\u0192\u0002\u0705\u0706\u0005\u0321\u0191\u0002\u0706\u0114\u0003\u0002", + "\u0002\u0002\u0707\u0708\u0005\u030b\u0186\u0002\u0708\u0709\u0005\u0315", + "\u018b\u0002\u0709\u070a\u0005\u031f\u0190\u0002\u070a\u070b\u0005\u0303", + "\u0182\u0002\u070b\u070c\u0005\u031d\u018f\u0002\u070c\u070d\u0005\u0321", + "\u0191\u0002\u070d\u0116\u0003\u0002\u0002\u0002\u070e\u070f\u0005\u030b", + "\u0186\u0002\u070f\u0710\u0005\u0315\u018b\u0002\u0710\u0711\u0005\u0321", + "\u0191\u0002\u0711\u0118\u0003\u0002\u0002\u0002\u0712\u0713\u0005\u030b", + "\u0186\u0002\u0713\u0714\u0005\u0315\u018b\u0002\u0714\u0715\u0005\u0321", + "\u0191\u0002\u0715\u0716\u00074\u0002\u0002\u0716\u011a\u0003\u0002", + "\u0002\u0002\u0717\u0718\u0005\u030b\u0186\u0002\u0718\u0719\u0005\u0315", + "\u018b\u0002\u0719\u071a\u0005\u0321\u0191\u0002\u071a\u071b\u00076", + "\u0002\u0002\u071b\u011c\u0003\u0002\u0002\u0002\u071c\u071d\u0005\u030b", + "\u0186\u0002\u071d\u071e\u0005\u0315\u018b\u0002\u071e\u071f\u0005\u0321", + "\u0191\u0002\u071f\u0720\u0007:\u0002\u0002\u0720\u011e\u0003\u0002", + "\u0002\u0002\u0721\u0722\u0005\u030b\u0186\u0002\u0722\u0723\u0005\u0315", + "\u018b\u0002\u0723\u0724\u0005\u0321\u0191\u0002\u0724\u0725\u0005\u0303", + "\u0182\u0002\u0725\u0726\u0005\u0307\u0184\u0002\u0726\u0727\u0005\u0303", + "\u0182\u0002\u0727\u0728\u0005\u031d\u018f\u0002\u0728\u0120\u0003\u0002", + "\u0002\u0002\u0729\u072a\u0005\u030b\u0186\u0002\u072a\u072b\u0005\u0315", + "\u018b\u0002\u072b\u072c\u0005\u0321\u0191\u0002\u072c\u072d\u0005\u0303", + "\u0182\u0002\u072d\u072e\u0005\u031d\u018f\u0002\u072e\u072f\u0005\u031f", + "\u0190\u0002\u072f\u0730\u0005\u0303\u0182\u0002\u0730\u0731\u0005\u02ff", + "\u0180\u0002\u0731\u0732\u0005\u0321\u0191\u0002\u0732\u0122\u0003\u0002", + "\u0002\u0002\u0733\u0734\u0005\u030b\u0186\u0002\u0734\u0735\u0005\u0315", + "\u018b\u0002\u0735\u0736\u0005\u0321\u0191\u0002\u0736\u0737\u0005\u0303", + "\u0182\u0002\u0737\u0738\u0005\u031d\u018f\u0002\u0738\u0739\u0005\u0325", + "\u0193\u0002\u0739\u073a\u0005\u02fb\u017e\u0002\u073a\u073b\u0005\u0311", + "\u0189\u0002\u073b\u0124\u0003\u0002\u0002\u0002\u073c\u073d\u0005\u030b", + "\u0186\u0002\u073d\u073e\u0005\u0315\u018b\u0002\u073e\u073f\u0005\u0321", + "\u0191\u0002\u073f\u0740\u0005\u0317\u018c\u0002\u0740\u0126\u0003\u0002", + "\u0002\u0002\u0741\u0742\u0005\u030b\u0186\u0002\u0742\u0743\u0005\u0315", + "\u018b\u0002\u0743\u0744\u0005\u0325\u0193\u0002\u0744\u0745\u0005\u0317", + "\u018c\u0002\u0745\u0746\u0005\u030f\u0188\u0002\u0746\u0747\u0005\u0303", + "\u0182\u0002\u0747\u0748\u0005\u031d\u018f\u0002\u0748\u0128\u0003\u0002", + "\u0002\u0002\u0749\u074a\u0005\u030b\u0186\u0002\u074a\u074b\u0005\u031f", + "\u0190\u0002\u074b\u012a\u0003\u0002\u0002\u0002\u074c\u074d\u0005\u030b", + "\u0186\u0002\u074d\u074e\u0005\u031f\u0190\u0002\u074e\u074f\u0005\u0317", + "\u018c\u0002\u074f\u0750\u0005\u0319\u018d\u0002\u0750\u0751\u0005\u0303", + "\u0182\u0002\u0751\u0752\u0005\u0315\u018b\u0002\u0752\u012c\u0003\u0002", + "\u0002\u0002\u0753\u0754\u0005\u030b\u0186\u0002\u0754\u0755\u0005\u0321", + "\u0191\u0002\u0755\u0756\u0005\u0303\u0182\u0002\u0756\u0757\u0005\u0313", + "\u018a\u0002\u0757\u0758\u0005\u031f\u0190\u0002\u0758\u012e\u0003\u0002", + "\u0002\u0002\u0759\u075a\u0005\u030d\u0187\u0002\u075a\u075b\u0005\u0317", + "\u018c\u0002\u075b\u075c\u0005\u030b\u0186\u0002\u075c\u075d\u0005\u0315", + "\u018b\u0002\u075d\u0130\u0003\u0002\u0002\u0002\u075e\u075f\u0005\u030f", + "\u0188\u0002\u075f\u0760\u0005\u0303\u0182\u0002\u0760\u0761\u0005\u0303", + "\u0182\u0002\u0761\u0762\u0005\u0319\u018d\u0002\u0762\u0132\u0003\u0002", + "\u0002\u0002\u0763\u0764\u0005\u030f\u0188\u0002\u0764\u0765\u0005\u0303", + "\u0182\u0002\u0765\u0766\u0005\u032b\u0196\u0002\u0766\u0134\u0003\u0002", + "\u0002\u0002\u0767\u0768\u0005\u030f\u0188\u0002\u0768\u0769\u0005\u0303", + "\u0182\u0002\u0769\u076a\u0005\u032b\u0196\u0002\u076a\u076b\u0005\u031f", + "\u0190\u0002\u076b\u0136\u0003\u0002\u0002\u0002\u076c\u076d\u0005\u0311", + "\u0189\u0002\u076d\u076e\u0005\u02fb\u017e\u0002\u076e\u076f\u0005\u0315", + "\u018b\u0002\u076f\u0770\u0005\u0307\u0184\u0002\u0770\u0771\u0005\u0323", + "\u0192\u0002\u0771\u0772\u0005\u02fb\u017e\u0002\u0772\u0773\u0005\u0307", + "\u0184\u0002\u0773\u0774\u0005\u0303\u0182\u0002\u0774\u0138\u0003\u0002", + "\u0002\u0002\u0775\u0776\u0005\u0311\u0189\u0002\u0776\u0777\u0005\u0303", + "\u0182\u0002\u0777\u0778\u0005\u02fb\u017e\u0002\u0778\u0779\u0005\u0325", + "\u0193\u0002\u0779\u077a\u0005\u0303\u0182\u0002\u077a\u013a\u0003\u0002", + "\u0002\u0002\u077b\u077c\u0005\u0311\u0189\u0002\u077c\u077d\u0005\u0303", + "\u0182\u0002\u077d\u077e\u0005\u0305\u0183\u0002\u077e\u077f\u0005\u0321", + "\u0191\u0002\u077f\u013c\u0003\u0002\u0002\u0002\u0780\u0781\u0005\u0311", + "\u0189\u0002\u0781\u0782\u0005\u030b\u0186\u0002\u0782\u0783\u0005\u030f", + "\u0188\u0002\u0783\u0784\u0005\u0303\u0182\u0002\u0784\u013e\u0003\u0002", + "\u0002\u0002\u0785\u0786\u0005\u0311\u0189\u0002\u0786\u0787\u0005\u030b", + "\u0186\u0002\u0787\u0788\u0005\u0313\u018a\u0002\u0788\u0789\u0005\u030b", + "\u0186\u0002\u0789\u078a\u0005\u0321\u0191\u0002\u078a\u0140\u0003\u0002", + "\u0002\u0002\u078b\u078c\u0005\u0311\u0189\u0002\u078c\u078d\u0005\u030b", + "\u0186\u0002\u078d\u078e\u0005\u0315\u018b\u0002\u078e\u078f\u0005\u0303", + "\u0182\u0002\u078f\u0790\u0005\u031f\u0190\u0002\u0790\u0142\u0003\u0002", + "\u0002\u0002\u0791\u0792\u0005\u0311\u0189\u0002\u0792\u0793\u0005\u0317", + "\u018c\u0002\u0793\u0794\u0005\u02ff\u0180\u0002\u0794\u0795\u0005\u02fb", + "\u017e\u0002\u0795\u0796\u0005\u0311\u0189\u0002\u0796\u0144\u0003\u0002", + "\u0002\u0002\u0797\u0798\u0005\u0311\u0189\u0002\u0798\u0799\u0005\u0317", + "\u018c\u0002\u0799\u079a\u0005\u02ff\u0180\u0002\u079a\u079b\u0005\u02fb", + "\u017e\u0002\u079b\u079c\u0005\u0321\u0191\u0002\u079c\u079d\u0005\u030b", + "\u0186\u0002\u079d\u079e\u0005\u0317\u018c\u0002\u079e\u079f\u0005\u0315", + "\u018b\u0002\u079f\u0146\u0003\u0002\u0002\u0002\u07a0\u07a1\u0005\u0311", + "\u0189\u0002\u07a1\u07a2\u0005\u0317\u018c\u0002\u07a2\u07a3\u0005\u02ff", + "\u0180\u0002\u07a3\u07a4\u0005\u02fb\u017e\u0002\u07a4\u07a5\u0005\u0321", + "\u0191\u0002\u07a5\u07a6\u0005\u0317\u018c\u0002\u07a6\u07a7\u0005\u031d", + "\u018f\u0002\u07a7\u0148\u0003\u0002\u0002\u0002\u07a8\u07a9\u0005\u0311", + "\u0189\u0002\u07a9\u07aa\u0005\u0317\u018c\u0002\u07aa\u07ab\u0005\u02ff", + "\u0180\u0002\u07ab\u07ac\u0005\u02fb\u017e\u0002\u07ac\u07ad\u0005\u0321", + "\u0191\u0002\u07ad\u07ae\u0005\u0317\u018c\u0002\u07ae\u07af\u0005\u031d", + "\u018f\u0002\u07af\u07b0\u0005\u031f\u0190\u0002\u07b0\u014a\u0003\u0002", + "\u0002\u0002\u07b1\u07b2\u0005\u0311\u0189\u0002\u07b2\u07b3\u0005\u0317", + "\u018c\u0002\u07b3\u07b4\u0005\u02ff\u0180\u0002\u07b4\u07b5\u0005\u030f", + "\u0188\u0002\u07b5\u07b6\u0005\u031f\u0190\u0002\u07b6\u014c\u0003\u0002", + "\u0002\u0002\u07b7\u07b8\u0005\u0311\u0189\u0002\u07b8\u07b9\u0005\u0317", + "\u018c\u0002\u07b9\u07ba\u0005\u0307\u0184\u0002\u07ba\u014e\u0003\u0002", + "\u0002\u0002\u07bb\u07bc\u0005\u0311\u0189\u0002\u07bc\u07bd\u0005\u0317", + "\u018c\u0002\u07bd\u07be\u0005\u0307\u0184\u0002\u07be\u07bf\u0005\u0307", + "\u0184\u0002\u07bf\u07c0\u0005\u0303\u0182\u0002\u07c0\u07c1\u0005\u0301", + "\u0181\u0002\u07c1\u0150\u0003\u0002\u0002\u0002\u07c2\u07c3\u0005\u0311", + "\u0189\u0002\u07c3\u07c4\u0005\u0317\u018c\u0002\u07c4\u07c5\u0005\u0307", + "\u0184\u0002\u07c5\u07c6\u0005\u0307\u0184\u0002\u07c6\u07c7\u0005\u030b", + "\u0186\u0002\u07c7\u07c8\u0005\u0315\u018b\u0002\u07c8\u07c9\u0005\u0307", + "\u0184\u0002\u07c9\u0152\u0003\u0002\u0002\u0002\u07ca\u07cb\u0005\u0311", + "\u0189\u0002\u07cb\u07cc\u0005\u0317\u018c\u0002\u07cc\u07cd\u0005\u0317", + "\u018c\u0002\u07cd\u07ce\u0005\u0319\u018d\u0002\u07ce\u0154\u0003\u0002", + "\u0002\u0002\u07cf\u07d0\u0005\u0313\u018a\u0002\u07d0\u07d1\u0005\u02fb", + "\u017e\u0002\u07d1\u07d2\u0005\u0319\u018d\u0002\u07d2\u0156\u0003\u0002", + "\u0002\u0002\u07d3\u07d4\u0005\u0313\u018a\u0002\u07d4\u07d5\u0005\u02fb", + "\u017e\u0002\u07d5\u07d6\u0005\u0321\u0191\u0002\u07d6\u07d7\u0005\u02ff", + "\u0180\u0002\u07d7\u07d8\u0005\u0309\u0185\u0002\u07d8\u07d9\u0005\u0303", + "\u0182\u0002\u07d9\u07da\u0005\u0301\u0181\u0002\u07da\u0158\u0003\u0002", + "\u0002\u0002\u07db\u07dc\u0005\u0313\u018a\u0002\u07dc\u07dd\u0005\u02fb", + "\u017e\u0002\u07dd\u07de\u0005\u0329\u0195\u0002\u07de\u015a\u0003\u0002", + "\u0002\u0002\u07df\u07e0\u0005\u0313\u018a\u0002\u07e0\u07e1\u0005\u02fb", + "\u017e\u0002\u07e1\u07e2\u0005\u0329\u0195\u0002\u07e2\u07e3\u0005\u0321", + "\u0191\u0002\u07e3\u07e4\u0005\u031d\u018f\u0002\u07e4\u07e5\u0005\u02fb", + "\u017e\u0002\u07e5\u07e6\u0005\u0315\u018b\u0002\u07e6\u07e7\u0005\u031f", + "\u0190\u0002\u07e7\u015c\u0003\u0002\u0002\u0002\u07e8\u07e9\u0005\u0313", + "\u018a\u0002\u07e9\u07ea\u0005\u0303\u0182\u0002\u07ea\u07eb\u0005\u031d", + "\u018f\u0002\u07eb\u07ec\u0005\u0307\u0184\u0002\u07ec\u07ed\u0005\u0303", + "\u0182\u0002\u07ed\u015e\u0003\u0002\u0002\u0002\u07ee\u07ef\u0005\u0313", + "\u018a\u0002\u07ef\u07f0\u0005\u0303\u0182\u0002\u07f0\u07f1\u0005\u031f", + "\u0190\u0002\u07f1\u07f2\u0005\u031f\u0190\u0002\u07f2\u07f3\u0005\u02fb", + "\u017e\u0002\u07f3\u07f4\u0005\u0307\u0184\u0002\u07f4\u07f5\u0005\u0303", + "\u0182\u0002\u07f5\u07f6\u0007a\u0002\u0002\u07f6\u07f7\u0005\u0321", + "\u0191\u0002\u07f7\u07f8\u0005\u0303\u0182\u0002\u07f8\u07f9\u0005\u0329", + "\u0195\u0002\u07f9\u07fa\u0005\u0321\u0191\u0002\u07fa\u0160\u0003\u0002", + "\u0002\u0002\u07fb\u07fc\u0005\u0313\u018a\u0002\u07fc\u07fd\u0005\u030b", + "\u0186\u0002\u07fd\u07fe\u0005\u02ff\u0180\u0002\u07fe\u07ff\u0005\u031d", + "\u018f\u0002\u07ff\u0800\u0005\u0317\u018c\u0002\u0800\u0801\u0005\u031f", + "\u0190\u0002\u0801\u0802\u0005\u0303\u0182\u0002\u0802\u0803\u0005\u02ff", + "\u0180\u0002\u0803\u0804\u0005\u0317\u018c\u0002\u0804\u0805\u0005\u0315", + "\u018b\u0002\u0805\u0806\u0005\u0301\u0181\u0002\u0806\u0162\u0003\u0002", + "\u0002\u0002\u0807\u0808\u0005\u0313\u018a\u0002\u0808\u0809\u0005\u030b", + "\u0186\u0002\u0809\u080a\u0005\u02ff\u0180\u0002\u080a\u080b\u0005\u031d", + "\u018f\u0002\u080b\u080c\u0005\u0317\u018c\u0002\u080c\u080d\u0005\u031f", + "\u0190\u0002\u080d\u080e\u0005\u0303\u0182\u0002\u080e\u080f\u0005\u02ff", + "\u0180\u0002\u080f\u0810\u0005\u0317\u018c\u0002\u0810\u0811\u0005\u0315", + "\u018b\u0002\u0811\u0812\u0005\u0301\u0181\u0002\u0812\u0813\u0005\u031f", + "\u0190\u0002\u0813\u0164\u0003\u0002\u0002\u0002\u0814\u0815\u0005\u0313", + "\u018a\u0002\u0815\u0816\u0005\u030b\u0186\u0002\u0816\u0817\u0005\u0315", + "\u018b\u0002\u0817\u0166\u0003\u0002\u0002\u0002\u0818\u0819\u0005\u0313", + "\u018a\u0002\u0819\u081a\u0005\u0323\u0192\u0002\u081a\u081b\u0005\u0311", + "\u0189\u0002\u081b\u081c\u0005\u0321\u0191\u0002\u081c\u081d\u0005\u030b", + "\u0186\u0002\u081d\u081e\u0005\u031f\u0190\u0002\u081e\u081f\u0005\u0303", + "\u0182\u0002\u081f\u0820\u0005\u0321\u0191\u0002\u0820\u0168\u0003\u0002", + "\u0002\u0002\u0821\u0822\u0005\u0315\u018b\u0002\u0822\u0823\u0005\u02ff", + "\u0180\u0002\u0823\u0824\u0005\u0309\u0185\u0002\u0824\u0825\u0005\u02fb", + "\u017e\u0002\u0825\u0826\u0005\u031d\u018f\u0002\u0826\u016a\u0003\u0002", + "\u0002\u0002\u0827\u0828\u0005\u0315\u018b\u0002\u0828\u0829\u0005\u0303", + "\u0182\u0002\u0829\u082a\u0005\u0327\u0194\u0002\u082a\u016c\u0003\u0002", + "\u0002\u0002\u082b\u082c\u0005\u0315\u018b\u0002\u082c\u082d\u0005\u0325", + "\u0193\u0002\u082d\u082e\u0005\u02fb\u017e\u0002\u082e\u082f\u0005\u031d", + "\u018f\u0002\u082f\u0830\u0005\u02ff\u0180\u0002\u0830\u0831\u0005\u0309", + "\u0185\u0002\u0831\u0832\u0005\u02fb\u017e\u0002\u0832\u0833\u0005\u031d", + "\u018f\u0002\u0833\u016e\u0003\u0002\u0002\u0002\u0834\u0835\u0005\u0315", + "\u018b\u0002\u0835\u0836\u0005\u0317\u018c\u0002\u0836\u0170\u0003\u0002", + "\u0002\u0002\u0837\u0838\u0005\u0315\u018b\u0002\u0838\u0839\u0005\u0317", + "\u018c\u0002\u0839\u083a\u0005\u02ff\u0180\u0002\u083a\u083b\u0005\u0317", + "\u018c\u0002\u083b\u083c\u0005\u0323\u0192\u0002\u083c\u083d\u0005\u0315", + "\u018b\u0002\u083d\u083e\u0005\u0321\u0191\u0002\u083e\u0172\u0003\u0002", + "\u0002\u0002\u083f\u0840\u0005\u0315\u018b\u0002\u0840\u0841\u0005\u0317", + "\u018c\u0002\u0841\u0842\u0005\u02ff\u0180\u0002\u0842\u0843\u0005\u0317", + "\u018c\u0002\u0843\u0844\u0005\u0313\u018a\u0002\u0844\u0845\u0005\u0319", + "\u018d\u0002\u0845\u0846\u0005\u031d\u018f\u0002\u0846\u0847\u0005\u0303", + "\u0182\u0002\u0847\u0848\u0005\u031f\u0190\u0002\u0848\u0849\u0005\u031f", + "\u0190\u0002\u0849\u0174\u0003\u0002\u0002\u0002\u084a\u084b\u0005\u0315", + "\u018b\u0002\u084b\u084c\u0005\u0317\u018c\u0002\u084c\u084d\u0005\u0311", + "\u0189\u0002\u084d\u084e\u0005\u0317\u018c\u0002\u084e\u084f\u0005\u0307", + "\u0184\u0002\u084f\u0850\u0005\u0307\u0184\u0002\u0850\u0851\u0005\u030b", + "\u0186\u0002\u0851\u0852\u0005\u0315\u018b\u0002\u0852\u0853\u0005\u0307", + "\u0184\u0002\u0853\u0176\u0003\u0002\u0002\u0002\u0854\u0855\u0005\u0315", + "\u018b\u0002\u0855\u0856\u0005\u0317\u018c\u0002\u0856\u0857\u0005\u0315", + "\u018b\u0002\u0857\u0858\u0005\u0303\u0182\u0002\u0858\u0178\u0003\u0002", + "\u0002\u0002\u0859\u085a\u0005\u0315\u018b\u0002\u085a\u085b\u0005\u0317", + "\u018c\u0002\u085b\u085c\u0005\u0321\u0191\u0002\u085c\u017a\u0003\u0002", + "\u0002\u0002\u085d\u085e\u0005\u0315\u018b\u0002\u085e\u085f\u0005\u0317", + "\u018c\u0002\u085f\u0860\u0005\u0321\u0191\u0002\u0860\u0861\u0005\u0305", + "\u0183\u0002\u0861\u0862\u0005\u0317\u018c\u0002\u0862\u0863\u0005\u0323", + "\u0192\u0002\u0863\u0864\u0005\u0315\u018b\u0002\u0864\u0865\u0005\u0301", + "\u0181\u0002\u0865\u017c\u0003\u0002\u0002\u0002\u0866\u0867\u0005\u0315", + "\u018b\u0002\u0867\u0868\u0005\u0323\u0192\u0002\u0868\u0869\u0005\u0311", + "\u0189\u0002\u0869\u086a\u0005\u0311\u0189\u0002\u086a\u017e\u0003\u0002", + "\u0002\u0002\u086b\u086c\u0005\u0315\u018b\u0002\u086c\u086d\u0005\u0323", + "\u0192\u0002\u086d\u086e\u0005\u0313\u018a\u0002\u086e\u086f\u0005\u0303", + "\u0182\u0002\u086f\u0870\u0005\u031d\u018f\u0002\u0870\u0871\u0005\u030b", + "\u0186\u0002\u0871\u0872\u0005\u02ff\u0180\u0002\u0872\u0180\u0003\u0002", + "\u0002\u0002\u0873\u0874\u0005\u0315\u018b\u0002\u0874\u0875\u0005\u0323", + "\u0192\u0002\u0875\u0876\u0005\u0313\u018a\u0002\u0876\u0877\u0005\u02fd", + "\u017f\u0002\u0877\u0878\u0005\u0303\u0182\u0002\u0878\u0879\u0005\u031d", + "\u018f\u0002\u0879\u0182\u0003\u0002\u0002\u0002\u087a\u087b\u0005\u0317", + "\u018c\u0002\u087b\u087c\u0005\u02fd\u017f\u0002\u087c\u087d\u0005\u030d", + "\u0187\u0002\u087d\u087e\u0005\u0303\u0182\u0002\u087e\u087f\u0005\u02ff", + "\u0180\u0002\u087f\u0880\u0005\u0321\u0191\u0002\u0880\u0184\u0003\u0002", + "\u0002\u0002\u0881\u0882\u0005\u0317\u018c\u0002\u0882\u0883\u0005\u0305", + "\u0183\u0002\u0883\u0884\u0005\u0305\u0183\u0002\u0884\u0186\u0003\u0002", + "\u0002\u0002\u0885\u0886\u0005\u0317\u018c\u0002\u0886\u0887\u0005\u0315", + "\u018b\u0002\u0887\u0188\u0003\u0002\u0002\u0002\u0888\u0889\u0005\u0317", + "\u018c\u0002\u0889\u088a\u0005\u0315\u018b\u0002\u088a\u088b\u0005\u0311", + "\u0189\u0002\u088b\u088c\u0005\u032b\u0196\u0002\u088c\u018a\u0003\u0002", + "\u0002\u0002\u088d\u088e\u0005\u0317\u018c\u0002\u088e\u088f\u0005\u0319", + "\u018d\u0002\u088f\u0890\u0005\u0303\u0182\u0002\u0890\u0891\u0005\u0315", + "\u018b\u0002\u0891\u018c\u0003\u0002\u0002\u0002\u0892\u0893\u0005\u0317", + "\u018c\u0002\u0893\u0894\u0005\u031d\u018f\u0002\u0894\u018e\u0003\u0002", + "\u0002\u0002\u0895\u0896\u0005\u0317\u018c\u0002\u0896\u0897\u0005\u031d", + "\u018f\u0002\u0897\u0898\u0005\u0301\u0181\u0002\u0898\u0899\u0005\u0303", + "\u0182\u0002\u0899\u089a\u0005\u031d\u018f\u0002\u089a\u0190\u0003\u0002", + "\u0002\u0002\u089b\u089c\u0005\u0317\u018c\u0002\u089c\u089d\u0005\u0323", + "\u0192\u0002\u089d\u089e\u0005\u0321\u0191\u0002\u089e\u0192\u0003\u0002", + "\u0002\u0002\u089f\u08a0\u0005\u0317\u018c\u0002\u08a0\u08a1\u0005\u0323", + "\u0192\u0002\u08a1\u08a2\u0005\u0321\u0191\u0002\u08a2\u08a3\u0005\u0303", + "\u0182\u0002\u08a3\u08a4\u0005\u031d\u018f\u0002\u08a4\u0194\u0003\u0002", + "\u0002\u0002\u08a5\u08a6\u0005\u0317\u018c\u0002\u08a6\u08a7\u0005\u0325", + "\u0193\u0002\u08a7\u08a8\u0005\u0303\u0182\u0002\u08a8\u08a9\u0005\u031d", + "\u018f\u0002\u08a9\u0196\u0003\u0002\u0002\u0002\u08aa\u08ab\u0005\u0317", + "\u018c\u0002\u08ab\u08ac\u0005\u0325\u0193\u0002\u08ac\u08ad\u0005\u0303", + "\u0182\u0002\u08ad\u08ae\u0005\u031d\u018f\u0002\u08ae\u08af\u0005\u0327", + "\u0194\u0002\u08af\u08b0\u0005\u031d\u018f\u0002\u08b0\u08b1\u0005\u030b", + "\u0186\u0002\u08b1\u08b2\u0005\u0321\u0191\u0002\u08b2\u08b3\u0005\u0303", + "\u0182\u0002\u08b3\u0198\u0003\u0002\u0002\u0002\u08b4\u08b5\u0005\u0317", + "\u018c\u0002\u08b5\u08b6\u0005\u0327\u0194\u0002\u08b6\u08b7\u0005\u0315", + "\u018b\u0002\u08b7\u08b8\u0005\u0303\u0182\u0002\u08b8\u08b9\u0005\u031d", + "\u018f\u0002\u08b9\u019a\u0003\u0002\u0002\u0002\u08ba\u08bb\u0005\u0319", + "\u018d\u0002\u08bb\u08bc\u0005\u02fb\u017e\u0002\u08bc\u08bd\u0005\u02ff", + "\u0180\u0002\u08bd\u08be\u0005\u030f\u0188\u0002\u08be\u08bf\u0005\u02fb", + "\u017e\u0002\u08bf\u08c0\u0005\u0307\u0184\u0002\u08c0\u08c1\u0005\u0303", + "\u0182\u0002\u08c1\u019c\u0003\u0002\u0002\u0002\u08c2\u08c3\u0005\u0319", + "\u018d\u0002\u08c3\u08c4\u0005\u02fb\u017e\u0002\u08c4\u08c5\u0005\u031d", + "\u018f\u0002\u08c5\u08c6\u0005\u0321\u0191\u0002\u08c6\u08c7\u0005\u030b", + "\u0186\u0002\u08c7\u08c8\u0005\u0321\u0191\u0002\u08c8\u08c9\u0005\u030b", + "\u0186\u0002\u08c9\u08ca\u0005\u0317\u018c\u0002\u08ca\u08cb\u0005\u0315", + "\u018b\u0002\u08cb\u019e\u0003\u0002\u0002\u0002\u08cc\u08cd\u0005\u0319", + "\u018d\u0002\u08cd\u08ce\u0005\u02ff\u0180\u0002\u08ce\u08cf\u0005\u0321", + "\u0191\u0002\u08cf\u08d0\u0005\u0305\u0183\u0002\u08d0\u08d1\u0005\u031d", + "\u018f\u0002\u08d1\u08d2\u0005\u0303\u0182\u0002\u08d2\u08d3\u0005\u0303", + "\u0182\u0002\u08d3\u01a0\u0003\u0002\u0002\u0002\u08d4\u08d5\u0005\u0319", + "\u018d\u0002\u08d5\u08d6\u0005\u02ff\u0180\u0002\u08d6\u08d7\u0005\u0321", + "\u0191\u0002\u08d7\u08d8\u0005\u0323\u0192\u0002\u08d8\u08d9\u0005\u031f", + "\u0190\u0002\u08d9\u08da\u0005\u0303\u0182\u0002\u08da\u08db\u0005\u0301", + "\u0181\u0002\u08db\u01a2\u0003\u0002\u0002\u0002\u08dc\u08dd\u0005\u0319", + "\u018d\u0002\u08dd\u08de\u0005\u0311\u0189\u0002\u08de\u08df\u0005\u031f", + "\u0190\u0002\u08df\u08e0\u0007a\u0002\u0002\u08e0\u08e1\u0005\u030b", + "\u0186\u0002\u08e1\u08e2\u0005\u0315\u018b\u0002\u08e2\u08e3\u0005\u0321", + "\u0191\u0002\u08e3\u08e4\u0005\u0303\u0182\u0002\u08e4\u08e5\u0005\u0307", + "\u0184\u0002\u08e5\u08e6\u0005\u0303\u0182\u0002\u08e6\u08e7\u0005\u031d", + "\u018f\u0002\u08e7\u01a4\u0003\u0002\u0002\u0002\u08e8\u08e9\u0005\u0319", + "\u018d\u0002\u08e9\u08ea\u0005\u031d\u018f\u0002\u08ea\u08eb\u0005\u0303", + "\u0182\u0002\u08eb\u08ec\u0005\u02ff\u0180\u0002\u08ec\u08ed\u0005\u030b", + "\u0186\u0002\u08ed\u08ee\u0005\u031f\u0190\u0002\u08ee\u08ef\u0005\u030b", + "\u0186\u0002\u08ef\u08f0\u0005\u0317\u018c\u0002\u08f0\u08f1\u0005\u0315", + "\u018b\u0002\u08f1\u01a6\u0003\u0002\u0002\u0002\u08f2\u08f3\u0005\u0319", + "\u018d\u0002\u08f3\u08f4\u0005\u031d\u018f\u0002\u08f4\u08f5\u0005\u0303", + "\u0182\u0002\u08f5\u08f6\u0005\u031f\u0190\u0002\u08f6\u08f7\u0005\u0303", + "\u0182\u0002\u08f7\u08f8\u0005\u031d\u018f\u0002\u08f8\u08f9\u0005\u0325", + "\u0193\u0002\u08f9\u08fa\u0005\u0303\u0182\u0002\u08fa\u01a8\u0003\u0002", + "\u0002\u0002\u08fb\u08fc\u0005\u0319\u018d\u0002\u08fc\u08fd\u0005\u031d", + "\u018f\u0002\u08fd\u08fe\u0005\u030b\u0186\u0002\u08fe\u08ff\u0005\u0313", + "\u018a\u0002\u08ff\u0900\u0005\u02fb\u017e\u0002\u0900\u0901\u0005\u031d", + "\u018f\u0002\u0901\u0902\u0005\u032b\u0196\u0002\u0902\u01aa\u0003\u0002", + "\u0002\u0002\u0903\u0904\u0005\u0319\u018d\u0002\u0904\u0905\u0005\u031d", + "\u018f\u0002\u0905\u0906\u0005\u030b\u0186\u0002\u0906\u0907\u0005\u0315", + "\u018b\u0002\u0907\u0908\u0005\u0321\u0191\u0002\u0908\u01ac\u0003\u0002", + "\u0002\u0002\u0909\u090a\u0005\u0319\u018d\u0002\u090a\u090b\u0005\u031d", + "\u018f\u0002\u090b\u090c\u0005\u0317\u018c\u0002\u090c\u090d\u0005\u02ff", + "\u0180\u0002\u090d\u01ae\u0003\u0002\u0002\u0002\u090e\u090f\u0005\u0319", + "\u018d\u0002\u090f\u0910\u0005\u031d\u018f\u0002\u0910\u0911\u0005\u0317", + "\u018c\u0002\u0911\u0912\u0005\u02ff\u0180\u0002\u0912\u0913\u0005\u0303", + "\u0182\u0002\u0913\u0914\u0005\u0301\u0181\u0002\u0914\u0915\u0005\u0323", + "\u0192\u0002\u0915\u0916\u0005\u031d\u018f\u0002\u0916\u0917\u0005\u0303", + "\u0182\u0002\u0917\u01b0\u0003\u0002\u0002\u0002\u0918\u0919\u0005\u031b", + "\u018e\u0002\u0919\u091a\u0005\u0323\u0192\u0002\u091a\u091b\u0005\u02fb", + "\u017e\u0002\u091b\u091c\u0005\u0311\u0189\u0002\u091c\u091d\u0005\u030b", + "\u0186\u0002\u091d\u091e\u0005\u0305\u0183\u0002\u091e\u091f\u0005\u032b", + "\u0196\u0002\u091f\u01b2\u0003\u0002\u0002\u0002\u0920\u0921\u0005\u031b", + "\u018e\u0002\u0921\u0922\u0005\u0323\u0192\u0002\u0922\u0923\u0005\u0303", + "\u0182\u0002\u0923\u0924\u0005\u031d\u018f\u0002\u0924\u0925\u0005\u032b", + "\u0196\u0002\u0925\u0926\u0007a\u0002\u0002\u0926\u0927\u0005\u02fd", + "\u017f\u0002\u0927\u0928\u0005\u02fb\u017e\u0002\u0928\u0929\u0005\u0315", + "\u018b\u0002\u0929\u092a\u0005\u0301\u0181\u0002\u092a\u01b4\u0003\u0002", + "\u0002\u0002\u092b\u092c\u0005\u031b\u018e\u0002\u092c\u092d\u0005\u0323", + "\u0192\u0002\u092d\u092e\u0005\u030b\u0186\u0002\u092e\u092f\u0005\u0321", + "\u0191\u0002\u092f\u01b6\u0003\u0002\u0002\u0002\u0930\u0931\u0005\u031b", + "\u018e\u0002\u0931\u0932\u0005\u0323\u0192\u0002\u0932\u0933\u0005\u0317", + "\u018c\u0002\u0933\u0934\u0005\u0321\u0191\u0002\u0934\u0935\u0005\u0303", + "\u0182\u0002\u0935\u0936\u0005\u0301\u0181\u0002\u0936\u0937\u0007a", + "\u0002\u0002\u0937\u0938\u0005\u030b\u0186\u0002\u0938\u0939\u0005\u0301", + "\u0181\u0002\u0939\u093a\u0005\u0303\u0182\u0002\u093a\u093b\u0005\u0315", + "\u018b\u0002\u093b\u093c\u0005\u0321\u0191\u0002\u093c\u093d\u0005\u030b", + "\u0186\u0002\u093d\u093e\u0005\u0305\u0183\u0002\u093e\u093f\u0005\u030b", + "\u0186\u0002\u093f\u0940\u0005\u0303\u0182\u0002\u0940\u0941\u0005\u031d", + "\u018f\u0002\u0941\u01b8\u0003\u0002\u0002\u0002\u0942\u0943\u0005\u031d", + "\u018f\u0002\u0943\u0944\u0005\u02fb\u017e\u0002\u0944\u0945\u0005\u030b", + "\u0186\u0002\u0945\u0946\u0005\u031f\u0190\u0002\u0946\u0947\u0005\u0303", + "\u0182\u0002\u0947\u01ba\u0003\u0002\u0002\u0002\u0948\u0949\u0005\u031d", + "\u018f\u0002\u0949\u094a\u0005\u0303\u0182\u0002\u094a\u094b\u0005\u02fb", + "\u017e\u0002\u094b\u094c\u0005\u0311\u0189\u0002\u094c\u01bc\u0003\u0002", + "\u0002\u0002\u094d\u094e\u0005\u031d\u018f\u0002\u094e\u094f\u0005\u0303", + "\u0182\u0002\u094f\u0950\u0005\u0305\u0183\u0002\u0950\u0951\u0005\u0303", + "\u0182\u0002\u0951\u0952\u0005\u031d\u018f\u0002\u0952\u0953\u0005\u0303", + "\u0182\u0002\u0953\u0954\u0005\u0315\u018b\u0002\u0954\u0955\u0005\u02ff", + "\u0180\u0002\u0955\u0956\u0005\u0303\u0182\u0002\u0956\u0957\u0005\u031f", + "\u0190\u0002\u0957\u01be\u0003\u0002\u0002\u0002\u0958\u0959\u0005\u031d", + "\u018f\u0002\u0959\u095a\u0005\u0303\u0182\u0002\u095a\u095b\u0005\u0307", + "\u0184\u0002\u095b\u095c\u0005\u0303\u0182\u0002\u095c\u095d\u0005\u0329", + "\u0195\u0002\u095d\u095e\u0005\u0319\u018d\u0002\u095e\u01c0\u0003\u0002", + "\u0002\u0002\u095f\u0960\u0005\u031d\u018f\u0002\u0960\u0961\u0005\u0303", + "\u0182\u0002\u0961\u0962\u0005\u0319\u018d\u0002\u0962\u0963\u0005\u0311", + "\u0189\u0002\u0963\u0964\u0005\u02fb\u017e\u0002\u0964\u0965\u0005\u02ff", + "\u0180\u0002\u0965\u0966\u0005\u0303\u0182\u0002\u0966\u01c2\u0003\u0002", + "\u0002\u0002\u0967\u0968\u0005\u031d\u018f\u0002\u0968\u0969\u0005\u0303", + "\u0182\u0002\u0969\u096a\u0005\u031f\u0190\u0002\u096a\u096b\u0005\u030b", + "\u0186\u0002\u096b\u096c\u0005\u0307\u0184\u0002\u096c\u096d\u0005\u0315", + "\u018b\u0002\u096d\u096e\u0005\u02fb\u017e\u0002\u096e\u096f\u0005\u0311", + "\u0189\u0002\u096f\u01c4\u0003\u0002\u0002\u0002\u0970\u0971\u0005\u031d", + "\u018f\u0002\u0971\u0972\u0005\u0303\u0182\u0002\u0972\u0973\u0005\u031f", + "\u0190\u0002\u0973\u0974\u0005\u0321\u0191\u0002\u0974\u0975\u0005\u031d", + "\u018f\u0002\u0975\u0976\u0005\u030b\u0186\u0002\u0976\u0977\u0005\u02ff", + "\u0180\u0002\u0977\u0978\u0005\u0321\u0191\u0002\u0978\u01c6\u0003\u0002", + "\u0002\u0002\u0979\u097a\u0005\u031d\u018f\u0002\u097a\u097b\u0005\u0303", + "\u0182\u0002\u097b\u097c\u0005\u031f\u0190\u0002\u097c\u097d\u0005\u0323", + "\u0192\u0002\u097d\u097e\u0005\u0311\u0189\u0002\u097e\u097f\u0005\u0321", + "\u0191\u0002\u097f\u01c8\u0003\u0002\u0002\u0002\u0980\u0981\u0005\u031d", + "\u018f\u0002\u0981\u0982\u0005\u0303\u0182\u0002\u0982\u0983\u0005\u031f", + "\u0190\u0002\u0983\u0984\u0005\u0323\u0192\u0002\u0984\u0985\u0005\u0311", + "\u0189\u0002\u0985\u0986\u0005\u0321\u0191\u0002\u0986\u0987\u0007a", + "\u0002\u0002\u0987\u0988\u0005\u031f\u0190\u0002\u0988\u0989\u0005\u0303", + "\u0182\u0002\u0989\u098a\u0005\u0321\u0191\u0002\u098a\u098b\u0007a", + "\u0002\u0002\u098b\u098c\u0005\u0311\u0189\u0002\u098c\u098d\u0005\u0317", + "\u018c\u0002\u098d\u098e\u0005\u02ff\u0180\u0002\u098e\u098f\u0005\u02fb", + "\u017e\u0002\u098f\u0990\u0005\u0321\u0191\u0002\u0990\u0991\u0005\u0317", + "\u018c\u0002\u0991\u0992\u0005\u031d\u018f\u0002\u0992\u01ca\u0003\u0002", + "\u0002\u0002\u0993\u0994\u0005\u031d\u018f\u0002\u0994\u0995\u0005\u0303", + "\u0182\u0002\u0995\u0996\u0005\u0321\u0191\u0002\u0996\u0997\u0005\u0323", + "\u0192\u0002\u0997\u0998\u0005\u031d\u018f\u0002\u0998\u0999\u0005\u0315", + "\u018b\u0002\u0999\u01cc\u0003\u0002\u0002\u0002\u099a\u099b\u0005\u031d", + "\u018f\u0002\u099b\u099c\u0005\u0303\u0182\u0002\u099c\u099d\u0005\u0321", + "\u0191\u0002\u099d\u099e\u0005\u0323\u0192\u0002\u099e\u099f\u0005\u031d", + "\u018f\u0002\u099f\u09a0\u0005\u0315\u018b\u0002\u09a0\u09a1\u0005\u031f", + "\u0190\u0002\u09a1\u01ce\u0003\u0002\u0002\u0002\u09a2\u09a3\u0005\u031d", + "\u018f\u0002\u09a3\u09a4\u0005\u0303\u0182\u0002\u09a4\u09a5\u0005\u0325", + "\u0193\u0002\u09a5\u09a6\u0005\u0303\u0182\u0002\u09a6\u09a7\u0005\u031d", + "\u018f\u0002\u09a7\u09a8\u0005\u031f\u0190\u0002\u09a8\u09a9\u0005\u0303", + "\u0182\u0002\u09a9\u01d0\u0003\u0002\u0002\u0002\u09aa\u09ab\u0005\u031d", + "\u018f\u0002\u09ab\u09ac\u0005\u030b\u0186\u0002\u09ac\u09ad\u0005\u0307", + "\u0184\u0002\u09ad\u09ae\u0005\u0309\u0185\u0002\u09ae\u09af\u0005\u0321", + "\u0191\u0002\u09af\u01d2\u0003\u0002\u0002\u0002\u09b0\u09b1\u0005\u031d", + "\u018f\u0002\u09b1\u09b2\u0005\u0311\u0189\u0002\u09b2\u09b3\u0005\u030b", + "\u0186\u0002\u09b3\u09b4\u0005\u030f\u0188\u0002\u09b4\u09b5\u0005\u0303", + "\u0182\u0002\u09b5\u01d4\u0003\u0002\u0002\u0002\u09b6\u09b7\u0005\u031d", + "\u018f\u0002\u09b7\u09b8\u0005\u0317\u018c\u0002\u09b8\u09b9\u0005\u0311", + "\u0189\u0002\u09b9\u09ba\u0005\u0303\u0182\u0002\u09ba\u01d6\u0003\u0002", + "\u0002\u0002\u09bb\u09bc\u0005\u031d\u018f\u0002\u09bc\u09bd\u0005\u0317", + "\u018c\u0002\u09bd\u09be\u0005\u0311\u0189\u0002\u09be\u09bf\u0005\u0311", + "\u0189\u0002\u09bf\u09c0\u0005\u02fd\u017f\u0002\u09c0\u09c1\u0005\u02fb", + "\u017e\u0002\u09c1\u09c2\u0005\u02ff\u0180\u0002\u09c2\u09c3\u0005\u030f", + "\u0188\u0002\u09c3\u01d8\u0003\u0002\u0002\u0002\u09c4\u09c5\u0005\u031d", + "\u018f\u0002\u09c5\u09c6\u0005\u0317\u018c\u0002\u09c6\u09c7\u0005\u0327", + "\u0194\u0002\u09c7\u01da\u0003\u0002\u0002\u0002\u09c8\u09c9\u0005\u031d", + "\u018f\u0002\u09c9\u09ca\u0005\u0317\u018c\u0002\u09ca\u09cb\u0005\u0327", + "\u0194\u0002\u09cb\u09cc\u0005\u031f\u0190\u0002\u09cc\u01dc\u0003\u0002", + "\u0002\u0002\u09cd\u09ce\u0005\u031d\u018f\u0002\u09ce\u09cf\u0005\u0317", + "\u018c\u0002\u09cf\u09d0\u0005\u0327\u0194\u0002\u09d0\u09d1\u0005\u0321", + "\u0191\u0002\u09d1\u09d2\u0005\u032b\u0196\u0002\u09d2\u09d3\u0005\u0319", + "\u018d\u0002\u09d3\u09d4\u0005\u0303\u0182\u0002\u09d4\u01de\u0003\u0002", + "\u0002\u0002\u09d5\u09d6\u0005\u031d\u018f\u0002\u09d6\u09d7\u0005\u0317", + "\u018c\u0002\u09d7\u09d8\u0005\u0327\u0194\u0002\u09d8\u09d9\u0007a", + "\u0002\u0002\u09d9\u09da\u0005\u02ff\u0180\u0002\u09da\u09db\u0005\u0317", + "\u018c\u0002\u09db\u09dc\u0005\u0323\u0192\u0002\u09dc\u09dd\u0005\u0315", + "\u018b\u0002\u09dd\u09de\u0005\u0321\u0191\u0002\u09de\u01e0\u0003\u0002", + "\u0002\u0002\u09df\u09e0\u0005\u031d\u018f\u0002\u09e0\u09e1\u0005\u031d", + "\u018f\u0002\u09e1\u01e2\u0003\u0002\u0002\u0002\u09e2\u09e3\u0005\u031d", + "\u018f\u0002\u09e3\u09e4\u0005\u031f\u0190\u0002\u09e4\u01e4\u0003\u0002", + "\u0002\u0002\u09e5\u09e6\u0005\u0319\u018d\u0002\u09e6\u09e7\u0005\u0327", + "\u0194\u0002\u09e7\u09e8\u0005\u0301\u0181\u0002\u09e8\u01e6\u0003\u0002", + "\u0002\u0002\u09e9\u09ea\u0005\u0321\u0191\u0002\u09ea\u09eb\u0005\u031d", + "\u018f\u0002\u09eb\u09ec\u0005\u030b\u0186\u0002\u09ec\u09ed\u0005\u0313", + "\u018a\u0002\u09ed\u01e8\u0003\u0002\u0002\u0002\u09ee\u09ef\u0005\u031f", + "\u0190\u0002\u09ef\u09f0\u0005\u02ff\u0180\u0002\u09f0\u09f1\u0005\u0309", + "\u0185\u0002\u09f1\u09f2\u0005\u0303\u0182\u0002\u09f2\u09f3\u0005\u0313", + "\u018a\u0002\u09f3\u09f4\u0005\u02fb\u017e\u0002\u09f4\u01ea\u0003\u0002", + "\u0002\u0002\u09f5\u09f6\u0005\u031f\u0190\u0002\u09f6\u09f7\u0005\u0303", + "\u0182\u0002\u09f7\u09f8\u0005\u02ff\u0180\u0002\u09f8\u09f9\u0005\u0317", + "\u018c\u0002\u09f9\u09fa\u0005\u0315\u018b\u0002\u09fa\u09fb\u0005\u0301", + "\u0181\u0002\u09fb\u01ec\u0003\u0002\u0002\u0002\u09fc\u09fd\u0005\u031f", + "\u0190\u0002\u09fd\u09fe\u0005\u0303\u0182\u0002\u09fe\u09ff\u0005\u02ff", + "\u0180\u0002\u09ff\u0a00\u0005\u0317\u018c\u0002\u0a00\u0a01\u0005\u0315", + "\u018b\u0002\u0a01\u0a02\u0005\u0301\u0181\u0002\u0a02\u0a03\u0005\u031f", + "\u0190\u0002\u0a03\u01ee\u0003\u0002\u0002\u0002\u0a04\u0a05\u0005\u031f", + "\u0190\u0002\u0a05\u0a06\u0005\u0303\u0182\u0002\u0a06\u0a07\u0005\u02ff", + "\u0180\u0002\u0a07\u0a08\u0005\u0323\u0192\u0002\u0a08\u0a09\u0005\u031d", + "\u018f\u0002\u0a09\u0a0a\u0005\u030b\u0186\u0002\u0a0a\u0a0b\u0005\u0321", + "\u0191\u0002\u0a0b\u0a0c\u0005\u032b\u0196\u0002\u0a0c\u01f0\u0003\u0002", + "\u0002\u0002\u0a0d\u0a0e\u0005\u031f\u0190\u0002\u0a0e\u0a0f\u0005\u0303", + "\u0182\u0002\u0a0f\u0a10\u0005\u0307\u0184\u0002\u0a10\u0a11\u0005\u0313", + "\u018a\u0002\u0a11\u0a12\u0005\u0303\u0182\u0002\u0a12\u0a13\u0005\u0315", + "\u018b\u0002\u0a13\u0a14\u0005\u0321\u0191\u0002\u0a14\u01f2\u0003\u0002", + "\u0002\u0002\u0a15\u0a16\u0005\u031f\u0190\u0002\u0a16\u0a17\u0005\u0303", + "\u0182\u0002\u0a17\u0a18\u0005\u0311\u0189\u0002\u0a18\u01f4\u0003\u0002", + "\u0002\u0002\u0a19\u0a1a\u0005\u031f\u0190\u0002\u0a1a\u0a1b\u0005\u0303", + "\u0182\u0002\u0a1b\u0a1c\u0005\u0311\u0189\u0002\u0a1c\u0a1d\u0005\u0303", + "\u0182\u0002\u0a1d\u0a1e\u0005\u02ff\u0180\u0002\u0a1e\u0a1f\u0005\u0321", + "\u0191\u0002\u0a1f\u01f6\u0003\u0002\u0002\u0002\u0a20\u0a21\u0005\u031f", + "\u0190\u0002\u0a21\u0a22\u0005\u0303\u0182\u0002\u0a22\u0a23\u0005\u0321", + "\u0191\u0002\u0a23\u01f8\u0003\u0002\u0002\u0002\u0a24\u0a25\u0005\u031f", + "\u0190\u0002\u0a25\u0a26\u0005\u0303\u0182\u0002\u0a26\u0a27\u0005\u031f", + "\u0190\u0002\u0a27\u0a28\u0005\u031f\u0190\u0002\u0a28\u0a29\u0005\u030b", + "\u0186\u0002\u0a29\u0a2a\u0005\u0317\u018c\u0002\u0a2a\u0a2b\u0005\u0315", + "\u018b\u0002\u0a2b\u01fa\u0003\u0002\u0002\u0002\u0a2c\u0a2d\u0005\u031f", + "\u0190\u0002\u0a2d\u0a2e\u0005\u0303\u0182\u0002\u0a2e\u0a2f\u0005\u031f", + "\u0190\u0002\u0a2f\u0a30\u0005\u031f\u0190\u0002\u0a30\u0a31\u0005\u030b", + "\u0186\u0002\u0a31\u0a32\u0005\u0317\u018c\u0002\u0a32\u0a33\u0005\u0315", + "\u018b\u0002\u0a33\u0a34\u0005\u031f\u0190\u0002\u0a34\u01fc\u0003\u0002", + "\u0002\u0002\u0a35\u0a36\u0005\u031f\u0190\u0002\u0a36\u0a37\u0005\u0303", + "\u0182\u0002\u0a37\u0a38\u0005\u0321\u0191\u0002\u0a38\u0a39\u0005\u031f", + "\u0190\u0002\u0a39\u01fe\u0003\u0002\u0002\u0002\u0a3a\u0a3b\u0005\u031f", + "\u0190\u0002\u0a3b\u0a3c\u0005\u0309\u0185\u0002\u0a3c\u0a3d\u0005\u02fb", + "\u017e\u0002\u0a3d\u0a3e\u0005\u031d\u018f\u0002\u0a3e\u0a3f\u0005\u0303", + "\u0182\u0002\u0a3f\u0200\u0003\u0002\u0002\u0002\u0a40\u0a41\u0005\u031f", + "\u0190\u0002\u0a41\u0a42\u0005\u030b\u0186\u0002\u0a42\u0a43\u0005\u0307", + "\u0184\u0002\u0a43\u0a44\u0005\u0315\u018b\u0002\u0a44\u0a45\u0005\u02fb", + "\u017e\u0002\u0a45\u0a46\u0005\u0311\u0189\u0002\u0a46\u0202\u0003\u0002", + "\u0002\u0002\u0a47\u0a48\u0005\u031f\u0190\u0002\u0a48\u0a49\u0005\u030b", + "\u0186\u0002\u0a49\u0a4a\u0005\u0313\u018a\u0002\u0a4a\u0a4b\u0005\u0319", + "\u018d\u0002\u0a4b\u0a4c\u0005\u0311\u0189\u0002\u0a4c\u0a4d\u0005\u0303", + "\u0182\u0002\u0a4d\u0a4e\u0007a\u0002\u0002\u0a4e\u0a4f\u0005\u0301", + "\u0181\u0002\u0a4f\u0a50\u0005\u0317\u018c\u0002\u0a50\u0a51\u0005\u0323", + "\u0192\u0002\u0a51\u0a52\u0005\u02fd\u017f\u0002\u0a52\u0a53\u0005\u0311", + "\u0189\u0002\u0a53\u0a54\u0005\u0303\u0182\u0002\u0a54\u0204\u0003\u0002", + "\u0002\u0002\u0a55\u0a56\u0005\u031f\u0190\u0002\u0a56\u0a57\u0005\u030b", + "\u0186\u0002\u0a57\u0a58\u0005\u0313\u018a\u0002\u0a58\u0a59\u0005\u0319", + "\u018d\u0002\u0a59\u0a5a\u0005\u0311\u0189\u0002\u0a5a\u0a5b\u0005\u0303", + "\u0182\u0002\u0a5b\u0a5c\u0007a\u0002\u0002\u0a5c\u0a5d\u0005\u0305", + "\u0183\u0002\u0a5d\u0a5e\u0005\u0311\u0189\u0002\u0a5e\u0a5f\u0005\u0317", + "\u018c\u0002\u0a5f\u0a60\u0005\u02fb\u017e\u0002\u0a60\u0a61\u0005\u0321", + "\u0191\u0002\u0a61\u0206\u0003\u0002\u0002\u0002\u0a62\u0a63\u0005\u031f", + "\u0190\u0002\u0a63\u0a64\u0005\u030b\u0186\u0002\u0a64\u0a65\u0005\u0313", + "\u018a\u0002\u0a65\u0a66\u0005\u0319\u018d\u0002\u0a66\u0a67\u0005\u0311", + "\u0189\u0002\u0a67\u0a68\u0005\u0303\u0182\u0002\u0a68\u0a69\u0007a", + "\u0002\u0002\u0a69\u0a6a\u0005\u030b\u0186\u0002\u0a6a\u0a6b\u0005\u0315", + "\u018b\u0002\u0a6b\u0a6c\u0005\u0321\u0191\u0002\u0a6c\u0a6d\u0005\u0303", + "\u0182\u0002\u0a6d\u0a6e\u0005\u0307\u0184\u0002\u0a6e\u0a6f\u0005\u0303", + "\u0182\u0002\u0a6f\u0a70\u0005\u031d\u018f\u0002\u0a70\u0208\u0003\u0002", + "\u0002\u0002\u0a71\u0a72\u0005\u031f\u0190\u0002\u0a72\u0a73\u0005\u0313", + "\u018a\u0002\u0a73\u0a74\u0005\u02fb\u017e\u0002\u0a74\u0a75\u0005\u0311", + "\u0189\u0002\u0a75\u0a76\u0005\u0311\u0189\u0002\u0a76\u0a77\u0005\u0301", + "\u0181\u0002\u0a77\u0a78\u0005\u02fb\u017e\u0002\u0a78\u0a79\u0005\u0321", + "\u0191\u0002\u0a79\u0a7a\u0005\u0303\u0182\u0002\u0a7a\u0a7b\u0005\u0321", + "\u0191\u0002\u0a7b\u0a7c\u0005\u030b\u0186\u0002\u0a7c\u0a7d\u0005\u0313", + "\u018a\u0002\u0a7d\u0a7e\u0005\u0303\u0182\u0002\u0a7e\u020a\u0003\u0002", + "\u0002\u0002\u0a7f\u0a80\u0005\u031f\u0190\u0002\u0a80\u0a81\u0005\u0313", + "\u018a\u0002\u0a81\u0a82\u0005\u02fb\u017e\u0002\u0a82\u0a83\u0005\u0311", + "\u0189\u0002\u0a83\u0a84\u0005\u0311\u0189\u0002\u0a84\u0a85\u0005\u030b", + "\u0186\u0002\u0a85\u0a86\u0005\u0315\u018b\u0002\u0a86\u0a87\u0005\u0321", + "\u0191\u0002\u0a87\u020c\u0003\u0002\u0002\u0002\u0a88\u0a89\u0005\u031f", + "\u0190\u0002\u0a89\u0a8a\u0005\u031b\u018e\u0002\u0a8a\u0a8b\u0005\u0311", + "\u0189\u0002\u0a8b\u020e\u0003\u0002\u0002\u0002\u0a8c\u0a8d\u0005\u031f", + "\u0190\u0002\u0a8d\u0a8e\u0005\u031b\u018e\u0002\u0a8e\u0a8f\u0005\u0311", + "\u0189\u0002\u0a8f\u0a90\u0005\u0303\u0182\u0002\u0a90\u0a91\u0005\u0329", + "\u0195\u0002\u0a91\u0a92\u0005\u02ff\u0180\u0002\u0a92\u0a93\u0005\u0303", + "\u0182\u0002\u0a93\u0a94\u0005\u0319\u018d\u0002\u0a94\u0a95\u0005\u0321", + "\u0191\u0002\u0a95\u0a96\u0005\u030b\u0186\u0002\u0a96\u0a97\u0005\u0317", + "\u018c\u0002\u0a97\u0a98\u0005\u0315\u018b\u0002\u0a98\u0210\u0003\u0002", + "\u0002\u0002\u0a99\u0a9a\u0005\u031f\u0190\u0002\u0a9a\u0a9b\u0005\u031b", + "\u018e\u0002\u0a9b\u0a9c\u0005\u0311\u0189\u0002\u0a9c\u0a9d\u0005\u030b", + "\u0186\u0002\u0a9d\u0a9e\u0005\u0315\u018b\u0002\u0a9e\u0a9f\u0005\u031f", + "\u0190\u0002\u0a9f\u0aa0\u0005\u0303\u0182\u0002\u0aa0\u0aa1\u0005\u031d", + "\u018f\u0002\u0aa1\u0aa2\u0005\u0321\u0191\u0002\u0aa2\u0212\u0003\u0002", + "\u0002\u0002\u0aa3\u0aa4\u0005\u031f\u0190\u0002\u0aa4\u0aa5\u0005\u031b", + "\u018e\u0002\u0aa5\u0aa6\u0005\u0311\u0189\u0002\u0aa6\u0aa7\u0005\u031f", + "\u0190\u0002\u0aa7\u0aa8\u0005\u0321\u0191\u0002\u0aa8\u0aa9\u0005\u02fb", + "\u017e\u0002\u0aa9\u0aaa\u0005\u0321\u0191\u0002\u0aaa\u0aab\u0005\u0303", + "\u0182\u0002\u0aab\u0214\u0003\u0002\u0002\u0002\u0aac\u0aad\u0005\u031f", + "\u0190\u0002\u0aad\u0aae\u0005\u031b\u018e\u0002\u0aae\u0aaf\u0005\u0311", + "\u0189\u0002\u0aaf\u0ab0\u0005\u0327\u0194\u0002\u0ab0\u0ab1\u0005\u02fb", + "\u017e\u0002\u0ab1\u0ab2\u0005\u031d\u018f\u0002\u0ab2\u0ab3\u0005\u0315", + "\u018b\u0002\u0ab3\u0ab4\u0005\u030b\u0186\u0002\u0ab4\u0ab5\u0005\u0315", + "\u018b\u0002\u0ab5\u0ab6\u0005\u0307\u0184\u0002\u0ab6\u0216\u0003\u0002", + "\u0002\u0002\u0ab7\u0ab8\u0005\u031f\u0190\u0002\u0ab8\u0ab9\u0005\u0321", + "\u0191\u0002\u0ab9\u0aba\u0005\u02fb\u017e\u0002\u0aba\u0abb\u0005\u0321", + "\u0191\u0002\u0abb\u0abc\u0005\u031f\u0190\u0002\u0abc\u0218\u0003\u0002", + "\u0002\u0002\u0abd\u0abe\u0005\u031f\u0190\u0002\u0abe\u0abf\u0005\u0321", + "\u0191\u0002\u0abf\u0ac0\u0005\u02fb\u017e\u0002\u0ac0\u0ac1\u0005\u0321", + "\u0191\u0002\u0ac1\u0ac2\u0005\u030b\u0186\u0002\u0ac2\u0ac3\u0005\u031f", + "\u0190\u0002\u0ac3\u0ac4\u0005\u0321\u0191\u0002\u0ac4\u0ac5\u0005\u030b", + "\u0186\u0002\u0ac5\u0ac6\u0005\u02ff\u0180\u0002\u0ac6\u0ac7\u0005\u031f", + "\u0190\u0002\u0ac7\u021a\u0003\u0002\u0002\u0002\u0ac8\u0ac9\u0005\u031f", + "\u0190\u0002\u0ac9\u0aca\u0005\u0321\u0191\u0002\u0aca\u0acb\u0005\u0303", + "\u0182\u0002\u0acb\u0acc\u0005\u0319\u018d\u0002\u0acc\u021c\u0003\u0002", + "\u0002\u0002\u0acd\u0ace\u0005\u031f\u0190\u0002\u0ace\u0acf\u0005\u0321", + "\u0191\u0002\u0acf\u0ad0\u0005\u0317\u018c\u0002\u0ad0\u0ad1\u0005\u031d", + "\u018f\u0002\u0ad1\u0ad2\u0005\u02fb\u017e\u0002\u0ad2\u0ad3\u0005\u0307", + "\u0184\u0002\u0ad3\u0ad4\u0005\u0303\u0182\u0002\u0ad4\u021e\u0003\u0002", + "\u0002\u0002\u0ad5\u0ad6\u0005\u031f\u0190\u0002\u0ad6\u0ad7\u0005\u0321", + "\u0191\u0002\u0ad7\u0ad8\u0005\u0317\u018c\u0002\u0ad8\u0ad9\u0005\u031d", + "\u018f\u0002\u0ad9\u0ada\u0005\u0303\u0182\u0002\u0ada\u0adb\u0005\u0301", + "\u0181\u0002\u0adb\u0220\u0003\u0002\u0002\u0002\u0adc\u0add\u0005\u031f", + "\u0190\u0002\u0add\u0ade\u0005\u0321\u0191\u0002\u0ade\u0adf\u0005\u031d", + "\u018f\u0002\u0adf\u0ae0\u0005\u030b\u0186\u0002\u0ae0\u0ae1\u0005\u0315", + "\u018b\u0002\u0ae1\u0ae2\u0005\u0307\u0184\u0002\u0ae2\u0222\u0003\u0002", + "\u0002\u0002\u0ae3\u0ae4\u0005\u031f\u0190\u0002\u0ae4\u0ae5\u0005\u0323", + "\u0192\u0002\u0ae5\u0ae6\u0005\u02fd\u017f\u0002\u0ae6\u0ae7\u0005\u0301", + "\u0181\u0002\u0ae7\u0ae8\u0005\u030b\u0186\u0002\u0ae8\u0ae9\u0005\u031d", + "\u018f\u0002\u0ae9\u0224\u0003\u0002\u0002\u0002\u0aea\u0aeb\u0005\u031f", + "\u0190\u0002\u0aeb\u0aec\u0005\u0323\u0192\u0002\u0aec\u0aed\u0005\u02fd", + "\u017f\u0002\u0aed\u0aee\u0005\u031f\u0190\u0002\u0aee\u0aef\u0005\u0321", + "\u0191\u0002\u0aef\u0af0\u0005\u031d\u018f\u0002\u0af0\u0af1\u0005\u030b", + "\u0186\u0002\u0af1\u0af2\u0005\u0315\u018b\u0002\u0af2\u0af3\u0005\u0307", + "\u0184\u0002\u0af3\u0226\u0003\u0002\u0002\u0002\u0af4\u0af5\u0005\u031f", + "\u0190\u0002\u0af5\u0af6\u0005\u0323\u0192\u0002\u0af6\u0af7\u0005\u0313", + "\u018a\u0002\u0af7\u0228\u0003\u0002\u0002\u0002\u0af8\u0af9\u0005\u031f", + "\u0190\u0002\u0af9\u0afa\u0005\u0323\u0192\u0002\u0afa\u0afb\u0005\u0313", + "\u018a\u0002\u0afb\u0afc\u0005\u0313\u018a\u0002\u0afc\u0afd\u0005\u02fb", + "\u017e\u0002\u0afd\u0afe\u0005\u031d\u018f\u0002\u0afe\u0aff\u0005\u032b", + "\u0196\u0002\u0aff\u022a\u0003\u0002\u0002\u0002\u0b00\u0b01\u0005\u031f", + "\u0190\u0002\u0b01\u0b02\u0005\u032b\u0196\u0002\u0b02\u0b03\u0005\u031f", + "\u0190\u0002\u0b03\u0b04\u0007a\u0002\u0002\u0b04\u0b05\u0005\u031d", + "\u018f\u0002\u0b05\u0b06\u0005\u0303\u0182\u0002\u0b06\u0b07\u0005\u0305", + "\u0183\u0002\u0b07\u0b08\u0005\u02ff\u0180\u0002\u0b08\u0b09\u0005\u0323", + "\u0192\u0002\u0b09\u0b0a\u0005\u031d\u018f\u0002\u0b0a\u0b0b\u0005\u031f", + "\u0190\u0002\u0b0b\u0b0c\u0005\u0317\u018c\u0002\u0b0c\u0b0d\u0005\u031d", + "\u018f\u0002\u0b0d\u022c\u0003\u0002\u0002\u0002\u0b0e\u0b0f\u0005\u0321", + "\u0191\u0002\u0b0f\u0b10\u0005\u02fb\u017e\u0002\u0b10\u0b11\u0005\u02fd", + "\u017f\u0002\u0b11\u0b12\u0005\u0311\u0189\u0002\u0b12\u0b13\u0005\u0303", + "\u0182\u0002\u0b13\u022e\u0003\u0002\u0002\u0002\u0b14\u0b15\u0005\u0321", + "\u0191\u0002\u0b15\u0b16\u0005\u02fb\u017e\u0002\u0b16\u0b17\u0005\u02fd", + "\u017f\u0002\u0b17\u0b18\u0005\u0311\u0189\u0002\u0b18\u0b19\u0005\u0303", + "\u0182\u0002\u0b19\u0b1a\u0005\u031f\u0190\u0002\u0b1a\u0b1b\u0005\u0319", + "\u018d\u0002\u0b1b\u0b1c\u0005\u02fb\u017e\u0002\u0b1c\u0b1d\u0005\u02ff", + "\u0180\u0002\u0b1d\u0b1e\u0005\u0303\u0182\u0002\u0b1e\u0230\u0003\u0002", + "\u0002\u0002\u0b1f\u0b20\u0005\u0321\u0191\u0002\u0b20\u0b21\u0005\u0303", + "\u0182\u0002\u0b21\u0b22\u0005\u0313\u018a\u0002\u0b22\u0b23\u0005\u0319", + "\u018d\u0002\u0b23\u0b24\u0005\u0317\u018c\u0002\u0b24\u0b25\u0005\u031d", + "\u018f\u0002\u0b25\u0b26\u0005\u02fb\u017e\u0002\u0b26\u0b27\u0005\u031d", + "\u018f\u0002\u0b27\u0b28\u0005\u032b\u0196\u0002\u0b28\u0232\u0003\u0002", + "\u0002\u0002\u0b29\u0b2a\u0005\u0321\u0191\u0002\u0b2a\u0b2b\u0005\u0303", + "\u0182\u0002\u0b2b\u0b2c\u0005\u031d\u018f\u0002\u0b2c\u0b2d\u0005\u0313", + "\u018a\u0002\u0b2d\u0b2e\u0005\u030b\u0186\u0002\u0b2e\u0b2f\u0005\u0315", + "\u018b\u0002\u0b2f\u0b30\u0005\u02fb\u017e\u0002\u0b30\u0b31\u0005\u0321", + "\u0191\u0002\u0b31\u0b32\u0005\u0303\u0182\u0002\u0b32\u0b33\u0005\u0301", + "\u0181\u0002\u0b33\u0234\u0003\u0002\u0002\u0002\u0b34\u0b35\u0005\u0321", + "\u0191\u0002\u0b35\u0b36\u0005\u0303\u0182\u0002\u0b36\u0b37\u0005\u0329", + "\u0195\u0002\u0b37\u0b38\u0005\u0321\u0191\u0002\u0b38\u0b39\u0005\u030b", + "\u0186\u0002\u0b39\u0b3a\u0005\u0313\u018a\u0002\u0b3a\u0b3b\u0005\u02fb", + "\u017e\u0002\u0b3b\u0b3c\u0005\u0307\u0184\u0002\u0b3c\u0b3d\u0005\u0303", + "\u0182\u0002\u0b3d\u0b3e\u0007a\u0002\u0002\u0b3e\u0b3f\u0005\u0317", + "\u018c\u0002\u0b3f\u0b40\u0005\u0315\u018b\u0002\u0b40\u0236\u0003\u0002", + "\u0002\u0002\u0b41\u0b42\u0005\u0321\u0191\u0002\u0b42\u0b43\u0005\u0309", + "\u0185\u0002\u0b43\u0b44\u0005\u0303\u0182\u0002\u0b44\u0b45\u0005\u0315", + "\u018b\u0002\u0b45\u0238\u0003\u0002\u0002\u0002\u0b46\u0b47\u0005\u0321", + "\u0191\u0002\u0b47\u0b48\u0005\u030b\u0186\u0002\u0b48\u0b49\u0005\u0313", + "\u018a\u0002\u0b49\u0b4a\u0005\u0303\u0182\u0002\u0b4a\u0b4b\u0005\u031f", + "\u0190\u0002\u0b4b\u0b4c\u0005\u0321\u0191\u0002\u0b4c\u0b4d\u0005\u02fb", + "\u017e\u0002\u0b4d\u0b4e\u0005\u0313\u018a\u0002\u0b4e\u0b4f\u0005\u0319", + "\u018d\u0002\u0b4f\u023a\u0003\u0002\u0002\u0002\u0b50\u0b51\u0005\u0321", + "\u0191\u0002\u0b51\u0b52\u0005\u030b\u0186\u0002\u0b52\u0b53\u0005\u0315", + "\u018b\u0002\u0b53\u0b54\u0005\u032b\u0196\u0002\u0b54\u0b55\u0005\u030b", + "\u0186\u0002\u0b55\u0b56\u0005\u0315\u018b\u0002\u0b56\u0b57\u0005\u0321", + "\u0191\u0002\u0b57\u023c\u0003\u0002\u0002\u0002\u0b58\u0b59\u0005\u0321", + "\u0191\u0002\u0b59\u0b5a\u0005\u030b\u0186\u0002\u0b5a\u0b5b\u0005\u0321", + "\u0191\u0002\u0b5b\u0b5c\u0005\u0311\u0189\u0002\u0b5c\u0b5d\u0005\u0303", + "\u0182\u0002\u0b5d\u023e\u0003\u0002\u0002\u0002\u0b5e\u0b5f\u0005\u0321", + "\u0191\u0002\u0b5f\u0b60\u0005\u0317\u018c\u0002\u0b60\u0240\u0003\u0002", + "\u0002\u0002\u0b61\u0b62\u0005\u0321\u0191\u0002\u0b62\u0b63\u0005\u0317", + "\u018c\u0002\u0b63\u0b64\u0005\u0319\u018d\u0002\u0b64\u0242\u0003\u0002", + "\u0002\u0002\u0b65\u0b66\u0005\u0321\u0191\u0002\u0b66\u0b67\u0005\u031d", + "\u018f\u0002\u0b67\u0b68\u0005\u02fb\u017e\u0002\u0b68\u0b69\u0005\u0315", + "\u018b\u0002\u0b69\u0b6a\u0005\u031f\u0190\u0002\u0b6a\u0b6b\u0005\u02fb", + "\u017e\u0002\u0b6b\u0b6c\u0005\u02ff\u0180\u0002\u0b6c\u0b6d\u0005\u0321", + "\u0191\u0002\u0b6d\u0b6e\u0005\u030b\u0186\u0002\u0b6e\u0b6f\u0005\u0317", + "\u018c\u0002\u0b6f\u0b70\u0005\u0315\u018b\u0002\u0b70\u0244\u0003\u0002", + "\u0002\u0002\u0b71\u0b72\u0005\u0321\u0191\u0002\u0b72\u0b73\u0005\u031d", + "\u018f\u0002\u0b73\u0b74\u0005\u0323\u0192\u0002\u0b74\u0b75\u0005\u0303", + "\u0182\u0002\u0b75\u0246\u0003\u0002\u0002\u0002\u0b76\u0b77\u0005\u0321", + "\u0191\u0002\u0b77\u0b78\u0005\u031d\u018f\u0002\u0b78\u0b79\u0005\u0323", + "\u0192\u0002\u0b79\u0b7a\u0005\u0315\u018b\u0002\u0b7a\u0b7b\u0005\u02ff", + "\u0180\u0002\u0b7b\u0b7c\u0005\u02fb\u017e\u0002\u0b7c\u0b7d\u0005\u0321", + "\u0191\u0002\u0b7d\u0b7e\u0005\u0303\u0182\u0002\u0b7e\u0248\u0003\u0002", + "\u0002\u0002\u0b7f\u0b80\u0005\u0321\u0191\u0002\u0b80\u0b81\u0005\u032b", + "\u0196\u0002\u0b81\u0b82\u0005\u0319\u018d\u0002\u0b82\u0b83\u0005\u0303", + "\u0182\u0002\u0b83\u024a\u0003\u0002\u0002\u0002\u0b84\u0b85\u0005\u0323", + "\u0192\u0002\u0b85\u0b86\u0005\u0315\u018b\u0002\u0b86\u0b87\u0005\u030b", + "\u0186\u0002\u0b87\u0b88\u0005\u0317\u018c\u0002\u0b88\u0b89\u0005\u0315", + "\u018b\u0002\u0b89\u024c\u0003\u0002\u0002\u0002\u0b8a\u0b8b\u0005\u0323", + "\u0192\u0002\u0b8b\u0b8c\u0005\u0315\u018b\u0002\u0b8c\u0b8d\u0005\u030b", + "\u0186\u0002\u0b8d\u0b8e\u0005\u031b\u018e\u0002\u0b8e\u0b8f\u0005\u0323", + "\u0192\u0002\u0b8f\u0b90\u0005\u0303\u0182\u0002\u0b90\u024e\u0003\u0002", + "\u0002\u0002\u0b91\u0b92\u0005\u0323\u0192\u0002\u0b92\u0b93\u0005\u0319", + "\u018d\u0002\u0b93\u0b94\u0005\u0301\u0181\u0002\u0b94\u0b95\u0005\u02fb", + "\u017e\u0002\u0b95\u0b96\u0005\u0321\u0191\u0002\u0b96\u0b97\u0005\u0303", + "\u0182\u0002\u0b97\u0250\u0003\u0002\u0002\u0002\u0b98\u0b99\u0005\u0323", + "\u0192\u0002\u0b99\u0b9a\u0005\u031d\u018f\u0002\u0b9a\u0252\u0003\u0002", + "\u0002\u0002\u0b9b\u0b9c\u0005\u0323\u0192\u0002\u0b9c\u0b9d\u0005\u031f", + "\u0190\u0002\u0b9d\u0b9e\u0005\u0303\u0182\u0002\u0b9e\u0254\u0003\u0002", + "\u0002\u0002\u0b9f\u0ba0\u0005\u0323\u0192\u0002\u0ba0\u0ba1\u0005\u031f", + "\u0190\u0002\u0ba1\u0ba2\u0005\u030b\u0186\u0002\u0ba2\u0ba3\u0005\u0315", + "\u018b\u0002\u0ba3\u0ba4\u0005\u0307\u0184\u0002\u0ba4\u0256\u0003\u0002", + "\u0002\u0002\u0ba5\u0ba6\u0005\u0325\u0193\u0002\u0ba6\u0ba7\u0005\u02fb", + "\u017e\u0002\u0ba7\u0ba8\u0005\u0311\u0189\u0002\u0ba8\u0ba9\u0005\u0323", + "\u0192\u0002\u0ba9\u0baa\u0005\u0303\u0182\u0002\u0baa\u0258\u0003\u0002", + "\u0002\u0002\u0bab\u0bac\u0005\u0325\u0193\u0002\u0bac\u0bad\u0005\u02fb", + "\u017e\u0002\u0bad\u0bae\u0005\u0311\u0189\u0002\u0bae\u0baf\u0005\u0323", + "\u0192\u0002\u0baf\u0bb0\u0005\u0303\u0182\u0002\u0bb0\u0bb1\u0005\u031f", + "\u0190\u0002\u0bb1\u025a\u0003\u0002\u0002\u0002\u0bb2\u0bb3\u0005\u0325", + "\u0193\u0002\u0bb3\u0bb4\u0005\u02fb\u017e\u0002\u0bb4\u0bb5\u0005\u031d", + "\u018f\u0002\u0bb5\u025c\u0003\u0002\u0002\u0002\u0bb6\u0bb7\u0005\u0325", + "\u0193\u0002\u0bb7\u0bb8\u0005\u02fb\u017e\u0002\u0bb8\u0bb9\u0005\u031d", + "\u018f\u0002\u0bb9\u0bba\u0005\u02ff\u0180\u0002\u0bba\u0bbb\u0005\u0309", + "\u0185\u0002\u0bbb\u0bbc\u0005\u02fb\u017e\u0002\u0bbc\u0bbd\u0005\u031d", + "\u018f\u0002\u0bbd\u025e\u0003\u0002\u0002\u0002\u0bbe\u0bbf\u0005\u0325", + "\u0193\u0002\u0bbf\u0bc0\u0005\u02fb\u017e\u0002\u0bc0\u0bc1\u0005\u031d", + "\u018f\u0002\u0bc1\u0bc2\u0005\u02ff\u0180\u0002\u0bc2\u0bc3\u0005\u0309", + "\u0185\u0002\u0bc3\u0bc4\u0005\u02fb\u017e\u0002\u0bc4\u0bc5\u0005\u031d", + "\u018f\u0002\u0bc5\u0bc6\u00074\u0002\u0002\u0bc6\u0260\u0003\u0002", + "\u0002\u0002\u0bc7\u0bc8\u0005\u0325\u0193\u0002\u0bc8\u0bc9\u0005\u02fb", + "\u017e\u0002\u0bc9\u0bca\u0005\u031d\u018f\u0002\u0bca\u0bcb\u0005\u032b", + "\u0196\u0002\u0bcb\u0bcc\u0005\u030b\u0186\u0002\u0bcc\u0bcd\u0005\u0315", + "\u018b\u0002\u0bcd\u0bce\u0005\u0307\u0184\u0002\u0bce\u0262\u0003\u0002", + "\u0002\u0002\u0bcf\u0bd0\u0005\u0325\u0193\u0002\u0bd0\u0bd1\u0005\u0317", + "\u018c\u0002\u0bd1\u0bd2\u0005\u0311\u0189\u0002\u0bd2\u0bd3\u0005\u02fb", + "\u017e\u0002\u0bd3\u0bd4\u0005\u0321\u0191\u0002\u0bd4\u0bd5\u0005\u030b", + "\u0186\u0002\u0bd5\u0bd6\u0005\u0311\u0189\u0002\u0bd6\u0bd7\u0005\u0303", + "\u0182\u0002\u0bd7\u0264\u0003\u0002\u0002\u0002\u0bd8\u0bd9\u0005\u0327", + "\u0194\u0002\u0bd9\u0bda\u0005\u0309\u0185\u0002\u0bda\u0bdb\u0005\u0303", + "\u0182\u0002\u0bdb\u0bdc\u0005\u0315\u018b\u0002\u0bdc\u0266\u0003\u0002", + "\u0002\u0002\u0bdd\u0bde\u0005\u0327\u0194\u0002\u0bde\u0bdf\u0005\u0309", + "\u0185\u0002\u0bdf\u0be0\u0005\u0303\u0182\u0002\u0be0\u0be1\u0005\u031d", + "\u018f\u0002\u0be1\u0be2\u0005\u0303\u0182\u0002\u0be2\u0268\u0003\u0002", + "\u0002\u0002\u0be3\u0be4\u0005\u0327\u0194\u0002\u0be4\u0be5\u0005\u0309", + "\u0185\u0002\u0be5\u0be6\u0005\u030b\u0186\u0002\u0be6\u0be7\u0005\u0311", + "\u0189\u0002\u0be7\u0be8\u0005\u0303\u0182\u0002\u0be8\u026a\u0003\u0002", + "\u0002\u0002\u0be9\u0bea\u0005\u0327\u0194\u0002\u0bea\u0beb\u0005\u030b", + "\u0186\u0002\u0beb\u0bec\u0005\u0321\u0191\u0002\u0bec\u0bed\u0005\u0309", + "\u0185\u0002\u0bed\u026c\u0003\u0002\u0002\u0002\u0bee\u0bef\u0005\u0327", + "\u0194\u0002\u0bef\u0bf0\u0005\u030b\u0186\u0002\u0bf0\u0bf1\u0005\u0321", + "\u0191\u0002\u0bf1\u0bf2\u0005\u0309\u0185\u0002\u0bf2\u0bf3\u0005\u0317", + "\u018c\u0002\u0bf3\u0bf4\u0005\u0323\u0192\u0002\u0bf4\u0bf5\u0005\u0321", + "\u0191\u0002\u0bf5\u026e\u0003\u0002\u0002\u0002\u0bf6\u0bf7\u0005\u0327", + "\u0194\u0002\u0bf7\u0bf8\u0005\u0317\u018c\u0002\u0bf8\u0bf9\u0005\u031d", + "\u018f\u0002\u0bf9\u0bfa\u0005\u030f\u0188\u0002\u0bfa\u0270\u0003\u0002", + "\u0002\u0002\u0bfb\u0bfc\u0005\u0329\u0195\u0002\u0bfc\u0bfd\u0005\u02fb", + "\u017e\u0002\u0bfd\u0bfe\u0005\u02ff\u0180\u0002\u0bfe\u0bff\u0005\u0321", + "\u0191\u0002\u0bff\u0c00\u0007a\u0002\u0002\u0c00\u0c01\u0005\u02fb", + "\u017e\u0002\u0c01\u0c02\u0005\u02fd\u017f\u0002\u0c02\u0c03\u0005\u0317", + "\u018c\u0002\u0c03\u0c04\u0005\u031d\u018f\u0002\u0c04\u0c05\u0005\u0321", + "\u0191\u0002\u0c05\u0272\u0003\u0002\u0002\u0002\u0c06\u0c07\u0005\u0329", + "\u0195\u0002\u0c07\u0c08\u0005\u0313\u018a\u0002\u0c08\u0c09\u0005\u0311", + "\u0189\u0002\u0c09\u0274\u0003\u0002\u0002\u0002\u0c0a\u0c0b\u0005\u032b", + "\u0196\u0002\u0c0b\u0c0c\u0005\u0303\u0182\u0002\u0c0c\u0c0d\u0005\u031f", + "\u0190\u0002\u0c0d\u0276\u0003\u0002\u0002\u0002\u0c0e\u0c0f\u0005\u02fb", + "\u017e\u0002\u0c0f\u0c10\u0005\u02ff\u0180\u0002\u0c10\u0c11\u0005\u0321", + "\u0191\u0002\u0c11\u0c12\u0005\u030b\u0186\u0002\u0c12\u0c13\u0005\u0325", + "\u0193\u0002\u0c13\u0c14\u0005\u030b\u0186\u0002\u0c14\u0c15\u0005\u0321", + "\u0191\u0002\u0c15\u0c16\u0005\u032b\u0196\u0002\u0c16\u0c17\u0007a", + "\u0002\u0002\u0c17\u0c18\u0005\u02ff\u0180\u0002\u0c18\u0c19\u0005\u0317", + "\u018c\u0002\u0c19\u0c1a\u0005\u0323\u0192\u0002\u0c1a\u0c1b\u0005\u0315", + "\u018b\u0002\u0c1b\u0c1c\u0005\u0321\u0191\u0002\u0c1c\u0278\u0003\u0002", + "\u0002\u0002\u0c1d\u0c1e\u0005\u02ff\u0180\u0002\u0c1e\u0c1f\u0005\u0323", + "\u0192\u0002\u0c1f\u0c20\u0005\u0313\u018a\u0002\u0c20\u0c21\u0005\u0303", + "\u0182\u0002\u0c21\u0c22\u0007a\u0002\u0002\u0c22\u0c23\u0005\u0301", + "\u0181\u0002\u0c23\u0c24\u0005\u030b\u0186\u0002\u0c24\u0c25\u0005\u031f", + "\u0190\u0002\u0c25\u0c26\u0005\u0321\u0191\u0002\u0c26\u027a\u0003\u0002", + "\u0002\u0002\u0c27\u0c28\u0005\u02ff\u0180\u0002\u0c28\u0c29\u0005\u0323", + "\u0192\u0002\u0c29\u0c2a\u0005\u031d\u018f\u0002\u0c2a\u0c2b\u0005\u031d", + "\u018f\u0002\u0c2b\u0c2c\u0005\u0303\u0182\u0002\u0c2c\u0c2d\u0005\u0315", + "\u018b\u0002\u0c2d\u0c2e\u0005\u0321\u0191\u0002\u0c2e\u0c2f\u0007a", + "\u0002\u0002\u0c2f\u0c30\u0005\u0301\u0181\u0002\u0c30\u0c31\u0005\u02fb", + "\u017e\u0002\u0c31\u0c32\u0005\u0321\u0191\u0002\u0c32\u0c33\u0005\u0303", + "\u0182\u0002\u0c33\u027c\u0003\u0002\u0002\u0002\u0c34\u0c35\u0005\u02ff", + "\u0180\u0002\u0c35\u0c36\u0005\u0323\u0192\u0002\u0c36\u0c37\u0005\u031d", + "\u018f\u0002\u0c37\u0c38\u0005\u031d\u018f\u0002\u0c38\u0c39\u0005\u0303", + "\u0182\u0002\u0c39\u0c3a\u0005\u0315\u018b\u0002\u0c3a\u0c3b\u0005\u0321", + "\u0191\u0002\u0c3b\u0c3c\u0007a\u0002\u0002\u0c3c\u0c3d\u0005\u0321", + "\u0191\u0002\u0c3d\u0c3e\u0005\u030b\u0186\u0002\u0c3e\u0c3f\u0005\u0313", + "\u018a\u0002\u0c3f\u0c40\u0005\u0303\u0182\u0002\u0c40\u0c41\u0005\u031f", + "\u0190\u0002\u0c41\u0c42\u0005\u0321\u0191\u0002\u0c42\u0c43\u0005\u02fb", + "\u017e\u0002\u0c43\u0c44\u0005\u0313\u018a\u0002\u0c44\u0c45\u0005\u0319", + "\u018d\u0002\u0c45\u027e\u0003\u0002\u0002\u0002\u0c46\u0c47\u0005\u02ff", + "\u0180\u0002\u0c47\u0c48\u0005\u0323\u0192\u0002\u0c48\u0c49\u0005\u031d", + "\u018f\u0002\u0c49\u0c4a\u0005\u031d\u018f\u0002\u0c4a\u0c4b\u0005\u0303", + "\u0182\u0002\u0c4b\u0c4c\u0005\u0315\u018b\u0002\u0c4c\u0c4d\u0005\u0321", + "\u0191\u0002\u0c4d\u0c4e\u0007a\u0002\u0002\u0c4e\u0c4f\u0005\u0323", + "\u0192\u0002\u0c4f\u0c50\u0005\u031f\u0190\u0002\u0c50\u0c51\u0005\u0303", + "\u0182\u0002\u0c51\u0c52\u0005\u031d\u018f\u0002\u0c52\u0280\u0003\u0002", + "\u0002\u0002\u0c53\u0c54\u0005\u0301\u0181\u0002\u0c54\u0c55\u0005\u0303", + "\u0182\u0002\u0c55\u0c56\u0005\u0315\u018b\u0002\u0c56\u0c57\u0005\u031f", + "\u0190\u0002\u0c57\u0c58\u0005\u0303\u0182\u0002\u0c58\u0c59\u0007a", + "\u0002\u0002\u0c59\u0c5a\u0005\u031d\u018f\u0002\u0c5a\u0c5b\u0005\u02fb", + "\u017e\u0002\u0c5b\u0c5c\u0005\u0315\u018b\u0002\u0c5c\u0c5d\u0005\u030f", + "\u0188\u0002\u0c5d\u0282\u0003\u0002\u0002\u0002\u0c5e\u0c5f\u0005\u0305", + "\u0183\u0002\u0c5f\u0c60\u0005\u030b\u0186\u0002\u0c60\u0c61\u0005\u031d", + "\u018f\u0002\u0c61\u0c62\u0005\u031f\u0190\u0002\u0c62\u0c63\u0005\u0321", + "\u0191\u0002\u0c63\u0c64\u0007a\u0002\u0002\u0c64\u0c65\u0005\u0325", + "\u0193\u0002\u0c65\u0c66\u0005\u02fb\u017e\u0002\u0c66\u0c67\u0005\u0311", + "\u0189\u0002\u0c67\u0c68\u0005\u0323\u0192\u0002\u0c68\u0c69\u0005\u0303", + "\u0182\u0002\u0c69\u0284\u0003\u0002\u0002\u0002\u0c6a\u0c6b\u0005\u0311", + "\u0189\u0002\u0c6b\u0c6c\u0005\u02fb\u017e\u0002\u0c6c\u0c6d\u0005\u0307", + "\u0184\u0002\u0c6d\u0286\u0003\u0002\u0002\u0002\u0c6e\u0c6f\u0005\u0311", + "\u0189\u0002\u0c6f\u0c70\u0005\u02fb\u017e\u0002\u0c70\u0c71\u0005\u031f", + "\u0190\u0002\u0c71\u0c72\u0005\u0321\u0191\u0002\u0c72\u0c73\u0007a", + "\u0002\u0002\u0c73\u0c74\u0005\u0325\u0193\u0002\u0c74\u0c75\u0005\u02fb", + "\u017e\u0002\u0c75\u0c76\u0005\u0311\u0189\u0002\u0c76\u0c77\u0005\u0323", + "\u0192\u0002\u0c77\u0c78\u0005\u0303\u0182\u0002\u0c78\u0288\u0003\u0002", + "\u0002\u0002\u0c79\u0c7a\u0005\u0311\u0189\u0002\u0c7a\u0c7b\u0005\u0303", + "\u0182\u0002\u0c7b\u0c7c\u0005\u02fb\u017e\u0002\u0c7c\u0c7d\u0005\u0301", + "\u0181\u0002\u0c7d\u028a\u0003\u0002\u0002\u0002\u0c7e\u0c7f\u0005\u0313", + "\u018a\u0002\u0c7f\u0c80\u0005\u02fb\u017e\u0002\u0c80\u0c81\u0005\u0329", + "\u0195\u0002\u0c81\u0c82\u0007a\u0002\u0002\u0c82\u0c83\u0005\u0319", + "\u018d\u0002\u0c83\u0c84\u0005\u02fb\u017e\u0002\u0c84\u0c85\u0005\u031d", + "\u018f\u0002\u0c85\u0c86\u0005\u0321\u0191\u0002\u0c86\u0c87\u0007a", + "\u0002\u0002\u0c87\u0c88\u0005\u031f\u0190\u0002\u0c88\u0c89\u0005\u0321", + "\u0191\u0002\u0c89\u0c8a\u0005\u031d\u018f\u0002\u0c8a\u0c8b\u0005\u030b", + "\u0186\u0002\u0c8b\u0c8c\u0005\u0315\u018b\u0002\u0c8c\u0c8d\u0005\u0307", + "\u0184\u0002\u0c8d\u028c\u0003\u0002\u0002\u0002\u0c8e\u0c8f\u0005\u0313", + "\u018a\u0002\u0c8f\u0c90\u0005\u030b\u0186\u0002\u0c90\u0c91\u0005\u0315", + "\u018b\u0002\u0c91\u0c92\u0007a\u0002\u0002\u0c92\u0c93\u0005\u0319", + "\u018d\u0002\u0c93\u0c94\u0005\u02fb\u017e\u0002\u0c94\u0c95\u0005\u031d", + "\u018f\u0002\u0c95\u0c96\u0005\u0321\u0191\u0002\u0c96\u0c97\u0007a", + "\u0002\u0002\u0c97\u0c98\u0005\u031f\u0190\u0002\u0c98\u0c99\u0005\u0321", + "\u0191\u0002\u0c99\u0c9a\u0005\u031d\u018f\u0002\u0c9a\u0c9b\u0005\u030b", + "\u0186\u0002\u0c9b\u0c9c\u0005\u0315\u018b\u0002\u0c9c\u0c9d\u0005\u0307", + "\u0184\u0002\u0c9d\u028e\u0003\u0002\u0002\u0002\u0c9e\u0c9f\u0005\u0313", + "\u018a\u0002\u0c9f\u0ca0\u0005\u02fb\u017e\u0002\u0ca0\u0ca1\u0005\u0329", + "\u0195\u0002\u0ca1\u0ca2\u0007a\u0002\u0002\u0ca2\u0ca3\u0005\u0319", + "\u018d\u0002\u0ca3\u0ca4\u0005\u02fb\u017e\u0002\u0ca4\u0ca5\u0005\u031d", + "\u018f\u0002\u0ca5\u0ca6\u0005\u0321\u0191\u0002\u0ca6\u0ca7\u0007a", + "\u0002\u0002\u0ca7\u0ca8\u0005\u030b\u0186\u0002\u0ca8\u0ca9\u0005\u0315", + "\u018b\u0002\u0ca9\u0caa\u0005\u0321\u0191\u0002\u0caa\u0290\u0003\u0002", + "\u0002\u0002\u0cab\u0cac\u0005\u0313\u018a\u0002\u0cac\u0cad\u0005\u030b", + "\u0186\u0002\u0cad\u0cae\u0005\u0315\u018b\u0002\u0cae\u0caf\u0007a", + "\u0002\u0002\u0caf\u0cb0\u0005\u0319\u018d\u0002\u0cb0\u0cb1\u0005\u02fb", + "\u017e\u0002\u0cb1\u0cb2\u0005\u031d\u018f\u0002\u0cb2\u0cb3\u0005\u0321", + "\u0191\u0002\u0cb3\u0cb4\u0007a\u0002\u0002\u0cb4\u0cb5\u0005\u030b", + "\u0186\u0002\u0cb5\u0cb6\u0005\u0315\u018b\u0002\u0cb6\u0cb7\u0005\u0321", + "\u0191\u0002\u0cb7\u0292\u0003\u0002\u0002\u0002\u0cb8\u0cb9\u0005\u0313", + "\u018a\u0002\u0cb9\u0cba\u0005\u02fb\u017e\u0002\u0cba\u0cbb\u0005\u0329", + "\u0195\u0002\u0cbb\u0cbc\u0007a\u0002\u0002\u0cbc\u0cbd\u0005\u0319", + "\u018d\u0002\u0cbd\u0cbe\u0005\u02fb\u017e\u0002\u0cbe\u0cbf\u0005\u031d", + "\u018f\u0002\u0cbf\u0cc0\u0005\u0321\u0191\u0002\u0cc0\u0cc1\u0007a", + "\u0002\u0002\u0cc1\u0cc2\u0005\u0301\u0181\u0002\u0cc2\u0cc3\u0005\u02fb", + "\u017e\u0002\u0cc3\u0cc4\u0005\u0321\u0191\u0002\u0cc4\u0cc5\u0005\u0303", + "\u0182\u0002\u0cc5\u0294\u0003\u0002\u0002\u0002\u0cc6\u0cc7\u0005\u0313", + "\u018a\u0002\u0cc7\u0cc8\u0005\u030b\u0186\u0002\u0cc8\u0cc9\u0005\u0315", + "\u018b\u0002\u0cc9\u0cca\u0007a\u0002\u0002\u0cca\u0ccb\u0005\u0319", + "\u018d\u0002\u0ccb\u0ccc\u0005\u02fb\u017e\u0002\u0ccc\u0ccd\u0005\u031d", + "\u018f\u0002\u0ccd\u0cce\u0005\u0321\u0191\u0002\u0cce\u0ccf\u0007a", + "\u0002\u0002\u0ccf\u0cd0\u0005\u0301\u0181\u0002\u0cd0\u0cd1\u0005\u02fb", + "\u017e\u0002\u0cd1\u0cd2\u0005\u0321\u0191\u0002\u0cd2\u0cd3\u0005\u0303", + "\u0182\u0002\u0cd3\u0296\u0003\u0002\u0002\u0002\u0cd4\u0cd5\u0005\u0319", + "\u018d\u0002\u0cd5\u0cd6\u0005\u02fb\u017e\u0002\u0cd6\u0cd7\u0005\u031d", + "\u018f\u0002\u0cd7\u0cd8\u0005\u0321\u0191\u0002\u0cd8\u0cd9\u0007a", + "\u0002\u0002\u0cd9\u0cda\u0005\u02ff\u0180\u0002\u0cda\u0cdb\u0005\u0317", + "\u018c\u0002\u0cdb\u0cdc\u0005\u0323\u0192\u0002\u0cdc\u0cdd\u0005\u0315", + "\u018b\u0002\u0cdd\u0cde\u0005\u0321\u0191\u0002\u0cde\u0298\u0003\u0002", + "\u0002\u0002\u0cdf\u0ce0\u0005\u0319\u018d\u0002\u0ce0\u0ce1\u0005\u02fb", + "\u017e\u0002\u0ce1\u0ce2\u0005\u031d\u018f\u0002\u0ce2\u0ce3\u0005\u0321", + "\u0191\u0002\u0ce3\u0ce4\u0007a\u0002\u0002\u0ce4\u0ce5\u0005\u0311", + "\u0189\u0002\u0ce5\u0ce6\u0005\u0317\u018c\u0002\u0ce6\u0ce7\u0005\u02ff", + "\u0180\u0002\u0ce7\u029a\u0003\u0002\u0002\u0002\u0ce8\u0ce9\u0005\u031d", + "\u018f\u0002\u0ce9\u0cea\u0005\u02fb\u017e\u0002\u0cea\u0ceb\u0005\u0315", + "\u018b\u0002\u0ceb\u0cec\u0005\u030f\u0188\u0002\u0cec\u029c\u0003\u0002", + "\u0002\u0002\u0ced\u0cee\u0005\u031d\u018f\u0002\u0cee\u0cef\u0005\u0317", + "\u018c\u0002\u0cef\u0cf0\u0005\u0327\u0194\u0002\u0cf0\u0cf1\u0007a", + "\u0002\u0002\u0cf1\u0cf2\u0005\u0315\u018b\u0002\u0cf2\u0cf3\u0005\u0323", + "\u0192\u0002\u0cf3\u0cf4\u0005\u0313\u018a\u0002\u0cf4\u0cf5\u0005\u02fd", + "\u017f\u0002\u0cf5\u0cf6\u0005\u0303\u0182\u0002\u0cf6\u0cf7\u0005\u031d", + "\u018f\u0002\u0cf7\u029e\u0003\u0002\u0002\u0002\u0cf8\u0cf9\u0005\u031f", + "\u0190\u0002\u0cf9\u0cfa\u0005\u0321\u0191\u0002\u0cfa\u0cfb\u0005\u0301", + "\u0181\u0002\u0cfb\u0cfc\u0005\u0303\u0182\u0002\u0cfc\u0cfd\u0005\u0325", + "\u0193\u0002\u0cfd\u02a0\u0003\u0002\u0002\u0002\u0cfe\u0cff\u0005\u031f", + "\u0190\u0002\u0cff\u0d00\u0005\u032b\u0196\u0002\u0d00\u0d01\u0005\u031f", + "\u0190\u0002\u0d01\u0d02\u0005\u0301\u0181\u0002\u0d02\u0d03\u0005\u02fb", + "\u017e\u0002\u0d03\u0d04\u0005\u0321\u0191\u0002\u0d04\u0d05\u0005\u0303", + "\u0182\u0002\u0d05\u02a2\u0003\u0002\u0002\u0002\u0d06\u0d07\u0005\u0325", + "\u0193\u0002\u0d07\u0d08\u0005\u02fb\u017e\u0002\u0d08\u0d09\u0005\u031d", + "\u018f\u0002\u0d09\u0d0a\u0005\u030b\u0186\u0002\u0d0a\u0d0b\u0005\u02fb", + "\u017e\u0002\u0d0b\u0d0c\u0005\u0315\u018b\u0002\u0d0c\u0d0d\u0005\u02ff", + "\u0180\u0002\u0d0d\u0d0e\u0005\u0303\u0182\u0002\u0d0e\u02a4\u0003\u0002", + "\u0002\u0002\u0d0f\u0d10\u0005\u0323\u0192\u0002\u0d10\u0d11\u0005\u031f", + "\u0190\u0002\u0d11\u0d12\u0005\u0303\u0182\u0002\u0d12\u0d13\u0005\u031d", + "\u018f\u0002\u0d13\u02a6\u0003\u0002\u0002\u0002\u0d14\u0d15\u0007-", + "\u0002\u0002\u0d15\u02a8\u0003\u0002\u0002\u0002\u0d16\u0d17\u0007<", + "\u0002\u0002\u0d17\u02aa\u0003\u0002\u0002\u0002\u0d18\u0d19\u0007.", + "\u0002\u0002\u0d19\u02ac\u0003\u0002\u0002\u0002\u0d1a\u0d1b\u0007~", + "\u0002\u0002\u0d1b\u0d1c\u0007~\u0002\u0002\u0d1c\u02ae\u0003\u0002", + "\u0002\u0002\u0d1d\u0d1e\u00071\u0002\u0002\u0d1e\u02b0\u0003\u0002", + "\u0002\u0002\u0d1f\u0d20\u00070\u0002\u0002\u0d20\u02b2\u0003\u0002", + "\u0002\u0002\u0d21\u0d22\u00070\u0002\u0002\u0d22\u0d23\u00070\u0002", + "\u0002\u0d23\u02b4\u0003\u0002\u0002\u0002\u0d24\u0d25\u0007?\u0002", + "\u0002\u0d25\u02b6\u0003\u0002\u0002\u0002\u0d26\u0d27\u0007?\u0002", + "\u0002\u0d27\u0d28\u0007?\u0002\u0002\u0d28\u02b8\u0003\u0002\u0002", + "\u0002\u0d29\u0d2a\u0007%\u0002\u0002\u0d2a\u02ba\u0003\u0002\u0002", + "\u0002\u0d2b\u0d2c\u0007#\u0002\u0002\u0d2c\u02bc\u0003\u0002\u0002", + "\u0002\u0d2d\u0d2e\u0007>\u0002\u0002\u0d2e\u0d2f\u0007@\u0002\u0002", + "\u0d2f\u02be\u0003\u0002\u0002\u0002\u0d30\u0d31\u0007#\u0002\u0002", + "\u0d31\u0d32\u0007?\u0002\u0002\u0d32\u02c0\u0003\u0002\u0002\u0002", + "\u0d33\u0d34\u0007@\u0002\u0002\u0d34\u02c2\u0003\u0002\u0002\u0002", + "\u0d35\u0d36\u0007@\u0002\u0002\u0d36\u0d37\u0007?\u0002\u0002\u0d37", + "\u02c4\u0003\u0002\u0002\u0002\u0d38\u0d39\u0007>\u0002\u0002\u0d39", + "\u02c6\u0003\u0002\u0002\u0002\u0d3a\u0d3b\u0007>\u0002\u0002\u0d3b", + "\u0d3c\u0007?\u0002\u0002\u0d3c\u02c8\u0003\u0002\u0002\u0002\u0d3d", + "\u0d3e\u0007,\u0002\u0002\u0d3e\u02ca\u0003\u0002\u0002\u0002\u0d3f", + "\u0d40\u0007\'\u0002\u0002\u0d40\u02cc\u0003\u0002\u0002\u0002\u0d41", + "\u0d42\u0007B\u0002\u0002\u0d42\u02ce\u0003\u0002\u0002\u0002\u0d43", + "\u0d44\u0007}\u0002\u0002\u0d44\u02d0\u0003\u0002\u0002\u0002\u0d45", + "\u0d46\u0007*\u0002\u0002\u0d46\u02d2\u0003\u0002\u0002\u0002\u0d47", + "\u0d48\u0007]\u0002\u0002\u0d48\u02d4\u0003\u0002\u0002\u0002\u0d49", + "\u0d4a\u0007\u007f\u0002\u0002\u0d4a\u02d6\u0003\u0002\u0002\u0002\u0d4b", + "\u0d4c\u0007+\u0002\u0002\u0d4c\u02d8\u0003\u0002\u0002\u0002\u0d4d", + "\u0d4e\u0007_\u0002\u0002\u0d4e\u02da\u0003\u0002\u0002\u0002\u0d4f", + "\u0d50\u0007=\u0002\u0002\u0d50\u02dc\u0003\u0002\u0002\u0002\u0d51", + "\u0d52\u0007/\u0002\u0002\u0d52\u02de\u0003\u0002\u0002\u0002\u0d53", + "\u0d54\u0005\u02f3\u017a\u0002\u0d54\u02e0\u0003\u0002\u0002\u0002\u0d55", + "\u0d5d\u0007)\u0002\u0002\u0d56\u0d57\u0007)\u0002\u0002\u0d57\u0d5c", + "\u0007)\u0002\u0002\u0d58\u0d59\u0007^\u0002\u0002\u0d59\u0d5c\u0007", + ")\u0002\u0002\u0d5a\u0d5c\n\u0002\u0002\u0002\u0d5b\u0d56\u0003\u0002", + "\u0002\u0002\u0d5b\u0d58\u0003\u0002\u0002\u0002\u0d5b\u0d5a\u0003\u0002", + "\u0002\u0002\u0d5c\u0d5f\u0003\u0002\u0002\u0002\u0d5d\u0d5b\u0003\u0002", + "\u0002\u0002\u0d5d\u0d5e\u0003\u0002\u0002\u0002\u0d5e\u0d60\u0003\u0002", + "\u0002\u0002\u0d5f\u0d5d\u0003\u0002\u0002\u0002\u0d60\u0d61\u0007)", + "\u0002\u0002\u0d61\u02e2\u0003\u0002\u0002\u0002\u0d62\u0d67\u0007$", + "\u0002\u0002\u0d63\u0d66\u0005\u02f5\u017b\u0002\u0d64\u0d66\u000b\u0002", + "\u0002\u0002\u0d65\u0d63\u0003\u0002\u0002\u0002\u0d65\u0d64\u0003\u0002", + "\u0002\u0002\u0d66\u0d69\u0003\u0002\u0002\u0002\u0d67\u0d68\u0003\u0002", + "\u0002\u0002\u0d67\u0d65\u0003\u0002\u0002\u0002\u0d68\u0d6a\u0003\u0002", + "\u0002\u0002\u0d69\u0d67\u0003\u0002\u0002\u0002\u0d6a\u0d6b\u0007$", + "\u0002\u0002\u0d6b\u02e4\u0003\u0002\u0002\u0002\u0d6c\u0d6e\u0005\u02f7", + "\u017c\u0002\u0d6d\u0d6c\u0003\u0002\u0002\u0002\u0d6e\u0d6f\u0003\u0002", + "\u0002\u0002\u0d6f\u0d6d\u0003\u0002\u0002\u0002\u0d6f\u0d70\u0003\u0002", + "\u0002\u0002\u0d70\u02e6\u0003\u0002\u0002\u0002\u0d71\u0d73\u0005\u02f7", + "\u017c\u0002\u0d72\u0d71\u0003\u0002\u0002\u0002\u0d73\u0d74\u0003\u0002", + "\u0002\u0002\u0d74\u0d72\u0003\u0002\u0002\u0002\u0d74\u0d75\u0003\u0002", + "\u0002\u0002\u0d75\u0d76\u0003\u0002\u0002\u0002\u0d76\u0d77\u00070", + "\u0002\u0002\u0d77\u0d7b\n\u0003\u0002\u0002\u0d78\u0d7a\u0005\u02f7", + "\u017c\u0002\u0d79\u0d78\u0003\u0002\u0002\u0002\u0d7a\u0d7d\u0003\u0002", + "\u0002\u0002\u0d7b\u0d79\u0003\u0002\u0002\u0002\u0d7b\u0d7c\u0003\u0002", + "\u0002\u0002\u0d7c\u0d85\u0003\u0002\u0002\u0002\u0d7d\u0d7b\u0003\u0002", + "\u0002\u0002\u0d7e\u0d80\u00070\u0002\u0002\u0d7f\u0d81\u0005\u02f7", + "\u017c\u0002\u0d80\u0d7f\u0003\u0002\u0002\u0002\u0d81\u0d82\u0003\u0002", + "\u0002\u0002\u0d82\u0d80\u0003\u0002\u0002\u0002\u0d82\u0d83\u0003\u0002", + "\u0002\u0002\u0d83\u0d85\u0003\u0002\u0002\u0002\u0d84\u0d72\u0003\u0002", + "\u0002\u0002\u0d84\u0d7e\u0003\u0002\u0002\u0002\u0d85\u02e8\u0003\u0002", + "\u0002\u0002\u0d86\u0d88\u0005\u02f9\u017d\u0002\u0d87\u0d86\u0003\u0002", + "\u0002\u0002\u0d88\u0d89\u0003\u0002\u0002\u0002\u0d89\u0d87\u0003\u0002", + "\u0002\u0002\u0d89\u0d8a\u0003\u0002\u0002\u0002\u0d8a\u0d8b\u0003\u0002", + "\u0002\u0002\u0d8b\u0d8c\b\u0175\u0002\u0002\u0d8c\u02ea\u0003\u0002", + "\u0002\u0002\u0d8d\u0d8e\u00071\u0002\u0002\u0d8e\u0d8f\u0007,\u0002", + "\u0002\u0d8f\u0d93\u0003\u0002\u0002\u0002\u0d90\u0d92\u000b\u0002\u0002", + "\u0002\u0d91\u0d90\u0003\u0002\u0002\u0002\u0d92\u0d95\u0003\u0002\u0002", + "\u0002\u0d93\u0d94\u0003\u0002\u0002\u0002\u0d93\u0d91\u0003\u0002\u0002", + "\u0002\u0d94\u0d96\u0003\u0002\u0002\u0002\u0d95\u0d93\u0003\u0002\u0002", + "\u0002\u0d96\u0d97\u0007,\u0002\u0002\u0d97\u0d98\u00071\u0002\u0002", + "\u0d98\u0d99\u0003\u0002\u0002\u0002\u0d99\u0d9a\b\u0176\u0003\u0002", + "\u0d9a\u02ec\u0003\u0002\u0002\u0002\u0d9b\u0d9c\u0007/\u0002\u0002", + "\u0d9c\u0da0\u0007/\u0002\u0002\u0d9d\u0d9e\u00071\u0002\u0002\u0d9e", + "\u0da0\u00071\u0002\u0002\u0d9f\u0d9b\u0003\u0002\u0002\u0002\u0d9f", + "\u0d9d\u0003\u0002\u0002\u0002\u0da0\u0da4\u0003\u0002\u0002\u0002\u0da1", + "\u0da3\u000b\u0002\u0002\u0002\u0da2\u0da1\u0003\u0002\u0002\u0002\u0da3", + "\u0da6\u0003\u0002\u0002\u0002\u0da4\u0da5\u0003\u0002\u0002\u0002\u0da4", + "\u0da2\u0003\u0002\u0002\u0002\u0da5\u0da8\u0003\u0002\u0002\u0002\u0da6", + "\u0da4\u0003\u0002\u0002\u0002\u0da7\u0da9\u0007\u000f\u0002\u0002\u0da8", + "\u0da7\u0003\u0002\u0002\u0002\u0da8\u0da9\u0003\u0002\u0002\u0002\u0da9", + "\u0daa\u0003\u0002\u0002\u0002\u0daa\u0dab\u0007\f\u0002\u0002\u0dab", + "\u0dac\u0003\u0002\u0002\u0002\u0dac\u0dad\b\u0177\u0003\u0002\u0dad", + "\u02ee\u0003\u0002\u0002\u0002\u0dae\u0daf\t\u0004\u0002\u0002\u0daf", + "\u0db1\u0007<\u0002\u0002\u0db0\u0db2\u0007^\u0002\u0002\u0db1\u0db0", + "\u0003\u0002\u0002\u0002\u0db1\u0db2\u0003\u0002\u0002\u0002\u0db2\u0db4", + "\u0003\u0002\u0002\u0002\u0db3\u0dae\u0003\u0002\u0002\u0002\u0db3\u0db4", + "\u0003\u0002\u0002\u0002\u0db4\u0db5\u0003\u0002\u0002\u0002\u0db5\u0dba", + "\u0005\u02df\u0170\u0002\u0db6\u0db7\u0007^\u0002\u0002\u0db7\u0db9", + "\u0005\u02df\u0170\u0002\u0db8\u0db6\u0003\u0002\u0002\u0002\u0db9\u0dbc", + "\u0003\u0002\u0002\u0002\u0dba\u0db8\u0003\u0002\u0002\u0002\u0dba\u0dbb", + "\u0003\u0002\u0002\u0002\u0dbb\u02f0\u0003\u0002\u0002\u0002\u0dbc\u0dba", + "\u0003\u0002\u0002\u0002\u0dbd\u0dc1\t\u0004\u0002\u0002\u0dbe\u0dc1", + "\u0005\u02f7\u017c\u0002\u0dbf\u0dc1\u0007a\u0002\u0002\u0dc0\u0dbd", + "\u0003\u0002\u0002\u0002\u0dc0\u0dbe\u0003\u0002\u0002\u0002\u0dc0\u0dbf", + "\u0003\u0002\u0002\u0002\u0dc1\u0dc4\u0003\u0002\u0002\u0002\u0dc2\u0dc0", + "\u0003\u0002\u0002\u0002\u0dc2\u0dc3\u0003\u0002\u0002\u0002\u0dc3\u0dc5", + "\u0003\u0002\u0002\u0002\u0dc4\u0dc2\u0003\u0002\u0002\u0002\u0dc5\u0dc6", + "\u0007<\u0002\u0002\u0dc6\u02f2\u0003\u0002\u0002\u0002\u0dc7\u0dcd", + "\t\u0004\u0002\u0002\u0dc8\u0dcc\t\u0004\u0002\u0002\u0dc9\u0dcc\u0005", + "\u02f7\u017c\u0002\u0dca\u0dcc\u0007a\u0002\u0002\u0dcb\u0dc8\u0003", + "\u0002\u0002\u0002\u0dcb\u0dc9\u0003\u0002\u0002\u0002\u0dcb\u0dca\u0003", + "\u0002\u0002\u0002\u0dcc\u0dcf\u0003\u0002\u0002\u0002\u0dcd\u0dcb\u0003", + "\u0002\u0002\u0002\u0dcd\u0dce\u0003\u0002\u0002\u0002\u0dce\u0dfa\u0003", + "\u0002\u0002\u0002\u0dcf\u0dcd\u0003\u0002\u0002\u0002\u0dd0\u0dd1\u0007", + "&\u0002\u0002\u0dd1\u0dd5\u0007}\u0002\u0002\u0dd2\u0dd4\u000b\u0002", + "\u0002\u0002\u0dd3\u0dd2\u0003\u0002\u0002\u0002\u0dd4\u0dd7\u0003\u0002", + "\u0002\u0002\u0dd5\u0dd6\u0003\u0002\u0002\u0002\u0dd5\u0dd3\u0003\u0002", + "\u0002\u0002\u0dd6\u0dd8\u0003\u0002\u0002\u0002\u0dd7\u0dd5\u0003\u0002", + "\u0002\u0002\u0dd8\u0dfa\u0007\u007f\u0002\u0002\u0dd9\u0ddd\t\u0005", + "\u0002\u0002\u0dda\u0dde\t\u0004\u0002\u0002\u0ddb\u0dde\u0005\u02f7", + "\u017c\u0002\u0ddc\u0dde\t\u0005\u0002\u0002\u0ddd\u0dda\u0003\u0002", + "\u0002\u0002\u0ddd\u0ddb\u0003\u0002\u0002\u0002\u0ddd\u0ddc\u0003\u0002", + "\u0002\u0002\u0dde\u0ddf\u0003\u0002\u0002\u0002\u0ddf\u0ddd\u0003\u0002", + "\u0002\u0002\u0ddf\u0de0\u0003\u0002\u0002\u0002\u0de0\u0dfa\u0003\u0002", + "\u0002\u0002\u0de1\u0de5\u0007$\u0002\u0002\u0de2\u0de4\u000b\u0002", + "\u0002\u0002\u0de3\u0de2\u0003\u0002\u0002\u0002\u0de4\u0de7\u0003\u0002", + "\u0002\u0002\u0de5\u0de6\u0003\u0002\u0002\u0002\u0de5\u0de3\u0003\u0002", + "\u0002\u0002\u0de6\u0de8\u0003\u0002\u0002\u0002\u0de7\u0de5\u0003\u0002", + "\u0002\u0002\u0de8\u0dfa\u0007$\u0002\u0002\u0de9\u0ded\u0007]\u0002", + "\u0002\u0dea\u0dec\u000b\u0002\u0002\u0002\u0deb\u0dea\u0003\u0002\u0002", + "\u0002\u0dec\u0def\u0003\u0002\u0002\u0002\u0ded\u0dee\u0003\u0002\u0002", + "\u0002\u0ded\u0deb\u0003\u0002\u0002\u0002\u0dee\u0df0\u0003\u0002\u0002", + "\u0002\u0def\u0ded\u0003\u0002\u0002\u0002\u0df0\u0dfa\u0007_\u0002", + "\u0002\u0df1\u0df5\u0007b\u0002\u0002\u0df2\u0df4\u000b\u0002\u0002", + "\u0002\u0df3\u0df2\u0003\u0002\u0002\u0002\u0df4\u0df7\u0003\u0002\u0002", + "\u0002\u0df5\u0df6\u0003\u0002\u0002\u0002\u0df5\u0df3\u0003\u0002\u0002", + "\u0002\u0df6\u0df8\u0003\u0002\u0002\u0002\u0df7\u0df5\u0003\u0002\u0002", + "\u0002\u0df8\u0dfa\u0007b\u0002\u0002\u0df9\u0dc7\u0003\u0002\u0002", + "\u0002\u0df9\u0dd0\u0003\u0002\u0002\u0002\u0df9\u0dd9\u0003\u0002\u0002", + "\u0002\u0df9\u0de1\u0003\u0002\u0002\u0002\u0df9\u0de9\u0003\u0002\u0002", + "\u0002\u0df9\u0df1\u0003\u0002\u0002\u0002\u0dfa\u02f4\u0003\u0002\u0002", + "\u0002\u0dfb\u0dfc\u0007$\u0002\u0002\u0dfc\u0e00\u0007$\u0002\u0002", + "\u0dfd\u0dfe\u0007^\u0002\u0002\u0dfe\u0e00\u0007$\u0002\u0002\u0dff", + "\u0dfb\u0003\u0002\u0002\u0002\u0dff\u0dfd\u0003\u0002\u0002\u0002\u0e00", + "\u02f6\u0003\u0002\u0002\u0002\u0e01\u0e02\t\u0006\u0002\u0002\u0e02", + "\u02f8\u0003\u0002\u0002\u0002\u0e03\u0e04\t\u0007\u0002\u0002\u0e04", + "\u02fa\u0003\u0002\u0002\u0002\u0e05\u0e06\t\b\u0002\u0002\u0e06\u02fc", + "\u0003\u0002\u0002\u0002\u0e07\u0e08\t\t\u0002\u0002\u0e08\u02fe\u0003", + "\u0002\u0002\u0002\u0e09\u0e0a\t\n\u0002\u0002\u0e0a\u0300\u0003\u0002", + "\u0002\u0002\u0e0b\u0e0c\t\u000b\u0002\u0002\u0e0c\u0302\u0003\u0002", + "\u0002\u0002\u0e0d\u0e0e\t\f\u0002\u0002\u0e0e\u0304\u0003\u0002\u0002", + "\u0002\u0e0f\u0e10\t\r\u0002\u0002\u0e10\u0306\u0003\u0002\u0002\u0002", + "\u0e11\u0e12\t\u000e\u0002\u0002\u0e12\u0308\u0003\u0002\u0002\u0002", + "\u0e13\u0e14\t\u000f\u0002\u0002\u0e14\u030a\u0003\u0002\u0002\u0002", + "\u0e15\u0e16\t\u0010\u0002\u0002\u0e16\u030c\u0003\u0002\u0002\u0002", + "\u0e17\u0e18\t\u0011\u0002\u0002\u0e18\u030e\u0003\u0002\u0002\u0002", + "\u0e19\u0e1a\t\u0012\u0002\u0002\u0e1a\u0310\u0003\u0002\u0002\u0002", + "\u0e1b\u0e1c\t\u0013\u0002\u0002\u0e1c\u0312\u0003\u0002\u0002\u0002", + "\u0e1d\u0e1e\t\u0014\u0002\u0002\u0e1e\u0314\u0003\u0002\u0002\u0002", + "\u0e1f\u0e20\t\u0015\u0002\u0002\u0e20\u0316\u0003\u0002\u0002\u0002", + "\u0e21\u0e22\t\u0016\u0002\u0002\u0e22\u0318\u0003\u0002\u0002\u0002", + "\u0e23\u0e24\t\u0017\u0002\u0002\u0e24\u031a\u0003\u0002\u0002\u0002", + "\u0e25\u0e26\t\u0018\u0002\u0002\u0e26\u031c\u0003\u0002\u0002\u0002", + "\u0e27\u0e28\t\u0019\u0002\u0002\u0e28\u031e\u0003\u0002\u0002\u0002", + "\u0e29\u0e2a\t\u001a\u0002\u0002\u0e2a\u0320\u0003\u0002\u0002\u0002", + "\u0e2b\u0e2c\t\u001b\u0002\u0002\u0e2c\u0322\u0003\u0002\u0002\u0002", + "\u0e2d\u0e2e\t\u001c\u0002\u0002\u0e2e\u0324\u0003\u0002\u0002\u0002", + "\u0e2f\u0e30\t\u001d\u0002\u0002\u0e30\u0326\u0003\u0002\u0002\u0002", + "\u0e31\u0e32\t\u001e\u0002\u0002\u0e32\u0328\u0003\u0002\u0002\u0002", + "\u0e33\u0e34\t\u001f\u0002\u0002\u0e34\u032a\u0003\u0002\u0002\u0002", + "\u0e35\u0e36\t \u0002\u0002\u0e36\u032c\u0003\u0002\u0002\u0002\u0e37", + "\u0e38\t!\u0002\u0002\u0e38\u032e\u0003\u0002\u0002\u0002 \u0002\u0d5b", + "\u0d5d\u0d65\u0d67\u0d6f\u0d74\u0d7b\u0d82\u0d84\u0d89\u0d93\u0d9f\u0da4", + "\u0da8\u0db1\u0db3\u0dba\u0dc0\u0dc2\u0dcb\u0dcd\u0dd5\u0ddd\u0ddf\u0de5", + "\u0ded\u0df5\u0df9\u0dff\u0004\b\u0002\u0002\u0002\u0003\u0002"].join(""); var atn = new antlr4.atn.ATNDeserializer().deserialize(serializedATN); @@ -54,31 +2441,702 @@ Object.defineProperty(HiveSqlLexer.prototype, "atn", { }); HiveSqlLexer.EOF = antlr4.Token.EOF; -HiveSqlLexer.T__0 = 1; -HiveSqlLexer.T__1 = 2; -HiveSqlLexer.T__2 = 3; -HiveSqlLexer.T__3 = 4; -HiveSqlLexer.T__4 = 5; -HiveSqlLexer.T__5 = 6; -HiveSqlLexer.T__6 = 7; -HiveSqlLexer.T__7 = 8; -HiveSqlLexer.T__8 = 9; -HiveSqlLexer.T__9 = 10; +HiveSqlLexer.T_ACTION = 1; +HiveSqlLexer.T_ADD2 = 2; +HiveSqlLexer.T_ALL = 3; +HiveSqlLexer.T_ALLOCATE = 4; +HiveSqlLexer.T_ALTER = 5; +HiveSqlLexer.T_AND = 6; +HiveSqlLexer.T_ANSI_NULLS = 7; +HiveSqlLexer.T_ANSI_PADDING = 8; +HiveSqlLexer.T_AS = 9; +HiveSqlLexer.T_ASC = 10; +HiveSqlLexer.T_ASSOCIATE = 11; +HiveSqlLexer.T_AT = 12; +HiveSqlLexer.T_AUTO_INCREMENT = 13; +HiveSqlLexer.T_AVG = 14; +HiveSqlLexer.T_BATCHSIZE = 15; +HiveSqlLexer.T_BEGIN = 16; +HiveSqlLexer.T_BETWEEN = 17; +HiveSqlLexer.T_BIGINT = 18; +HiveSqlLexer.T_BINARY_DOUBLE = 19; +HiveSqlLexer.T_BINARY_FLOAT = 20; +HiveSqlLexer.T_BINARY_INTEGER = 21; +HiveSqlLexer.T_BIT = 22; +HiveSqlLexer.T_BODY = 23; +HiveSqlLexer.T_BREAK = 24; +HiveSqlLexer.T_BY = 25; +HiveSqlLexer.T_BYTE = 26; +HiveSqlLexer.T_CALL = 27; +HiveSqlLexer.T_CALLER = 28; +HiveSqlLexer.T_CASCADE = 29; +HiveSqlLexer.T_CASE = 30; +HiveSqlLexer.T_CASESPECIFIC = 31; +HiveSqlLexer.T_CAST = 32; +HiveSqlLexer.T_CHAR = 33; +HiveSqlLexer.T_CHARACTER = 34; +HiveSqlLexer.T_CHARSET = 35; +HiveSqlLexer.T_CLIENT = 36; +HiveSqlLexer.T_CLOSE = 37; +HiveSqlLexer.T_CLUSTERED = 38; +HiveSqlLexer.T_CMP = 39; +HiveSqlLexer.T_COLLECT = 40; +HiveSqlLexer.T_COLLECTION = 41; +HiveSqlLexer.T_COLUMN = 42; +HiveSqlLexer.T_COMMENT = 43; +HiveSqlLexer.T_CONSTANT = 44; +HiveSqlLexer.T_COMMIT = 45; +HiveSqlLexer.T_COMPRESS = 46; +HiveSqlLexer.T_CONCAT = 47; +HiveSqlLexer.T_CONDITION = 48; +HiveSqlLexer.T_CONSTRAINT = 49; +HiveSqlLexer.T_CONTINUE = 50; +HiveSqlLexer.T_COPY = 51; +HiveSqlLexer.T_COUNT = 52; +HiveSqlLexer.T_COUNT_BIG = 53; +HiveSqlLexer.T_CREATE = 54; +HiveSqlLexer.T_CREATION = 55; +HiveSqlLexer.T_CREATOR = 56; +HiveSqlLexer.T_CS = 57; +HiveSqlLexer.T_CURRENT = 58; +HiveSqlLexer.T_CURRENT_SCHEMA = 59; +HiveSqlLexer.T_CURSOR = 60; +HiveSqlLexer.T_DATABASE = 61; +HiveSqlLexer.T_DATA = 62; +HiveSqlLexer.T_DATE = 63; +HiveSqlLexer.T_DATETIME = 64; +HiveSqlLexer.T_DAY = 65; +HiveSqlLexer.T_DAYS = 66; +HiveSqlLexer.T_DEC = 67; +HiveSqlLexer.T_DECIMAL = 68; +HiveSqlLexer.T_DECLARE = 69; +HiveSqlLexer.T_DEFAULT = 70; +HiveSqlLexer.T_DEFERRED = 71; +HiveSqlLexer.T_DEFINED = 72; +HiveSqlLexer.T_DEFINER = 73; +HiveSqlLexer.T_DEFINITION = 74; +HiveSqlLexer.T_DELETE = 75; +HiveSqlLexer.T_DELIMITED = 76; +HiveSqlLexer.T_DELIMITER = 77; +HiveSqlLexer.T_DESC = 78; +HiveSqlLexer.T_DESCRIBE = 79; +HiveSqlLexer.T_DIAGNOSTICS = 80; +HiveSqlLexer.T_DIR = 81; +HiveSqlLexer.T_DIRECTORY = 82; +HiveSqlLexer.T_DISTINCT = 83; +HiveSqlLexer.T_DISTRIBUTE = 84; +HiveSqlLexer.T_DO = 85; +HiveSqlLexer.T_DOUBLE = 86; +HiveSqlLexer.T_DROP = 87; +HiveSqlLexer.T_DYNAMIC = 88; +HiveSqlLexer.T_ELSE = 89; +HiveSqlLexer.T_ELSEIF = 90; +HiveSqlLexer.T_ELSIF = 91; +HiveSqlLexer.T_ENABLE = 92; +HiveSqlLexer.T_END = 93; +HiveSqlLexer.T_ENGINE = 94; +HiveSqlLexer.T_ESCAPED = 95; +HiveSqlLexer.T_EXCEPT = 96; +HiveSqlLexer.T_EXEC = 97; +HiveSqlLexer.T_EXECUTE = 98; +HiveSqlLexer.T_EXCEPTION = 99; +HiveSqlLexer.T_EXCLUSIVE = 100; +HiveSqlLexer.T_EXISTS = 101; +HiveSqlLexer.T_EXIT = 102; +HiveSqlLexer.T_FALLBACK = 103; +HiveSqlLexer.T_FALSE = 104; +HiveSqlLexer.T_FETCH = 105; +HiveSqlLexer.T_FIELDS = 106; +HiveSqlLexer.T_FILE = 107; +HiveSqlLexer.T_FILES = 108; +HiveSqlLexer.T_FLOAT = 109; +HiveSqlLexer.T_FOR = 110; +HiveSqlLexer.T_FOREIGN = 111; +HiveSqlLexer.T_FORMAT = 112; +HiveSqlLexer.T_FOUND = 113; +HiveSqlLexer.T_FROM = 114; +HiveSqlLexer.T_FULL = 115; +HiveSqlLexer.T_FUNCTION = 116; +HiveSqlLexer.T_GET = 117; +HiveSqlLexer.T_GLOBAL = 118; +HiveSqlLexer.T_GO = 119; +HiveSqlLexer.T_GRANT = 120; +HiveSqlLexer.T_GROUP = 121; +HiveSqlLexer.T_HANDLER = 122; +HiveSqlLexer.T_HASH = 123; +HiveSqlLexer.T_HAVING = 124; +HiveSqlLexer.T_HDFS = 125; +HiveSqlLexer.T_HIVE = 126; +HiveSqlLexer.T_HOST = 127; +HiveSqlLexer.T_IDENTITY = 128; +HiveSqlLexer.T_IF = 129; +HiveSqlLexer.T_IGNORE = 130; +HiveSqlLexer.T_IMMEDIATE = 131; +HiveSqlLexer.T_IN = 132; +HiveSqlLexer.T_INCLUDE = 133; +HiveSqlLexer.T_INDEX = 134; +HiveSqlLexer.T_INITRANS = 135; +HiveSqlLexer.T_INNER = 136; +HiveSqlLexer.T_INOUT = 137; +HiveSqlLexer.T_INSERT = 138; +HiveSqlLexer.T_INT = 139; +HiveSqlLexer.T_INT2 = 140; +HiveSqlLexer.T_INT4 = 141; +HiveSqlLexer.T_INT8 = 142; +HiveSqlLexer.T_INTEGER = 143; +HiveSqlLexer.T_INTERSECT = 144; +HiveSqlLexer.T_INTERVAL = 145; +HiveSqlLexer.T_INTO = 146; +HiveSqlLexer.T_INVOKER = 147; +HiveSqlLexer.T_IS = 148; +HiveSqlLexer.T_ISOPEN = 149; +HiveSqlLexer.T_ITEMS = 150; +HiveSqlLexer.T_JOIN = 151; +HiveSqlLexer.T_KEEP = 152; +HiveSqlLexer.T_KEY = 153; +HiveSqlLexer.T_KEYS = 154; +HiveSqlLexer.T_LANGUAGE = 155; +HiveSqlLexer.T_LEAVE = 156; +HiveSqlLexer.T_LEFT = 157; +HiveSqlLexer.T_LIKE = 158; +HiveSqlLexer.T_LIMIT = 159; +HiveSqlLexer.T_LINES = 160; +HiveSqlLexer.T_LOCAL = 161; +HiveSqlLexer.T_LOCATION = 162; +HiveSqlLexer.T_LOCATOR = 163; +HiveSqlLexer.T_LOCATORS = 164; +HiveSqlLexer.T_LOCKS = 165; +HiveSqlLexer.T_LOG = 166; +HiveSqlLexer.T_LOGGED = 167; +HiveSqlLexer.T_LOGGING = 168; +HiveSqlLexer.T_LOOP = 169; +HiveSqlLexer.T_MAP = 170; +HiveSqlLexer.T_MATCHED = 171; +HiveSqlLexer.T_MAX = 172; +HiveSqlLexer.T_MAXTRANS = 173; +HiveSqlLexer.T_MERGE = 174; +HiveSqlLexer.T_MESSAGE_TEXT = 175; +HiveSqlLexer.T_MICROSECOND = 176; +HiveSqlLexer.T_MICROSECONDS = 177; +HiveSqlLexer.T_MIN = 178; +HiveSqlLexer.T_MULTISET = 179; +HiveSqlLexer.T_NCHAR = 180; +HiveSqlLexer.T_NEW = 181; +HiveSqlLexer.T_NVARCHAR = 182; +HiveSqlLexer.T_NO = 183; +HiveSqlLexer.T_NOCOUNT = 184; +HiveSqlLexer.T_NOCOMPRESS = 185; +HiveSqlLexer.T_NOLOGGING = 186; +HiveSqlLexer.T_NONE = 187; +HiveSqlLexer.T_NOT = 188; +HiveSqlLexer.T_NOTFOUND = 189; +HiveSqlLexer.T_NULL = 190; +HiveSqlLexer.T_NUMERIC = 191; +HiveSqlLexer.T_NUMBER = 192; +HiveSqlLexer.T_OBJECT = 193; +HiveSqlLexer.T_OFF = 194; +HiveSqlLexer.T_ON = 195; +HiveSqlLexer.T_ONLY = 196; +HiveSqlLexer.T_OPEN = 197; +HiveSqlLexer.T_OR = 198; +HiveSqlLexer.T_ORDER = 199; +HiveSqlLexer.T_OUT = 200; +HiveSqlLexer.T_OUTER = 201; +HiveSqlLexer.T_OVER = 202; +HiveSqlLexer.T_OVERWRITE = 203; +HiveSqlLexer.T_OWNER = 204; +HiveSqlLexer.T_PACKAGE = 205; +HiveSqlLexer.T_PARTITION = 206; +HiveSqlLexer.T_PCTFREE = 207; +HiveSqlLexer.T_PCTUSED = 208; +HiveSqlLexer.T_PLS_INTEGER = 209; +HiveSqlLexer.T_PRECISION = 210; +HiveSqlLexer.T_PRESERVE = 211; +HiveSqlLexer.T_PRIMARY = 212; +HiveSqlLexer.T_PRINT = 213; +HiveSqlLexer.T_PROC = 214; +HiveSqlLexer.T_PROCEDURE = 215; +HiveSqlLexer.T_QUALIFY = 216; +HiveSqlLexer.T_QUERY_BAND = 217; +HiveSqlLexer.T_QUIT = 218; +HiveSqlLexer.T_QUOTED_IDENTIFIER = 219; +HiveSqlLexer.T_RAISE = 220; +HiveSqlLexer.T_REAL = 221; +HiveSqlLexer.T_REFERENCES = 222; +HiveSqlLexer.T_REGEXP = 223; +HiveSqlLexer.T_REPLACE = 224; +HiveSqlLexer.T_RESIGNAL = 225; +HiveSqlLexer.T_RESTRICT = 226; +HiveSqlLexer.T_RESULT = 227; +HiveSqlLexer.T_RESULT_SET_LOCATOR = 228; +HiveSqlLexer.T_RETURN = 229; +HiveSqlLexer.T_RETURNS = 230; +HiveSqlLexer.T_REVERSE = 231; +HiveSqlLexer.T_RIGHT = 232; +HiveSqlLexer.T_RLIKE = 233; +HiveSqlLexer.T_ROLE = 234; +HiveSqlLexer.T_ROLLBACK = 235; +HiveSqlLexer.T_ROW = 236; +HiveSqlLexer.T_ROWS = 237; +HiveSqlLexer.T_ROWTYPE = 238; +HiveSqlLexer.T_ROW_COUNT = 239; +HiveSqlLexer.T_RR = 240; +HiveSqlLexer.T_RS = 241; +HiveSqlLexer.T_PWD = 242; +HiveSqlLexer.T_TRIM = 243; +HiveSqlLexer.T_SCHEMA = 244; +HiveSqlLexer.T_SECOND = 245; +HiveSqlLexer.T_SECONDS = 246; +HiveSqlLexer.T_SECURITY = 247; +HiveSqlLexer.T_SEGMENT = 248; +HiveSqlLexer.T_SEL = 249; +HiveSqlLexer.T_SELECT = 250; +HiveSqlLexer.T_SET = 251; +HiveSqlLexer.T_SESSION = 252; +HiveSqlLexer.T_SESSIONS = 253; +HiveSqlLexer.T_SETS = 254; +HiveSqlLexer.T_SHARE = 255; +HiveSqlLexer.T_SIGNAL = 256; +HiveSqlLexer.T_SIMPLE_DOUBLE = 257; +HiveSqlLexer.T_SIMPLE_FLOAT = 258; +HiveSqlLexer.T_SIMPLE_INTEGER = 259; +HiveSqlLexer.T_SMALLDATETIME = 260; +HiveSqlLexer.T_SMALLINT = 261; +HiveSqlLexer.T_SQL = 262; +HiveSqlLexer.T_SQLEXCEPTION = 263; +HiveSqlLexer.T_SQLINSERT = 264; +HiveSqlLexer.T_SQLSTATE = 265; +HiveSqlLexer.T_SQLWARNING = 266; +HiveSqlLexer.T_STATS = 267; +HiveSqlLexer.T_STATISTICS = 268; +HiveSqlLexer.T_STEP = 269; +HiveSqlLexer.T_STORAGE = 270; +HiveSqlLexer.T_STORED = 271; +HiveSqlLexer.T_STRING = 272; +HiveSqlLexer.T_SUBDIR = 273; +HiveSqlLexer.T_SUBSTRING = 274; +HiveSqlLexer.T_SUM = 275; +HiveSqlLexer.T_SUMMARY = 276; +HiveSqlLexer.T_SYS_REFCURSOR = 277; +HiveSqlLexer.T_TABLE = 278; +HiveSqlLexer.T_TABLESPACE = 279; +HiveSqlLexer.T_TEMPORARY = 280; +HiveSqlLexer.T_TERMINATED = 281; +HiveSqlLexer.T_TEXTIMAGE_ON = 282; +HiveSqlLexer.T_THEN = 283; +HiveSqlLexer.T_TIMESTAMP = 284; +HiveSqlLexer.T_TINYINT = 285; +HiveSqlLexer.T_TITLE = 286; +HiveSqlLexer.T_TO = 287; +HiveSqlLexer.T_TOP = 288; +HiveSqlLexer.T_TRANSACTION = 289; +HiveSqlLexer.T_TRUE = 290; +HiveSqlLexer.T_TRUNCATE = 291; +HiveSqlLexer.T_TYPE = 292; +HiveSqlLexer.T_UNION = 293; +HiveSqlLexer.T_UNIQUE = 294; +HiveSqlLexer.T_UPDATE = 295; +HiveSqlLexer.T_UR = 296; +HiveSqlLexer.T_USE = 297; +HiveSqlLexer.T_USING = 298; +HiveSqlLexer.T_VALUE = 299; +HiveSqlLexer.T_VALUES = 300; +HiveSqlLexer.T_VAR = 301; +HiveSqlLexer.T_VARCHAR = 302; +HiveSqlLexer.T_VARCHAR2 = 303; +HiveSqlLexer.T_VARYING = 304; +HiveSqlLexer.T_VOLATILE = 305; +HiveSqlLexer.T_WHEN = 306; +HiveSqlLexer.T_WHERE = 307; +HiveSqlLexer.T_WHILE = 308; +HiveSqlLexer.T_WITH = 309; +HiveSqlLexer.T_WITHOUT = 310; +HiveSqlLexer.T_WORK = 311; +HiveSqlLexer.T_XACT_ABORT = 312; +HiveSqlLexer.T_XML = 313; +HiveSqlLexer.T_YES = 314; +HiveSqlLexer.T_ACTIVITY_COUNT = 315; +HiveSqlLexer.T_CUME_DIST = 316; +HiveSqlLexer.T_CURRENT_DATE = 317; +HiveSqlLexer.T_CURRENT_TIMESTAMP = 318; +HiveSqlLexer.T_CURRENT_USER = 319; +HiveSqlLexer.T_DENSE_RANK = 320; +HiveSqlLexer.T_FIRST_VALUE = 321; +HiveSqlLexer.T_LAG = 322; +HiveSqlLexer.T_LAST_VALUE = 323; +HiveSqlLexer.T_LEAD = 324; +HiveSqlLexer.T_MAX_PART_STRING = 325; +HiveSqlLexer.T_MIN_PART_STRING = 326; +HiveSqlLexer.T_MAX_PART_INT = 327; +HiveSqlLexer.T_MIN_PART_INT = 328; +HiveSqlLexer.T_MAX_PART_DATE = 329; +HiveSqlLexer.T_MIN_PART_DATE = 330; +HiveSqlLexer.T_PART_COUNT = 331; +HiveSqlLexer.T_PART_LOC = 332; +HiveSqlLexer.T_RANK = 333; +HiveSqlLexer.T_ROW_NUMBER = 334; +HiveSqlLexer.T_STDEV = 335; +HiveSqlLexer.T_SYSDATE = 336; +HiveSqlLexer.T_VARIANCE = 337; +HiveSqlLexer.T_USER = 338; +HiveSqlLexer.T_ADD = 339; +HiveSqlLexer.T_COLON = 340; +HiveSqlLexer.T_COMMA = 341; +HiveSqlLexer.T_PIPE = 342; +HiveSqlLexer.T_DIV = 343; +HiveSqlLexer.T_DOT = 344; +HiveSqlLexer.T_DOT2 = 345; +HiveSqlLexer.T_EQUAL = 346; +HiveSqlLexer.T_EQUAL2 = 347; +HiveSqlLexer.T_SHARP = 348; +HiveSqlLexer.T_NOTE = 349; +HiveSqlLexer.T_NOTEQUAL = 350; +HiveSqlLexer.T_NOTEQUAL2 = 351; +HiveSqlLexer.T_GREATER = 352; +HiveSqlLexer.T_GREATEREQUAL = 353; +HiveSqlLexer.T_LESS = 354; +HiveSqlLexer.T_LESSEQUAL = 355; +HiveSqlLexer.T_MUL = 356; +HiveSqlLexer.T_PRECENT = 357; +HiveSqlLexer.T_CALLS = 358; +HiveSqlLexer.T_OPEN_B = 359; +HiveSqlLexer.T_OPEN_P = 360; +HiveSqlLexer.T_OPEN_SB = 361; +HiveSqlLexer.T_CLOSE_B = 362; +HiveSqlLexer.T_CLOSE_P = 363; +HiveSqlLexer.T_CLOSE_SB = 364; +HiveSqlLexer.T_SEMICOLON = 365; +HiveSqlLexer.T_SUB = 366; +HiveSqlLexer.L_ID = 367; +HiveSqlLexer.L_S_STRING = 368; +HiveSqlLexer.L_D_STRING = 369; +HiveSqlLexer.L_INT = 370; +HiveSqlLexer.L_DEC = 371; +HiveSqlLexer.L_WS = 372; +HiveSqlLexer.L_M_COMMENT = 373; +HiveSqlLexer.L_S_COMMENT = 374; +HiveSqlLexer.L_FILE = 375; +HiveSqlLexer.L_LABEL = 376; HiveSqlLexer.prototype.channelNames = [ "DEFAULT_TOKEN_CHANNEL", "HIDDEN" ]; HiveSqlLexer.prototype.modeNames = [ "DEFAULT_MODE" ]; -HiveSqlLexer.prototype.literalNames = [ null, "'@'", "'#'", "'/'", "'%'", - "'.'", "'*'", "'!'", "';'", "'-'", - "'+'" ]; +HiveSqlLexer.prototype.literalNames = [ null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, "'+'", "':'", + "','", "'||'", "'/'", "'.'", "'..'", + "'='", "'=='", "'#'", "'!'", "'<>'", + "'!='", "'>'", "'>='", "'<'", "'<='", + "'*'", "'%'", "'@'", "'{'", "'('", + "'['", "'}'", "')'", "']'", "';'", + "'-'" ]; -HiveSqlLexer.prototype.symbolicNames = [ ]; +HiveSqlLexer.prototype.symbolicNames = [ null, "T_ACTION", "T_ADD2", "T_ALL", + "T_ALLOCATE", "T_ALTER", "T_AND", + "T_ANSI_NULLS", "T_ANSI_PADDING", + "T_AS", "T_ASC", "T_ASSOCIATE", + "T_AT", "T_AUTO_INCREMENT", "T_AVG", + "T_BATCHSIZE", "T_BEGIN", "T_BETWEEN", + "T_BIGINT", "T_BINARY_DOUBLE", + "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", + "T_BYTE", "T_CALL", "T_CALLER", + "T_CASCADE", "T_CASE", "T_CASESPECIFIC", + "T_CAST", "T_CHAR", "T_CHARACTER", + "T_CHARSET", "T_CLIENT", "T_CLOSE", + "T_CLUSTERED", "T_CMP", "T_COLLECT", + "T_COLLECTION", "T_COLUMN", "T_COMMENT", + "T_CONSTANT", "T_COMMIT", "T_COMPRESS", + "T_CONCAT", "T_CONDITION", "T_CONSTRAINT", + "T_CONTINUE", "T_COPY", "T_COUNT", + "T_COUNT_BIG", "T_CREATE", "T_CREATION", + "T_CREATOR", "T_CS", "T_CURRENT", + "T_CURRENT_SCHEMA", "T_CURSOR", + "T_DATABASE", "T_DATA", "T_DATE", + "T_DATETIME", "T_DAY", "T_DAYS", + "T_DEC", "T_DECIMAL", "T_DECLARE", + "T_DEFAULT", "T_DEFERRED", "T_DEFINED", + "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", + "T_DESCRIBE", "T_DIAGNOSTICS", + "T_DIR", "T_DIRECTORY", "T_DISTINCT", + "T_DISTRIBUTE", "T_DO", "T_DOUBLE", + "T_DROP", "T_DYNAMIC", "T_ELSE", + "T_ELSEIF", "T_ELSIF", "T_ENABLE", + "T_END", "T_ENGINE", "T_ESCAPED", + "T_EXCEPT", "T_EXEC", "T_EXECUTE", + "T_EXCEPTION", "T_EXCLUSIVE", "T_EXISTS", + "T_EXIT", "T_FALLBACK", "T_FALSE", + "T_FETCH", "T_FIELDS", "T_FILE", + "T_FILES", "T_FLOAT", "T_FOR", + "T_FOREIGN", "T_FORMAT", "T_FOUND", + "T_FROM", "T_FULL", "T_FUNCTION", + "T_GET", "T_GLOBAL", "T_GO", "T_GRANT", + "T_GROUP", "T_HANDLER", "T_HASH", + "T_HAVING", "T_HDFS", "T_HIVE", + "T_HOST", "T_IDENTITY", "T_IF", + "T_IGNORE", "T_IMMEDIATE", "T_IN", + "T_INCLUDE", "T_INDEX", "T_INITRANS", + "T_INNER", "T_INOUT", "T_INSERT", + "T_INT", "T_INT2", "T_INT4", "T_INT8", + "T_INTEGER", "T_INTERSECT", "T_INTERVAL", + "T_INTO", "T_INVOKER", "T_IS", + "T_ISOPEN", "T_ITEMS", "T_JOIN", + "T_KEEP", "T_KEY", "T_KEYS", "T_LANGUAGE", + "T_LEAVE", "T_LEFT", "T_LIKE", + "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", + "T_LOCKS", "T_LOG", "T_LOGGED", + "T_LOGGING", "T_LOOP", "T_MAP", + "T_MATCHED", "T_MAX", "T_MAXTRANS", + "T_MERGE", "T_MESSAGE_TEXT", "T_MICROSECOND", + "T_MICROSECONDS", "T_MIN", "T_MULTISET", + "T_NCHAR", "T_NEW", "T_NVARCHAR", + "T_NO", "T_NOCOUNT", "T_NOCOMPRESS", + "T_NOLOGGING", "T_NONE", "T_NOT", + "T_NOTFOUND", "T_NULL", "T_NUMERIC", + "T_NUMBER", "T_OBJECT", "T_OFF", + "T_ON", "T_ONLY", "T_OPEN", "T_OR", + "T_ORDER", "T_OUT", "T_OUTER", + "T_OVER", "T_OVERWRITE", "T_OWNER", + "T_PACKAGE", "T_PARTITION", "T_PCTFREE", + "T_PCTUSED", "T_PLS_INTEGER", "T_PRECISION", + "T_PRESERVE", "T_PRIMARY", "T_PRINT", + "T_PROC", "T_PROCEDURE", "T_QUALIFY", + "T_QUERY_BAND", "T_QUIT", "T_QUOTED_IDENTIFIER", + "T_RAISE", "T_REAL", "T_REFERENCES", + "T_REGEXP", "T_REPLACE", "T_RESIGNAL", + "T_RESTRICT", "T_RESULT", "T_RESULT_SET_LOCATOR", + "T_RETURN", "T_RETURNS", "T_REVERSE", + "T_RIGHT", "T_RLIKE", "T_ROLE", + "T_ROLLBACK", "T_ROW", "T_ROWS", + "T_ROWTYPE", "T_ROW_COUNT", "T_RR", + "T_RS", "T_PWD", "T_TRIM", "T_SCHEMA", + "T_SECOND", "T_SECONDS", "T_SECURITY", + "T_SEGMENT", "T_SEL", "T_SELECT", + "T_SET", "T_SESSION", "T_SESSIONS", + "T_SETS", "T_SHARE", "T_SIGNAL", + "T_SIMPLE_DOUBLE", "T_SIMPLE_FLOAT", + "T_SIMPLE_INTEGER", "T_SMALLDATETIME", + "T_SMALLINT", "T_SQL", "T_SQLEXCEPTION", + "T_SQLINSERT", "T_SQLSTATE", "T_SQLWARNING", + "T_STATS", "T_STATISTICS", "T_STEP", + "T_STORAGE", "T_STORED", "T_STRING", + "T_SUBDIR", "T_SUBSTRING", "T_SUM", + "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", + "T_TERMINATED", "T_TEXTIMAGE_ON", + "T_THEN", "T_TIMESTAMP", "T_TINYINT", + "T_TITLE", "T_TO", "T_TOP", "T_TRANSACTION", + "T_TRUE", "T_TRUNCATE", "T_TYPE", + "T_UNION", "T_UNIQUE", "T_UPDATE", + "T_UR", "T_USE", "T_USING", "T_VALUE", + "T_VALUES", "T_VAR", "T_VARCHAR", + "T_VARCHAR2", "T_VARYING", "T_VOLATILE", + "T_WHEN", "T_WHERE", "T_WHILE", + "T_WITH", "T_WITHOUT", "T_WORK", + "T_XACT_ABORT", "T_XML", "T_YES", + "T_ACTIVITY_COUNT", "T_CUME_DIST", + "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", + "T_FIRST_VALUE", "T_LAG", "T_LAST_VALUE", + "T_LEAD", "T_MAX_PART_STRING", + "T_MIN_PART_STRING", "T_MAX_PART_INT", + "T_MIN_PART_INT", "T_MAX_PART_DATE", + "T_MIN_PART_DATE", "T_PART_COUNT", + "T_PART_LOC", "T_RANK", "T_ROW_NUMBER", + "T_STDEV", "T_SYSDATE", "T_VARIANCE", + "T_USER", "T_ADD", "T_COLON", "T_COMMA", + "T_PIPE", "T_DIV", "T_DOT", "T_DOT2", + "T_EQUAL", "T_EQUAL2", "T_SHARP", + "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", + "T_LESS", "T_LESSEQUAL", "T_MUL", + "T_PRECENT", "T_CALLS", "T_OPEN_B", + "T_OPEN_P", "T_OPEN_SB", "T_CLOSE_B", + "T_CLOSE_P", "T_CLOSE_SB", "T_SEMICOLON", + "T_SUB", "L_ID", "L_S_STRING", + "L_D_STRING", "L_INT", "L_DEC", + "L_WS", "L_M_COMMENT", "L_S_COMMENT", + "L_FILE", "L_LABEL" ]; -HiveSqlLexer.prototype.ruleNames = [ "T__0", "T__1", "T__2", "T__3", "T__4", - "T__5", "T__6", "T__7", "T__8", "T__9" ]; +HiveSqlLexer.prototype.ruleNames = [ "T_ACTION", "T_ADD2", "T_ALL", "T_ALLOCATE", + "T_ALTER", "T_AND", "T_ANSI_NULLS", + "T_ANSI_PADDING", "T_AS", "T_ASC", + "T_ASSOCIATE", "T_AT", "T_AUTO_INCREMENT", + "T_AVG", "T_BATCHSIZE", "T_BEGIN", + "T_BETWEEN", "T_BIGINT", "T_BINARY_DOUBLE", + "T_BINARY_FLOAT", "T_BINARY_INTEGER", + "T_BIT", "T_BODY", "T_BREAK", "T_BY", + "T_BYTE", "T_CALL", "T_CALLER", "T_CASCADE", + "T_CASE", "T_CASESPECIFIC", "T_CAST", + "T_CHAR", "T_CHARACTER", "T_CHARSET", + "T_CLIENT", "T_CLOSE", "T_CLUSTERED", + "T_CMP", "T_COLLECT", "T_COLLECTION", + "T_COLUMN", "T_COMMENT", "T_CONSTANT", + "T_COMMIT", "T_COMPRESS", "T_CONCAT", + "T_CONDITION", "T_CONSTRAINT", "T_CONTINUE", + "T_COPY", "T_COUNT", "T_COUNT_BIG", + "T_CREATE", "T_CREATION", "T_CREATOR", + "T_CS", "T_CURRENT", "T_CURRENT_SCHEMA", + "T_CURSOR", "T_DATABASE", "T_DATA", + "T_DATE", "T_DATETIME", "T_DAY", "T_DAYS", + "T_DEC", "T_DECIMAL", "T_DECLARE", + "T_DEFAULT", "T_DEFERRED", "T_DEFINED", + "T_DEFINER", "T_DEFINITION", "T_DELETE", + "T_DELIMITED", "T_DELIMITER", "T_DESC", + "T_DESCRIBE", "T_DIAGNOSTICS", "T_DIR", + "T_DIRECTORY", "T_DISTINCT", "T_DISTRIBUTE", + "T_DO", "T_DOUBLE", "T_DROP", "T_DYNAMIC", + "T_ELSE", "T_ELSEIF", "T_ELSIF", "T_ENABLE", + "T_END", "T_ENGINE", "T_ESCAPED", "T_EXCEPT", + "T_EXEC", "T_EXECUTE", "T_EXCEPTION", + "T_EXCLUSIVE", "T_EXISTS", "T_EXIT", + "T_FALLBACK", "T_FALSE", "T_FETCH", + "T_FIELDS", "T_FILE", "T_FILES", "T_FLOAT", + "T_FOR", "T_FOREIGN", "T_FORMAT", "T_FOUND", + "T_FROM", "T_FULL", "T_FUNCTION", "T_GET", + "T_GLOBAL", "T_GO", "T_GRANT", "T_GROUP", + "T_HANDLER", "T_HASH", "T_HAVING", + "T_HDFS", "T_HIVE", "T_HOST", "T_IDENTITY", + "T_IF", "T_IGNORE", "T_IMMEDIATE", + "T_IN", "T_INCLUDE", "T_INDEX", "T_INITRANS", + "T_INNER", "T_INOUT", "T_INSERT", "T_INT", + "T_INT2", "T_INT4", "T_INT8", "T_INTEGER", + "T_INTERSECT", "T_INTERVAL", "T_INTO", + "T_INVOKER", "T_IS", "T_ISOPEN", "T_ITEMS", + "T_JOIN", "T_KEEP", "T_KEY", "T_KEYS", + "T_LANGUAGE", "T_LEAVE", "T_LEFT", + "T_LIKE", "T_LIMIT", "T_LINES", "T_LOCAL", + "T_LOCATION", "T_LOCATOR", "T_LOCATORS", + "T_LOCKS", "T_LOG", "T_LOGGED", "T_LOGGING", + "T_LOOP", "T_MAP", "T_MATCHED", "T_MAX", + "T_MAXTRANS", "T_MERGE", "T_MESSAGE_TEXT", + "T_MICROSECOND", "T_MICROSECONDS", + "T_MIN", "T_MULTISET", "T_NCHAR", "T_NEW", + "T_NVARCHAR", "T_NO", "T_NOCOUNT", + "T_NOCOMPRESS", "T_NOLOGGING", "T_NONE", + "T_NOT", "T_NOTFOUND", "T_NULL", "T_NUMERIC", + "T_NUMBER", "T_OBJECT", "T_OFF", "T_ON", + "T_ONLY", "T_OPEN", "T_OR", "T_ORDER", + "T_OUT", "T_OUTER", "T_OVER", "T_OVERWRITE", + "T_OWNER", "T_PACKAGE", "T_PARTITION", + "T_PCTFREE", "T_PCTUSED", "T_PLS_INTEGER", + "T_PRECISION", "T_PRESERVE", "T_PRIMARY", + "T_PRINT", "T_PROC", "T_PROCEDURE", + "T_QUALIFY", "T_QUERY_BAND", "T_QUIT", + "T_QUOTED_IDENTIFIER", "T_RAISE", "T_REAL", + "T_REFERENCES", "T_REGEXP", "T_REPLACE", + "T_RESIGNAL", "T_RESTRICT", "T_RESULT", + "T_RESULT_SET_LOCATOR", "T_RETURN", + "T_RETURNS", "T_REVERSE", "T_RIGHT", + "T_RLIKE", "T_ROLE", "T_ROLLBACK", + "T_ROW", "T_ROWS", "T_ROWTYPE", "T_ROW_COUNT", + "T_RR", "T_RS", "T_PWD", "T_TRIM", + "T_SCHEMA", "T_SECOND", "T_SECONDS", + "T_SECURITY", "T_SEGMENT", "T_SEL", + "T_SELECT", "T_SET", "T_SESSION", "T_SESSIONS", + "T_SETS", "T_SHARE", "T_SIGNAL", "T_SIMPLE_DOUBLE", + "T_SIMPLE_FLOAT", "T_SIMPLE_INTEGER", + "T_SMALLDATETIME", "T_SMALLINT", "T_SQL", + "T_SQLEXCEPTION", "T_SQLINSERT", "T_SQLSTATE", + "T_SQLWARNING", "T_STATS", "T_STATISTICS", + "T_STEP", "T_STORAGE", "T_STORED", + "T_STRING", "T_SUBDIR", "T_SUBSTRING", + "T_SUM", "T_SUMMARY", "T_SYS_REFCURSOR", + "T_TABLE", "T_TABLESPACE", "T_TEMPORARY", + "T_TERMINATED", "T_TEXTIMAGE_ON", "T_THEN", + "T_TIMESTAMP", "T_TINYINT", "T_TITLE", + "T_TO", "T_TOP", "T_TRANSACTION", "T_TRUE", + "T_TRUNCATE", "T_TYPE", "T_UNION", + "T_UNIQUE", "T_UPDATE", "T_UR", "T_USE", + "T_USING", "T_VALUE", "T_VALUES", "T_VAR", + "T_VARCHAR", "T_VARCHAR2", "T_VARYING", + "T_VOLATILE", "T_WHEN", "T_WHERE", + "T_WHILE", "T_WITH", "T_WITHOUT", "T_WORK", + "T_XACT_ABORT", "T_XML", "T_YES", "T_ACTIVITY_COUNT", + "T_CUME_DIST", "T_CURRENT_DATE", "T_CURRENT_TIMESTAMP", + "T_CURRENT_USER", "T_DENSE_RANK", "T_FIRST_VALUE", + "T_LAG", "T_LAST_VALUE", "T_LEAD", + "T_MAX_PART_STRING", "T_MIN_PART_STRING", + "T_MAX_PART_INT", "T_MIN_PART_INT", + "T_MAX_PART_DATE", "T_MIN_PART_DATE", + "T_PART_COUNT", "T_PART_LOC", "T_RANK", + "T_ROW_NUMBER", "T_STDEV", "T_SYSDATE", + "T_VARIANCE", "T_USER", "T_ADD", "T_COLON", + "T_COMMA", "T_PIPE", "T_DIV", "T_DOT", + "T_DOT2", "T_EQUAL", "T_EQUAL2", "T_SHARP", + "T_NOTE", "T_NOTEQUAL", "T_NOTEQUAL2", + "T_GREATER", "T_GREATEREQUAL", "T_LESS", + "T_LESSEQUAL", "T_MUL", "T_PRECENT", + "T_CALLS", "T_OPEN_B", "T_OPEN_P", + "T_OPEN_SB", "T_CLOSE_B", "T_CLOSE_P", + "T_CLOSE_SB", "T_SEMICOLON", "T_SUB", + "L_ID", "L_S_STRING", "L_D_STRING", + "L_INT", "L_DEC", "L_WS", "L_M_COMMENT", + "L_S_COMMENT", "L_FILE", "L_LABEL", + "L_ID_PART", "L_STR_ESC_D", "L_DIGIT", + "L_BLANK", "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" ]; -HiveSqlLexer.prototype.grammarFileName = "HiveSql.g4"; +HiveSqlLexer.prototype.grammarFileName = "HiveSqlLexer.g4"; exports.HiveSqlLexer = HiveSqlLexer; diff --git a/src/lib/hive/HiveSqlLexer.tokens b/src/lib/hive/HiveSqlLexer.tokens index 891ccf7..f6acc0b 100644 --- a/src/lib/hive/HiveSqlLexer.tokens +++ b/src/lib/hive/HiveSqlLexer.tokens @@ -1,20 +1,404 @@ -T__0=1 -T__1=2 -T__2=3 -T__3=4 -T__4=5 -T__5=6 -T__6=7 -T__7=8 -T__8=9 -T__9=10 -'@'=1 -'#'=2 -'/'=3 -'%'=4 -'.'=5 -'*'=6 -'!'=7 -';'=8 -'-'=9 -'+'=10 +T_ACTION=1 +T_ADD2=2 +T_ALL=3 +T_ALLOCATE=4 +T_ALTER=5 +T_AND=6 +T_ANSI_NULLS=7 +T_ANSI_PADDING=8 +T_AS=9 +T_ASC=10 +T_ASSOCIATE=11 +T_AT=12 +T_AUTO_INCREMENT=13 +T_AVG=14 +T_BATCHSIZE=15 +T_BEGIN=16 +T_BETWEEN=17 +T_BIGINT=18 +T_BINARY_DOUBLE=19 +T_BINARY_FLOAT=20 +T_BINARY_INTEGER=21 +T_BIT=22 +T_BODY=23 +T_BREAK=24 +T_BY=25 +T_BYTE=26 +T_CALL=27 +T_CALLER=28 +T_CASCADE=29 +T_CASE=30 +T_CASESPECIFIC=31 +T_CAST=32 +T_CHAR=33 +T_CHARACTER=34 +T_CHARSET=35 +T_CLIENT=36 +T_CLOSE=37 +T_CLUSTERED=38 +T_CMP=39 +T_COLLECT=40 +T_COLLECTION=41 +T_COLUMN=42 +T_COMMENT=43 +T_CONSTANT=44 +T_COMMIT=45 +T_COMPRESS=46 +T_CONCAT=47 +T_CONDITION=48 +T_CONSTRAINT=49 +T_CONTINUE=50 +T_COPY=51 +T_COUNT=52 +T_COUNT_BIG=53 +T_CREATE=54 +T_CREATION=55 +T_CREATOR=56 +T_CS=57 +T_CURRENT=58 +T_CURRENT_SCHEMA=59 +T_CURSOR=60 +T_DATABASE=61 +T_DATA=62 +T_DATE=63 +T_DATETIME=64 +T_DAY=65 +T_DAYS=66 +T_DEC=67 +T_DECIMAL=68 +T_DECLARE=69 +T_DEFAULT=70 +T_DEFERRED=71 +T_DEFINED=72 +T_DEFINER=73 +T_DEFINITION=74 +T_DELETE=75 +T_DELIMITED=76 +T_DELIMITER=77 +T_DESC=78 +T_DESCRIBE=79 +T_DIAGNOSTICS=80 +T_DIR=81 +T_DIRECTORY=82 +T_DISTINCT=83 +T_DISTRIBUTE=84 +T_DO=85 +T_DOUBLE=86 +T_DROP=87 +T_DYNAMIC=88 +T_ELSE=89 +T_ELSEIF=90 +T_ELSIF=91 +T_ENABLE=92 +T_END=93 +T_ENGINE=94 +T_ESCAPED=95 +T_EXCEPT=96 +T_EXEC=97 +T_EXECUTE=98 +T_EXCEPTION=99 +T_EXCLUSIVE=100 +T_EXISTS=101 +T_EXIT=102 +T_FALLBACK=103 +T_FALSE=104 +T_FETCH=105 +T_FIELDS=106 +T_FILE=107 +T_FILES=108 +T_FLOAT=109 +T_FOR=110 +T_FOREIGN=111 +T_FORMAT=112 +T_FOUND=113 +T_FROM=114 +T_FULL=115 +T_FUNCTION=116 +T_GET=117 +T_GLOBAL=118 +T_GO=119 +T_GRANT=120 +T_GROUP=121 +T_HANDLER=122 +T_HASH=123 +T_HAVING=124 +T_HDFS=125 +T_HIVE=126 +T_HOST=127 +T_IDENTITY=128 +T_IF=129 +T_IGNORE=130 +T_IMMEDIATE=131 +T_IN=132 +T_INCLUDE=133 +T_INDEX=134 +T_INITRANS=135 +T_INNER=136 +T_INOUT=137 +T_INSERT=138 +T_INT=139 +T_INT2=140 +T_INT4=141 +T_INT8=142 +T_INTEGER=143 +T_INTERSECT=144 +T_INTERVAL=145 +T_INTO=146 +T_INVOKER=147 +T_IS=148 +T_ISOPEN=149 +T_ITEMS=150 +T_JOIN=151 +T_KEEP=152 +T_KEY=153 +T_KEYS=154 +T_LANGUAGE=155 +T_LEAVE=156 +T_LEFT=157 +T_LIKE=158 +T_LIMIT=159 +T_LINES=160 +T_LOCAL=161 +T_LOCATION=162 +T_LOCATOR=163 +T_LOCATORS=164 +T_LOCKS=165 +T_LOG=166 +T_LOGGED=167 +T_LOGGING=168 +T_LOOP=169 +T_MAP=170 +T_MATCHED=171 +T_MAX=172 +T_MAXTRANS=173 +T_MERGE=174 +T_MESSAGE_TEXT=175 +T_MICROSECOND=176 +T_MICROSECONDS=177 +T_MIN=178 +T_MULTISET=179 +T_NCHAR=180 +T_NEW=181 +T_NVARCHAR=182 +T_NO=183 +T_NOCOUNT=184 +T_NOCOMPRESS=185 +T_NOLOGGING=186 +T_NONE=187 +T_NOT=188 +T_NOTFOUND=189 +T_NULL=190 +T_NUMERIC=191 +T_NUMBER=192 +T_OBJECT=193 +T_OFF=194 +T_ON=195 +T_ONLY=196 +T_OPEN=197 +T_OR=198 +T_ORDER=199 +T_OUT=200 +T_OUTER=201 +T_OVER=202 +T_OVERWRITE=203 +T_OWNER=204 +T_PACKAGE=205 +T_PARTITION=206 +T_PCTFREE=207 +T_PCTUSED=208 +T_PLS_INTEGER=209 +T_PRECISION=210 +T_PRESERVE=211 +T_PRIMARY=212 +T_PRINT=213 +T_PROC=214 +T_PROCEDURE=215 +T_QUALIFY=216 +T_QUERY_BAND=217 +T_QUIT=218 +T_QUOTED_IDENTIFIER=219 +T_RAISE=220 +T_REAL=221 +T_REFERENCES=222 +T_REGEXP=223 +T_REPLACE=224 +T_RESIGNAL=225 +T_RESTRICT=226 +T_RESULT=227 +T_RESULT_SET_LOCATOR=228 +T_RETURN=229 +T_RETURNS=230 +T_REVERSE=231 +T_RIGHT=232 +T_RLIKE=233 +T_ROLE=234 +T_ROLLBACK=235 +T_ROW=236 +T_ROWS=237 +T_ROWTYPE=238 +T_ROW_COUNT=239 +T_RR=240 +T_RS=241 +T_PWD=242 +T_TRIM=243 +T_SCHEMA=244 +T_SECOND=245 +T_SECONDS=246 +T_SECURITY=247 +T_SEGMENT=248 +T_SEL=249 +T_SELECT=250 +T_SET=251 +T_SESSION=252 +T_SESSIONS=253 +T_SETS=254 +T_SHARE=255 +T_SIGNAL=256 +T_SIMPLE_DOUBLE=257 +T_SIMPLE_FLOAT=258 +T_SIMPLE_INTEGER=259 +T_SMALLDATETIME=260 +T_SMALLINT=261 +T_SQL=262 +T_SQLEXCEPTION=263 +T_SQLINSERT=264 +T_SQLSTATE=265 +T_SQLWARNING=266 +T_STATS=267 +T_STATISTICS=268 +T_STEP=269 +T_STORAGE=270 +T_STORED=271 +T_STRING=272 +T_SUBDIR=273 +T_SUBSTRING=274 +T_SUM=275 +T_SUMMARY=276 +T_SYS_REFCURSOR=277 +T_TABLE=278 +T_TABLESPACE=279 +T_TEMPORARY=280 +T_TERMINATED=281 +T_TEXTIMAGE_ON=282 +T_THEN=283 +T_TIMESTAMP=284 +T_TINYINT=285 +T_TITLE=286 +T_TO=287 +T_TOP=288 +T_TRANSACTION=289 +T_TRUE=290 +T_TRUNCATE=291 +T_TYPE=292 +T_UNION=293 +T_UNIQUE=294 +T_UPDATE=295 +T_UR=296 +T_USE=297 +T_USING=298 +T_VALUE=299 +T_VALUES=300 +T_VAR=301 +T_VARCHAR=302 +T_VARCHAR2=303 +T_VARYING=304 +T_VOLATILE=305 +T_WHEN=306 +T_WHERE=307 +T_WHILE=308 +T_WITH=309 +T_WITHOUT=310 +T_WORK=311 +T_XACT_ABORT=312 +T_XML=313 +T_YES=314 +T_ACTIVITY_COUNT=315 +T_CUME_DIST=316 +T_CURRENT_DATE=317 +T_CURRENT_TIMESTAMP=318 +T_CURRENT_USER=319 +T_DENSE_RANK=320 +T_FIRST_VALUE=321 +T_LAG=322 +T_LAST_VALUE=323 +T_LEAD=324 +T_MAX_PART_STRING=325 +T_MIN_PART_STRING=326 +T_MAX_PART_INT=327 +T_MIN_PART_INT=328 +T_MAX_PART_DATE=329 +T_MIN_PART_DATE=330 +T_PART_COUNT=331 +T_PART_LOC=332 +T_RANK=333 +T_ROW_NUMBER=334 +T_STDEV=335 +T_SYSDATE=336 +T_VARIANCE=337 +T_USER=338 +T_ADD=339 +T_COLON=340 +T_COMMA=341 +T_PIPE=342 +T_DIV=343 +T_DOT=344 +T_DOT2=345 +T_EQUAL=346 +T_EQUAL2=347 +T_SHARP=348 +T_NOTE=349 +T_NOTEQUAL=350 +T_NOTEQUAL2=351 +T_GREATER=352 +T_GREATEREQUAL=353 +T_LESS=354 +T_LESSEQUAL=355 +T_MUL=356 +T_PRECENT=357 +T_CALLS=358 +T_OPEN_B=359 +T_OPEN_P=360 +T_OPEN_SB=361 +T_CLOSE_B=362 +T_CLOSE_P=363 +T_CLOSE_SB=364 +T_SEMICOLON=365 +T_SUB=366 +L_ID=367 +L_S_STRING=368 +L_D_STRING=369 +L_INT=370 +L_DEC=371 +L_WS=372 +L_M_COMMENT=373 +L_S_COMMENT=374 +L_FILE=375 +L_LABEL=376 +'+'=339 +':'=340 +','=341 +'||'=342 +'/'=343 +'.'=344 +'..'=345 +'='=346 +'=='=347 +'#'=348 +'!'=349 +'<>'=350 +'!='=351 +'>'=352 +'>='=353 +'<'=354 +'<='=355 +'*'=356 +'%'=357 +'@'=358 +'{'=359 +'('=360 +'['=361 +'}'=362 +')'=363 +']'=364 +';'=365 +'-'=366 diff --git a/src/lib/hive/HiveSqlListener.js b/src/lib/hive/HiveSqlListener.js index 7f0223a..1fb948a 100644 --- a/src/lib/hive/HiveSqlListener.js +++ b/src/lib/hive/HiveSqlListener.js @@ -1,8 +1,8 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); -// This class defines a complete listener for a parse tree produced by HiveSqlParser. +// This class defines a complete listener for a parse tree produced by HiveSql. function HiveSqlListener() { antlr4.tree.ParseTreeListener.call(this); return this; @@ -11,2045 +11,2045 @@ function HiveSqlListener() { HiveSqlListener.prototype = Object.create(antlr4.tree.ParseTreeListener.prototype); HiveSqlListener.prototype.constructor = HiveSqlListener; -// Enter a parse tree produced by HiveSqlParser#program. +// Enter a parse tree produced by HiveSql#program. HiveSqlListener.prototype.enterProgram = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#program. +// Exit a parse tree produced by HiveSql#program. HiveSqlListener.prototype.exitProgram = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#block. +// Enter a parse tree produced by HiveSql#block. HiveSqlListener.prototype.enterBlock = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#block. +// Exit a parse tree produced by HiveSql#block. HiveSqlListener.prototype.exitBlock = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#begin_end_block. +// Enter a parse tree produced by HiveSql#begin_end_block. HiveSqlListener.prototype.enterBegin_end_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#begin_end_block. +// Exit a parse tree produced by HiveSql#begin_end_block. HiveSqlListener.prototype.exitBegin_end_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#single_block_stmt. +// Enter a parse tree produced by HiveSql#single_block_stmt. HiveSqlListener.prototype.enterSingle_block_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#single_block_stmt. +// Exit a parse tree produced by HiveSql#single_block_stmt. HiveSqlListener.prototype.exitSingle_block_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#block_end. +// Enter a parse tree produced by HiveSql#block_end. HiveSqlListener.prototype.enterBlock_end = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#block_end. +// Exit a parse tree produced by HiveSql#block_end. HiveSqlListener.prototype.exitBlock_end = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#proc_block. +// Enter a parse tree produced by HiveSql#proc_block. HiveSqlListener.prototype.enterProc_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#proc_block. +// Exit a parse tree produced by HiveSql#proc_block. HiveSqlListener.prototype.exitProc_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#stmt. +// Enter a parse tree produced by HiveSql#stmt. HiveSqlListener.prototype.enterStmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#stmt. +// Exit a parse tree produced by HiveSql#stmt. HiveSqlListener.prototype.exitStmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#semicolon_stmt. +// Enter a parse tree produced by HiveSql#semicolon_stmt. HiveSqlListener.prototype.enterSemicolon_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#semicolon_stmt. +// Exit a parse tree produced by HiveSql#semicolon_stmt. HiveSqlListener.prototype.exitSemicolon_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exception_block. +// Enter a parse tree produced by HiveSql#exception_block. HiveSqlListener.prototype.enterException_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exception_block. +// Exit a parse tree produced by HiveSql#exception_block. HiveSqlListener.prototype.exitException_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exception_block_item. +// Enter a parse tree produced by HiveSql#exception_block_item. HiveSqlListener.prototype.enterException_block_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exception_block_item. +// Exit a parse tree produced by HiveSql#exception_block_item. HiveSqlListener.prototype.exitException_block_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#null_stmt. +// Enter a parse tree produced by HiveSql#null_stmt. HiveSqlListener.prototype.enterNull_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#null_stmt. +// Exit a parse tree produced by HiveSql#null_stmt. HiveSqlListener.prototype.exitNull_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_stmt. +// Enter a parse tree produced by HiveSql#expr_stmt. HiveSqlListener.prototype.enterExpr_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_stmt. +// Exit a parse tree produced by HiveSql#expr_stmt. HiveSqlListener.prototype.exitExpr_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt. +// Enter a parse tree produced by HiveSql#assignment_stmt. HiveSqlListener.prototype.enterAssignment_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt. +// Exit a parse tree produced by HiveSql#assignment_stmt. HiveSqlListener.prototype.exitAssignment_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlListener.prototype.enterAssignment_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlListener.prototype.exitAssignment_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlListener.prototype.enterAssignment_stmt_single_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlListener.prototype.exitAssignment_stmt_single_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlListener.prototype.enterAssignment_stmt_multiple_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlListener.prototype.exitAssignment_stmt_multiple_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Enter a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlListener.prototype.enterAssignment_stmt_select_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Exit a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlListener.prototype.exitAssignment_stmt_select_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Enter a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlListener.prototype.enterAllocate_cursor_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Exit a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlListener.prototype.exitAllocate_cursor_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Enter a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlListener.prototype.enterAssociate_locator_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Exit a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlListener.prototype.exitAssociate_locator_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Enter a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlListener.prototype.enterBegin_transaction_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Exit a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlListener.prototype.exitBegin_transaction_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#break_stmt. +// Enter a parse tree produced by HiveSql#break_stmt. HiveSqlListener.prototype.enterBreak_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#break_stmt. +// Exit a parse tree produced by HiveSql#break_stmt. HiveSqlListener.prototype.exitBreak_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#call_stmt. +// Enter a parse tree produced by HiveSql#call_stmt. HiveSqlListener.prototype.enterCall_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#call_stmt. +// Exit a parse tree produced by HiveSql#call_stmt. HiveSqlListener.prototype.exitCall_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_stmt. +// Enter a parse tree produced by HiveSql#declare_stmt. HiveSqlListener.prototype.enterDeclare_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_stmt. +// Exit a parse tree produced by HiveSql#declare_stmt. HiveSqlListener.prototype.exitDeclare_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_block. +// Enter a parse tree produced by HiveSql#declare_block. HiveSqlListener.prototype.enterDeclare_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_block. +// Exit a parse tree produced by HiveSql#declare_block. HiveSqlListener.prototype.exitDeclare_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_block_inplace. +// Enter a parse tree produced by HiveSql#declare_block_inplace. HiveSqlListener.prototype.enterDeclare_block_inplace = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_block_inplace. +// Exit a parse tree produced by HiveSql#declare_block_inplace. HiveSqlListener.prototype.exitDeclare_block_inplace = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_stmt_item. +// Enter a parse tree produced by HiveSql#declare_stmt_item. HiveSqlListener.prototype.enterDeclare_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_stmt_item. +// Exit a parse tree produced by HiveSql#declare_stmt_item. HiveSqlListener.prototype.exitDeclare_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_var_item. +// Enter a parse tree produced by HiveSql#declare_var_item. HiveSqlListener.prototype.enterDeclare_var_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_var_item. +// Exit a parse tree produced by HiveSql#declare_var_item. HiveSqlListener.prototype.exitDeclare_var_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_condition_item. +// Enter a parse tree produced by HiveSql#declare_condition_item. HiveSqlListener.prototype.enterDeclare_condition_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_condition_item. +// Exit a parse tree produced by HiveSql#declare_condition_item. HiveSqlListener.prototype.exitDeclare_condition_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_cursor_item. +// Enter a parse tree produced by HiveSql#declare_cursor_item. HiveSqlListener.prototype.enterDeclare_cursor_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_cursor_item. +// Exit a parse tree produced by HiveSql#declare_cursor_item. HiveSqlListener.prototype.exitDeclare_cursor_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cursor_with_return. +// Enter a parse tree produced by HiveSql#cursor_with_return. HiveSqlListener.prototype.enterCursor_with_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cursor_with_return. +// Exit a parse tree produced by HiveSql#cursor_with_return. HiveSqlListener.prototype.exitCursor_with_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cursor_without_return. +// Enter a parse tree produced by HiveSql#cursor_without_return. HiveSqlListener.prototype.enterCursor_without_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cursor_without_return. +// Exit a parse tree produced by HiveSql#cursor_without_return. HiveSqlListener.prototype.exitCursor_without_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_handler_item. +// Enter a parse tree produced by HiveSql#declare_handler_item. HiveSqlListener.prototype.enterDeclare_handler_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_handler_item. +// Exit a parse tree produced by HiveSql#declare_handler_item. HiveSqlListener.prototype.exitDeclare_handler_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Enter a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlListener.prototype.enterDeclare_temporary_table_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Exit a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlListener.prototype.exitDeclare_temporary_table_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_stmt. +// Enter a parse tree produced by HiveSql#create_table_stmt. HiveSqlListener.prototype.enterCreate_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_stmt. +// Exit a parse tree produced by HiveSql#create_table_stmt. HiveSqlListener.prototype.exitCreate_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Enter a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlListener.prototype.enterCreate_local_temp_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Exit a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlListener.prototype.exitCreate_local_temp_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_definition. +// Enter a parse tree produced by HiveSql#create_table_definition. HiveSqlListener.prototype.enterCreate_table_definition = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_definition. +// Exit a parse tree produced by HiveSql#create_table_definition. HiveSqlListener.prototype.exitCreate_table_definition = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_columns. +// Enter a parse tree produced by HiveSql#create_table_columns. HiveSqlListener.prototype.enterCreate_table_columns = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_columns. +// Exit a parse tree produced by HiveSql#create_table_columns. HiveSqlListener.prototype.exitCreate_table_columns = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_columns_item. +// Enter a parse tree produced by HiveSql#create_table_columns_item. HiveSqlListener.prototype.enterCreate_table_columns_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_columns_item. +// Exit a parse tree produced by HiveSql#create_table_columns_item. HiveSqlListener.prototype.exitCreate_table_columns_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#column_name. +// Enter a parse tree produced by HiveSql#column_name. HiveSqlListener.prototype.enterColumn_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#column_name. +// Exit a parse tree produced by HiveSql#column_name. HiveSqlListener.prototype.exitColumn_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Enter a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlListener.prototype.enterCreate_table_column_inline_cons = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Exit a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlListener.prototype.exitCreate_table_column_inline_cons = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_column_cons. +// Enter a parse tree produced by HiveSql#create_table_column_cons. HiveSqlListener.prototype.enterCreate_table_column_cons = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_column_cons. +// Exit a parse tree produced by HiveSql#create_table_column_cons. HiveSqlListener.prototype.exitCreate_table_column_cons = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_fk_action. +// Enter a parse tree produced by HiveSql#create_table_fk_action. HiveSqlListener.prototype.enterCreate_table_fk_action = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_fk_action. +// Exit a parse tree produced by HiveSql#create_table_fk_action. HiveSqlListener.prototype.exitCreate_table_fk_action = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions. +// Enter a parse tree produced by HiveSql#create_table_preoptions. HiveSqlListener.prototype.enterCreate_table_preoptions = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions. +// Exit a parse tree produced by HiveSql#create_table_preoptions. HiveSqlListener.prototype.exitCreate_table_preoptions = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Enter a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlListener.prototype.enterCreate_table_preoptions_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Exit a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlListener.prototype.exitCreate_table_preoptions_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Enter a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlListener.prototype.enterCreate_table_preoptions_td_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Exit a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlListener.prototype.exitCreate_table_preoptions_td_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options. +// Enter a parse tree produced by HiveSql#create_table_options. HiveSqlListener.prototype.enterCreate_table_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options. +// Exit a parse tree produced by HiveSql#create_table_options. HiveSqlListener.prototype.exitCreate_table_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_item. +// Enter a parse tree produced by HiveSql#create_table_options_item. HiveSqlListener.prototype.enterCreate_table_options_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_item. +// Exit a parse tree produced by HiveSql#create_table_options_item. HiveSqlListener.prototype.exitCreate_table_options_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Enter a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlListener.prototype.enterCreate_table_options_ora_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Exit a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlListener.prototype.exitCreate_table_options_ora_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Enter a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlListener.prototype.enterCreate_table_options_db2_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Exit a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlListener.prototype.exitCreate_table_options_db2_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Enter a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlListener.prototype.enterCreate_table_options_td_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Exit a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlListener.prototype.exitCreate_table_options_td_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Enter a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlListener.prototype.enterCreate_table_options_hive_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Exit a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlListener.prototype.exitCreate_table_options_hive_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Enter a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlListener.prototype.enterCreate_table_hive_row_format = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Exit a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlListener.prototype.exitCreate_table_hive_row_format = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Enter a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlListener.prototype.enterCreate_table_hive_row_format_fields = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Exit a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlListener.prototype.exitCreate_table_hive_row_format_fields = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Enter a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlListener.prototype.enterCreate_table_options_mssql_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Exit a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlListener.prototype.exitCreate_table_options_mssql_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Enter a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlListener.prototype.enterCreate_table_options_mysql_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Exit a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlListener.prototype.exitCreate_table_options_mysql_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_stmt. +// Enter a parse tree produced by HiveSql#alter_table_stmt. HiveSqlListener.prototype.enterAlter_table_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_stmt. +// Exit a parse tree produced by HiveSql#alter_table_stmt. HiveSqlListener.prototype.exitAlter_table_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_item. +// Enter a parse tree produced by HiveSql#alter_table_item. HiveSqlListener.prototype.enterAlter_table_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_item. +// Exit a parse tree produced by HiveSql#alter_table_item. HiveSqlListener.prototype.exitAlter_table_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Enter a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlListener.prototype.enterAlter_table_add_constraint = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Exit a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlListener.prototype.exitAlter_table_add_constraint = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Enter a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlListener.prototype.enterAlter_table_add_constraint_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Exit a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlListener.prototype.exitAlter_table_add_constraint_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype. +// Enter a parse tree produced by HiveSql#dtype. HiveSqlListener.prototype.enterDtype = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype. +// Exit a parse tree produced by HiveSql#dtype. HiveSqlListener.prototype.exitDtype = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_len. +// Enter a parse tree produced by HiveSql#dtype_len. HiveSqlListener.prototype.enterDtype_len = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_len. +// Exit a parse tree produced by HiveSql#dtype_len. HiveSqlListener.prototype.exitDtype_len = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_attr. +// Enter a parse tree produced by HiveSql#dtype_attr. HiveSqlListener.prototype.enterDtype_attr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_attr. +// Exit a parse tree produced by HiveSql#dtype_attr. HiveSqlListener.prototype.exitDtype_attr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dtype_default. +// Enter a parse tree produced by HiveSql#dtype_default. HiveSqlListener.prototype.enterDtype_default = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dtype_default. +// Exit a parse tree produced by HiveSql#dtype_default. HiveSqlListener.prototype.exitDtype_default = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_database_stmt. +// Enter a parse tree produced by HiveSql#create_database_stmt. HiveSqlListener.prototype.enterCreate_database_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_database_stmt. +// Exit a parse tree produced by HiveSql#create_database_stmt. HiveSqlListener.prototype.exitCreate_database_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_database_option. +// Enter a parse tree produced by HiveSql#create_database_option. HiveSqlListener.prototype.enterCreate_database_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_database_option. +// Exit a parse tree produced by HiveSql#create_database_option. HiveSqlListener.prototype.exitCreate_database_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_function_stmt. +// Enter a parse tree produced by HiveSql#create_function_stmt. HiveSqlListener.prototype.enterCreate_function_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_function_stmt. +// Exit a parse tree produced by HiveSql#create_function_stmt. HiveSqlListener.prototype.exitCreate_function_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_function_return. +// Enter a parse tree produced by HiveSql#create_function_return. HiveSqlListener.prototype.enterCreate_function_return = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_function_return. +// Exit a parse tree produced by HiveSql#create_function_return. HiveSqlListener.prototype.exitCreate_function_return = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_package_stmt. +// Enter a parse tree produced by HiveSql#create_package_stmt. HiveSqlListener.prototype.enterCreate_package_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_package_stmt. +// Exit a parse tree produced by HiveSql#create_package_stmt. HiveSqlListener.prototype.exitCreate_package_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_spec. +// Enter a parse tree produced by HiveSql#package_spec. HiveSqlListener.prototype.enterPackage_spec = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_spec. +// Exit a parse tree produced by HiveSql#package_spec. HiveSqlListener.prototype.exitPackage_spec = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_spec_item. +// Enter a parse tree produced by HiveSql#package_spec_item. HiveSqlListener.prototype.enterPackage_spec_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_spec_item. +// Exit a parse tree produced by HiveSql#package_spec_item. HiveSqlListener.prototype.exitPackage_spec_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Enter a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlListener.prototype.enterCreate_package_body_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Exit a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlListener.prototype.exitCreate_package_body_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_body. +// Enter a parse tree produced by HiveSql#package_body. HiveSqlListener.prototype.enterPackage_body = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_body. +// Exit a parse tree produced by HiveSql#package_body. HiveSqlListener.prototype.exitPackage_body = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#package_body_item. +// Enter a parse tree produced by HiveSql#package_body_item. HiveSqlListener.prototype.enterPackage_body_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#package_body_item. +// Exit a parse tree produced by HiveSql#package_body_item. HiveSqlListener.prototype.exitPackage_body_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Enter a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlListener.prototype.enterCreate_procedure_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Exit a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlListener.prototype.exitCreate_procedure_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_params. +// Enter a parse tree produced by HiveSql#create_routine_params. HiveSqlListener.prototype.enterCreate_routine_params = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_params. +// Exit a parse tree produced by HiveSql#create_routine_params. HiveSqlListener.prototype.exitCreate_routine_params = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_param_item. +// Enter a parse tree produced by HiveSql#create_routine_param_item. HiveSqlListener.prototype.enterCreate_routine_param_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_param_item. +// Exit a parse tree produced by HiveSql#create_routine_param_item. HiveSqlListener.prototype.exitCreate_routine_param_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_options. +// Enter a parse tree produced by HiveSql#create_routine_options. HiveSqlListener.prototype.enterCreate_routine_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_options. +// Exit a parse tree produced by HiveSql#create_routine_options. HiveSqlListener.prototype.exitCreate_routine_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_routine_option. +// Enter a parse tree produced by HiveSql#create_routine_option. HiveSqlListener.prototype.enterCreate_routine_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_routine_option. +// Exit a parse tree produced by HiveSql#create_routine_option. HiveSqlListener.prototype.exitCreate_routine_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#drop_stmt. +// Enter a parse tree produced by HiveSql#drop_stmt. HiveSqlListener.prototype.enterDrop_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#drop_stmt. +// Exit a parse tree produced by HiveSql#drop_stmt. HiveSqlListener.prototype.exitDrop_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Enter a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlListener.prototype.enterEnd_transaction_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Exit a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlListener.prototype.exitEnd_transaction_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exec_stmt. +// Enter a parse tree produced by HiveSql#exec_stmt. HiveSqlListener.prototype.enterExec_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exec_stmt. +// Exit a parse tree produced by HiveSql#exec_stmt. HiveSqlListener.prototype.exitExec_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_stmt. +// Enter a parse tree produced by HiveSql#if_stmt. HiveSqlListener.prototype.enterIf_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_stmt. +// Exit a parse tree produced by HiveSql#if_stmt. HiveSqlListener.prototype.exitIf_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Enter a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlListener.prototype.enterIf_plsql_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Exit a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlListener.prototype.exitIf_plsql_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Enter a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlListener.prototype.enterIf_tsql_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Exit a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlListener.prototype.exitIf_tsql_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Enter a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlListener.prototype.enterIf_bteq_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Exit a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlListener.prototype.exitIf_bteq_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#elseif_block. +// Enter a parse tree produced by HiveSql#elseif_block. HiveSqlListener.prototype.enterElseif_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#elseif_block. +// Exit a parse tree produced by HiveSql#elseif_block. HiveSqlListener.prototype.exitElseif_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#else_block. +// Enter a parse tree produced by HiveSql#else_block. HiveSqlListener.prototype.enterElse_block = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#else_block. +// Exit a parse tree produced by HiveSql#else_block. HiveSqlListener.prototype.exitElse_block = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#include_stmt. +// Enter a parse tree produced by HiveSql#include_stmt. HiveSqlListener.prototype.enterInclude_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#include_stmt. +// Exit a parse tree produced by HiveSql#include_stmt. HiveSqlListener.prototype.exitInclude_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt. +// Enter a parse tree produced by HiveSql#insert_stmt. HiveSqlListener.prototype.enterInsert_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt. +// Exit a parse tree produced by HiveSql#insert_stmt. HiveSqlListener.prototype.exitInsert_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Enter a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlListener.prototype.enterInsert_stmt_cols = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Exit a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlListener.prototype.exitInsert_stmt_cols = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Enter a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlListener.prototype.enterInsert_stmt_rows = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Exit a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlListener.prototype.exitInsert_stmt_rows = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_stmt_row. +// Enter a parse tree produced by HiveSql#insert_stmt_row. HiveSqlListener.prototype.enterInsert_stmt_row = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_stmt_row. +// Exit a parse tree produced by HiveSql#insert_stmt_row. HiveSqlListener.prototype.exitInsert_stmt_row = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Enter a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlListener.prototype.enterInsert_directory_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Exit a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlListener.prototype.exitInsert_directory_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#exit_stmt. +// Enter a parse tree produced by HiveSql#exit_stmt. HiveSqlListener.prototype.enterExit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#exit_stmt. +// Exit a parse tree produced by HiveSql#exit_stmt. HiveSqlListener.prototype.exitExit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt. +// Enter a parse tree produced by HiveSql#get_diag_stmt. HiveSqlListener.prototype.enterGet_diag_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt. +// Exit a parse tree produced by HiveSql#get_diag_stmt. HiveSqlListener.prototype.exitGet_diag_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlListener.prototype.enterGet_diag_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlListener.prototype.exitGet_diag_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlListener.prototype.enterGet_diag_stmt_exception_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlListener.prototype.exitGet_diag_stmt_exception_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Enter a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlListener.prototype.enterGet_diag_stmt_rowcount_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Exit a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlListener.prototype.exitGet_diag_stmt_rowcount_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#grant_stmt. +// Enter a parse tree produced by HiveSql#grant_stmt. HiveSqlListener.prototype.enterGrant_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#grant_stmt. +// Exit a parse tree produced by HiveSql#grant_stmt. HiveSqlListener.prototype.exitGrant_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#grant_stmt_item. +// Enter a parse tree produced by HiveSql#grant_stmt_item. HiveSqlListener.prototype.enterGrant_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#grant_stmt_item. +// Exit a parse tree produced by HiveSql#grant_stmt_item. HiveSqlListener.prototype.exitGrant_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#leave_stmt. +// Enter a parse tree produced by HiveSql#leave_stmt. HiveSqlListener.prototype.enterLeave_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#leave_stmt. +// Exit a parse tree produced by HiveSql#leave_stmt. HiveSqlListener.prototype.exitLeave_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#map_object_stmt. +// Enter a parse tree produced by HiveSql#map_object_stmt. HiveSqlListener.prototype.enterMap_object_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#map_object_stmt. +// Exit a parse tree produced by HiveSql#map_object_stmt. HiveSqlListener.prototype.exitMap_object_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#open_stmt. +// Enter a parse tree produced by HiveSql#open_stmt. HiveSqlListener.prototype.enterOpen_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#open_stmt. +// Exit a parse tree produced by HiveSql#open_stmt. HiveSqlListener.prototype.exitOpen_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fetch_stmt. +// Enter a parse tree produced by HiveSql#fetch_stmt. HiveSqlListener.prototype.enterFetch_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fetch_stmt. +// Exit a parse tree produced by HiveSql#fetch_stmt. HiveSqlListener.prototype.exitFetch_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Enter a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlListener.prototype.enterCollect_stats_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Exit a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlListener.prototype.exitCollect_stats_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#collect_stats_clause. +// Enter a parse tree produced by HiveSql#collect_stats_clause. HiveSqlListener.prototype.enterCollect_stats_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#collect_stats_clause. +// Exit a parse tree produced by HiveSql#collect_stats_clause. HiveSqlListener.prototype.exitCollect_stats_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#close_stmt. +// Enter a parse tree produced by HiveSql#close_stmt. HiveSqlListener.prototype.enterClose_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#close_stmt. +// Exit a parse tree produced by HiveSql#close_stmt. HiveSqlListener.prototype.exitClose_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cmp_stmt. +// Enter a parse tree produced by HiveSql#cmp_stmt. HiveSqlListener.prototype.enterCmp_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cmp_stmt. +// Exit a parse tree produced by HiveSql#cmp_stmt. HiveSqlListener.prototype.exitCmp_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cmp_source. +// Enter a parse tree produced by HiveSql#cmp_source. HiveSqlListener.prototype.enterCmp_source = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cmp_source. +// Exit a parse tree produced by HiveSql#cmp_source. HiveSqlListener.prototype.exitCmp_source = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Enter a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlListener.prototype.enterCopy_from_local_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Exit a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlListener.prototype.exitCopy_from_local_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_stmt. +// Enter a parse tree produced by HiveSql#copy_stmt. HiveSqlListener.prototype.enterCopy_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_stmt. +// Exit a parse tree produced by HiveSql#copy_stmt. HiveSqlListener.prototype.exitCopy_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_source. +// Enter a parse tree produced by HiveSql#copy_source. HiveSqlListener.prototype.enterCopy_source = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_source. +// Exit a parse tree produced by HiveSql#copy_source. HiveSqlListener.prototype.exitCopy_source = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_target. +// Enter a parse tree produced by HiveSql#copy_target. HiveSqlListener.prototype.enterCopy_target = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_target. +// Exit a parse tree produced by HiveSql#copy_target. HiveSqlListener.prototype.exitCopy_target = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_option. +// Enter a parse tree produced by HiveSql#copy_option. HiveSqlListener.prototype.enterCopy_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_option. +// Exit a parse tree produced by HiveSql#copy_option. HiveSqlListener.prototype.exitCopy_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#copy_file_option. +// Enter a parse tree produced by HiveSql#copy_file_option. HiveSqlListener.prototype.enterCopy_file_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#copy_file_option. +// Exit a parse tree produced by HiveSql#copy_file_option. HiveSqlListener.prototype.exitCopy_file_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#commit_stmt. +// Enter a parse tree produced by HiveSql#commit_stmt. HiveSqlListener.prototype.enterCommit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#commit_stmt. +// Exit a parse tree produced by HiveSql#commit_stmt. HiveSqlListener.prototype.exitCommit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_index_stmt. +// Enter a parse tree produced by HiveSql#create_index_stmt. HiveSqlListener.prototype.enterCreate_index_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_index_stmt. +// Exit a parse tree produced by HiveSql#create_index_stmt. HiveSqlListener.prototype.exitCreate_index_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#create_index_col. +// Enter a parse tree produced by HiveSql#create_index_col. HiveSqlListener.prototype.enterCreate_index_col = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#create_index_col. +// Exit a parse tree produced by HiveSql#create_index_col. HiveSqlListener.prototype.exitCreate_index_col = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#index_storage_clause. +// Enter a parse tree produced by HiveSql#index_storage_clause. HiveSqlListener.prototype.enterIndex_storage_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#index_storage_clause. +// Exit a parse tree produced by HiveSql#index_storage_clause. HiveSqlListener.prototype.exitIndex_storage_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Enter a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlListener.prototype.enterIndex_mssql_storage_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Exit a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlListener.prototype.exitIndex_mssql_storage_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#print_stmt. +// Enter a parse tree produced by HiveSql#print_stmt. HiveSqlListener.prototype.enterPrint_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#print_stmt. +// Exit a parse tree produced by HiveSql#print_stmt. HiveSqlListener.prototype.exitPrint_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#quit_stmt. +// Enter a parse tree produced by HiveSql#quit_stmt. HiveSqlListener.prototype.enterQuit_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#quit_stmt. +// Exit a parse tree produced by HiveSql#quit_stmt. HiveSqlListener.prototype.exitQuit_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#raise_stmt. +// Enter a parse tree produced by HiveSql#raise_stmt. HiveSqlListener.prototype.enterRaise_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#raise_stmt. +// Exit a parse tree produced by HiveSql#raise_stmt. HiveSqlListener.prototype.exitRaise_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#resignal_stmt. +// Enter a parse tree produced by HiveSql#resignal_stmt. HiveSqlListener.prototype.enterResignal_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#resignal_stmt. +// Exit a parse tree produced by HiveSql#resignal_stmt. HiveSqlListener.prototype.exitResignal_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#return_stmt. +// Enter a parse tree produced by HiveSql#return_stmt. HiveSqlListener.prototype.enterReturn_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#return_stmt. +// Exit a parse tree produced by HiveSql#return_stmt. HiveSqlListener.prototype.exitReturn_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#rollback_stmt. +// Enter a parse tree produced by HiveSql#rollback_stmt. HiveSqlListener.prototype.enterRollback_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#rollback_stmt. +// Exit a parse tree produced by HiveSql#rollback_stmt. HiveSqlListener.prototype.exitRollback_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_session_option. +// Enter a parse tree produced by HiveSql#set_session_option. HiveSqlListener.prototype.enterSet_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_session_option. +// Exit a parse tree produced by HiveSql#set_session_option. HiveSqlListener.prototype.exitSet_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_current_schema_option. +// Enter a parse tree produced by HiveSql#set_current_schema_option. HiveSqlListener.prototype.enterSet_current_schema_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_current_schema_option. +// Exit a parse tree produced by HiveSql#set_current_schema_option. HiveSqlListener.prototype.exitSet_current_schema_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Enter a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlListener.prototype.enterSet_mssql_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Exit a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlListener.prototype.exitSet_mssql_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Enter a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlListener.prototype.enterSet_teradata_session_option = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Exit a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlListener.prototype.exitSet_teradata_session_option = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#signal_stmt. +// Enter a parse tree produced by HiveSql#signal_stmt. HiveSqlListener.prototype.enterSignal_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#signal_stmt. +// Exit a parse tree produced by HiveSql#signal_stmt. HiveSqlListener.prototype.exitSignal_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#summary_stmt. +// Enter a parse tree produced by HiveSql#summary_stmt. HiveSqlListener.prototype.enterSummary_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#summary_stmt. +// Exit a parse tree produced by HiveSql#summary_stmt. HiveSqlListener.prototype.exitSummary_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#truncate_stmt. +// Enter a parse tree produced by HiveSql#truncate_stmt. HiveSqlListener.prototype.enterTruncate_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#truncate_stmt. +// Exit a parse tree produced by HiveSql#truncate_stmt. HiveSqlListener.prototype.exitTruncate_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#use_stmt. +// Enter a parse tree produced by HiveSql#use_stmt. HiveSqlListener.prototype.enterUse_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#use_stmt. +// Exit a parse tree produced by HiveSql#use_stmt. HiveSqlListener.prototype.exitUse_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#values_into_stmt. +// Enter a parse tree produced by HiveSql#values_into_stmt. HiveSqlListener.prototype.enterValues_into_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#values_into_stmt. +// Exit a parse tree produced by HiveSql#values_into_stmt. HiveSqlListener.prototype.exitValues_into_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#while_stmt. +// Enter a parse tree produced by HiveSql#while_stmt. HiveSqlListener.prototype.enterWhile_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#while_stmt. +// Exit a parse tree produced by HiveSql#while_stmt. HiveSqlListener.prototype.exitWhile_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Enter a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlListener.prototype.enterFor_cursor_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Exit a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlListener.prototype.exitFor_cursor_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#for_range_stmt. +// Enter a parse tree produced by HiveSql#for_range_stmt. HiveSqlListener.prototype.enterFor_range_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#for_range_stmt. +// Exit a parse tree produced by HiveSql#for_range_stmt. HiveSqlListener.prototype.exitFor_range_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#label. +// Enter a parse tree produced by HiveSql#label. HiveSqlListener.prototype.enterLabel = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#label. +// Exit a parse tree produced by HiveSql#label. HiveSqlListener.prototype.exitLabel = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#using_clause. +// Enter a parse tree produced by HiveSql#using_clause. HiveSqlListener.prototype.enterUsing_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#using_clause. +// Exit a parse tree produced by HiveSql#using_clause. HiveSqlListener.prototype.exitUsing_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_stmt. +// Enter a parse tree produced by HiveSql#select_stmt. HiveSqlListener.prototype.enterSelect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_stmt. +// Exit a parse tree produced by HiveSql#select_stmt. HiveSqlListener.prototype.exitSelect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_stmt. +// Enter a parse tree produced by HiveSql#cte_select_stmt. HiveSqlListener.prototype.enterCte_select_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_stmt. +// Exit a parse tree produced by HiveSql#cte_select_stmt. HiveSqlListener.prototype.exitCte_select_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Enter a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlListener.prototype.enterCte_select_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Exit a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlListener.prototype.exitCte_select_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#cte_select_cols. +// Enter a parse tree produced by HiveSql#cte_select_cols. HiveSqlListener.prototype.enterCte_select_cols = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#cte_select_cols. +// Exit a parse tree produced by HiveSql#cte_select_cols. HiveSqlListener.prototype.exitCte_select_cols = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_stmt. +// Enter a parse tree produced by HiveSql#fullselect_stmt. HiveSqlListener.prototype.enterFullselect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_stmt. +// Exit a parse tree produced by HiveSql#fullselect_stmt. HiveSqlListener.prototype.exitFullselect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Enter a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlListener.prototype.enterFullselect_stmt_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Exit a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlListener.prototype.exitFullselect_stmt_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Enter a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlListener.prototype.enterFullselect_set_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Exit a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlListener.prototype.exitFullselect_set_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#subselect_stmt. +// Enter a parse tree produced by HiveSql#subselect_stmt. HiveSqlListener.prototype.enterSubselect_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#subselect_stmt. +// Exit a parse tree produced by HiveSql#subselect_stmt. HiveSqlListener.prototype.exitSubselect_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list. +// Enter a parse tree produced by HiveSql#select_list. HiveSqlListener.prototype.enterSelect_list = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list. +// Exit a parse tree produced by HiveSql#select_list. HiveSqlListener.prototype.exitSelect_list = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_set. +// Enter a parse tree produced by HiveSql#select_list_set. HiveSqlListener.prototype.enterSelect_list_set = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_set. +// Exit a parse tree produced by HiveSql#select_list_set. HiveSqlListener.prototype.exitSelect_list_set = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_limit. +// Enter a parse tree produced by HiveSql#select_list_limit. HiveSqlListener.prototype.enterSelect_list_limit = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_limit. +// Exit a parse tree produced by HiveSql#select_list_limit. HiveSqlListener.prototype.exitSelect_list_limit = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_item. +// Enter a parse tree produced by HiveSql#select_list_item. HiveSqlListener.prototype.enterSelect_list_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_item. +// Exit a parse tree produced by HiveSql#select_list_item. HiveSqlListener.prototype.exitSelect_list_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_alias. +// Enter a parse tree produced by HiveSql#select_list_alias. HiveSqlListener.prototype.enterSelect_list_alias = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_alias. +// Exit a parse tree produced by HiveSql#select_list_alias. HiveSqlListener.prototype.exitSelect_list_alias = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_list_asterisk. +// Enter a parse tree produced by HiveSql#select_list_asterisk. HiveSqlListener.prototype.enterSelect_list_asterisk = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_list_asterisk. +// Exit a parse tree produced by HiveSql#select_list_asterisk. HiveSqlListener.prototype.exitSelect_list_asterisk = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#into_clause. +// Enter a parse tree produced by HiveSql#into_clause. HiveSqlListener.prototype.enterInto_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#into_clause. +// Exit a parse tree produced by HiveSql#into_clause. HiveSqlListener.prototype.exitInto_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_clause. +// Enter a parse tree produced by HiveSql#from_clause. HiveSqlListener.prototype.enterFrom_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_clause. +// Exit a parse tree produced by HiveSql#from_clause. HiveSqlListener.prototype.exitFrom_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_clause. +// Enter a parse tree produced by HiveSql#from_table_clause. HiveSqlListener.prototype.enterFrom_table_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_clause. +// Exit a parse tree produced by HiveSql#from_table_clause. HiveSqlListener.prototype.exitFrom_table_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_name_clause. +// Enter a parse tree produced by HiveSql#from_table_name_clause. HiveSqlListener.prototype.enterFrom_table_name_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_name_clause. +// Exit a parse tree produced by HiveSql#from_table_name_clause. HiveSqlListener.prototype.exitFrom_table_name_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_subselect_clause. +// Enter a parse tree produced by HiveSql#from_subselect_clause. HiveSqlListener.prototype.enterFrom_subselect_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_subselect_clause. +// Exit a parse tree produced by HiveSql#from_subselect_clause. HiveSqlListener.prototype.exitFrom_subselect_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_join_clause. +// Enter a parse tree produced by HiveSql#from_join_clause. HiveSqlListener.prototype.enterFrom_join_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_join_clause. +// Exit a parse tree produced by HiveSql#from_join_clause. HiveSqlListener.prototype.exitFrom_join_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_join_type_clause. +// Enter a parse tree produced by HiveSql#from_join_type_clause. HiveSqlListener.prototype.enterFrom_join_type_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_join_type_clause. +// Exit a parse tree produced by HiveSql#from_join_type_clause. HiveSqlListener.prototype.exitFrom_join_type_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_values_clause. +// Enter a parse tree produced by HiveSql#from_table_values_clause. HiveSqlListener.prototype.enterFrom_table_values_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_values_clause. +// Exit a parse tree produced by HiveSql#from_table_values_clause. HiveSqlListener.prototype.exitFrom_table_values_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_table_values_row. +// Enter a parse tree produced by HiveSql#from_table_values_row. HiveSqlListener.prototype.enterFrom_table_values_row = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_table_values_row. +// Exit a parse tree produced by HiveSql#from_table_values_row. HiveSqlListener.prototype.exitFrom_table_values_row = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#from_alias_clause. +// Enter a parse tree produced by HiveSql#from_alias_clause. HiveSqlListener.prototype.enterFrom_alias_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#from_alias_clause. +// Exit a parse tree produced by HiveSql#from_alias_clause. HiveSqlListener.prototype.exitFrom_alias_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#table_name. +// Enter a parse tree produced by HiveSql#table_name. HiveSqlListener.prototype.enterTable_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#table_name. +// Exit a parse tree produced by HiveSql#table_name. HiveSqlListener.prototype.exitTable_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#where_clause. +// Enter a parse tree produced by HiveSql#where_clause. HiveSqlListener.prototype.enterWhere_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#where_clause. +// Exit a parse tree produced by HiveSql#where_clause. HiveSqlListener.prototype.exitWhere_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#group_by_clause. +// Enter a parse tree produced by HiveSql#group_by_clause. HiveSqlListener.prototype.enterGroup_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#group_by_clause. +// Exit a parse tree produced by HiveSql#group_by_clause. HiveSqlListener.prototype.exitGroup_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#having_clause. +// Enter a parse tree produced by HiveSql#having_clause. HiveSqlListener.prototype.enterHaving_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#having_clause. +// Exit a parse tree produced by HiveSql#having_clause. HiveSqlListener.prototype.exitHaving_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#qualify_clause. +// Enter a parse tree produced by HiveSql#qualify_clause. HiveSqlListener.prototype.enterQualify_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#qualify_clause. +// Exit a parse tree produced by HiveSql#qualify_clause. HiveSqlListener.prototype.exitQualify_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#order_by_clause. +// Enter a parse tree produced by HiveSql#order_by_clause. HiveSqlListener.prototype.enterOrder_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#order_by_clause. +// Exit a parse tree produced by HiveSql#order_by_clause. HiveSqlListener.prototype.exitOrder_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_options. +// Enter a parse tree produced by HiveSql#select_options. HiveSqlListener.prototype.enterSelect_options = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_options. +// Exit a parse tree produced by HiveSql#select_options. HiveSqlListener.prototype.exitSelect_options = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#select_options_item. +// Enter a parse tree produced by HiveSql#select_options_item. HiveSqlListener.prototype.enterSelect_options_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#select_options_item. +// Exit a parse tree produced by HiveSql#select_options_item. HiveSqlListener.prototype.exitSelect_options_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_stmt. +// Enter a parse tree produced by HiveSql#update_stmt. HiveSqlListener.prototype.enterUpdate_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_stmt. +// Exit a parse tree produced by HiveSql#update_stmt. HiveSqlListener.prototype.exitUpdate_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_assignment. +// Enter a parse tree produced by HiveSql#update_assignment. HiveSqlListener.prototype.enterUpdate_assignment = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_assignment. +// Exit a parse tree produced by HiveSql#update_assignment. HiveSqlListener.prototype.exitUpdate_assignment = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_table. +// Enter a parse tree produced by HiveSql#update_table. HiveSqlListener.prototype.enterUpdate_table = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_table. +// Exit a parse tree produced by HiveSql#update_table. HiveSqlListener.prototype.exitUpdate_table = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#update_upsert. +// Enter a parse tree produced by HiveSql#update_upsert. HiveSqlListener.prototype.enterUpdate_upsert = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#update_upsert. +// Exit a parse tree produced by HiveSql#update_upsert. HiveSqlListener.prototype.exitUpdate_upsert = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_stmt. +// Enter a parse tree produced by HiveSql#merge_stmt. HiveSqlListener.prototype.enterMerge_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_stmt. +// Exit a parse tree produced by HiveSql#merge_stmt. HiveSqlListener.prototype.exitMerge_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_table. +// Enter a parse tree produced by HiveSql#merge_table. HiveSqlListener.prototype.enterMerge_table = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_table. +// Exit a parse tree produced by HiveSql#merge_table. HiveSqlListener.prototype.exitMerge_table = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_condition. +// Enter a parse tree produced by HiveSql#merge_condition. HiveSqlListener.prototype.enterMerge_condition = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_condition. +// Exit a parse tree produced by HiveSql#merge_condition. HiveSqlListener.prototype.exitMerge_condition = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#merge_action. +// Enter a parse tree produced by HiveSql#merge_action. HiveSqlListener.prototype.enterMerge_action = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#merge_action. +// Exit a parse tree produced by HiveSql#merge_action. HiveSqlListener.prototype.exitMerge_action = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#delete_stmt. +// Enter a parse tree produced by HiveSql#delete_stmt. HiveSqlListener.prototype.enterDelete_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#delete_stmt. +// Exit a parse tree produced by HiveSql#delete_stmt. HiveSqlListener.prototype.exitDelete_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#delete_alias. +// Enter a parse tree produced by HiveSql#delete_alias. HiveSqlListener.prototype.enterDelete_alias = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#delete_alias. +// Exit a parse tree produced by HiveSql#delete_alias. HiveSqlListener.prototype.exitDelete_alias = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#describe_stmt. +// Enter a parse tree produced by HiveSql#describe_stmt. HiveSqlListener.prototype.enterDescribe_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#describe_stmt. +// Exit a parse tree produced by HiveSql#describe_stmt. HiveSqlListener.prototype.exitDescribe_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr. +// Enter a parse tree produced by HiveSql#bool_expr. HiveSqlListener.prototype.enterBool_expr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr. +// Exit a parse tree produced by HiveSql#bool_expr. HiveSqlListener.prototype.exitBool_expr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_atom. +// Enter a parse tree produced by HiveSql#bool_expr_atom. HiveSqlListener.prototype.enterBool_expr_atom = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_atom. +// Exit a parse tree produced by HiveSql#bool_expr_atom. HiveSqlListener.prototype.exitBool_expr_atom = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_unary. +// Enter a parse tree produced by HiveSql#bool_expr_unary. HiveSqlListener.prototype.enterBool_expr_unary = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_unary. +// Exit a parse tree produced by HiveSql#bool_expr_unary. HiveSqlListener.prototype.exitBool_expr_unary = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Enter a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlListener.prototype.enterBool_expr_single_in = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Exit a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlListener.prototype.exitBool_expr_single_in = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Enter a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlListener.prototype.enterBool_expr_multi_in = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Exit a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlListener.prototype.exitBool_expr_multi_in = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_binary. +// Enter a parse tree produced by HiveSql#bool_expr_binary. HiveSqlListener.prototype.enterBool_expr_binary = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_binary. +// Exit a parse tree produced by HiveSql#bool_expr_binary. HiveSqlListener.prototype.exitBool_expr_binary = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Enter a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlListener.prototype.enterBool_expr_logical_operator = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Exit a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlListener.prototype.exitBool_expr_logical_operator = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Enter a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlListener.prototype.enterBool_expr_binary_operator = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Exit a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlListener.prototype.exitBool_expr_binary_operator = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr. +// Enter a parse tree produced by HiveSql#expr. HiveSqlListener.prototype.enterExpr = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr. +// Exit a parse tree produced by HiveSql#expr. HiveSqlListener.prototype.exitExpr = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_atom. +// Enter a parse tree produced by HiveSql#expr_atom. HiveSqlListener.prototype.enterExpr_atom = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_atom. +// Exit a parse tree produced by HiveSql#expr_atom. HiveSqlListener.prototype.exitExpr_atom = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_interval. +// Enter a parse tree produced by HiveSql#expr_interval. HiveSqlListener.prototype.enterExpr_interval = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_interval. +// Exit a parse tree produced by HiveSql#expr_interval. HiveSqlListener.prototype.exitExpr_interval = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#interval_item. +// Enter a parse tree produced by HiveSql#interval_item. HiveSqlListener.prototype.enterInterval_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#interval_item. +// Exit a parse tree produced by HiveSql#interval_item. HiveSqlListener.prototype.exitInterval_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_concat. +// Enter a parse tree produced by HiveSql#expr_concat. HiveSqlListener.prototype.enterExpr_concat = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_concat. +// Exit a parse tree produced by HiveSql#expr_concat. HiveSqlListener.prototype.exitExpr_concat = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_concat_item. +// Enter a parse tree produced by HiveSql#expr_concat_item. HiveSqlListener.prototype.enterExpr_concat_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_concat_item. +// Exit a parse tree produced by HiveSql#expr_concat_item. HiveSqlListener.prototype.exitExpr_concat_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case. +// Enter a parse tree produced by HiveSql#expr_case. HiveSqlListener.prototype.enterExpr_case = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case. +// Exit a parse tree produced by HiveSql#expr_case. HiveSqlListener.prototype.exitExpr_case = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case_simple. +// Enter a parse tree produced by HiveSql#expr_case_simple. HiveSqlListener.prototype.enterExpr_case_simple = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case_simple. +// Exit a parse tree produced by HiveSql#expr_case_simple. HiveSqlListener.prototype.exitExpr_case_simple = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_case_searched. +// Enter a parse tree produced by HiveSql#expr_case_searched. HiveSqlListener.prototype.enterExpr_case_searched = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_case_searched. +// Exit a parse tree produced by HiveSql#expr_case_searched. HiveSqlListener.prototype.exitExpr_case_searched = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Enter a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlListener.prototype.enterExpr_cursor_attribute = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Exit a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlListener.prototype.exitExpr_cursor_attribute = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Enter a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlListener.prototype.enterExpr_agg_window_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Exit a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlListener.prototype.exitExpr_agg_window_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Enter a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlListener.prototype.enterExpr_func_all_distinct = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Exit a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlListener.prototype.exitExpr_func_all_distinct = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Enter a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlListener.prototype.enterExpr_func_over_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Exit a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlListener.prototype.exitExpr_func_over_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Enter a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlListener.prototype.enterExpr_func_partition_by_clause = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Exit a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlListener.prototype.exitExpr_func_partition_by_clause = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_spec_func. +// Enter a parse tree produced by HiveSql#expr_spec_func. HiveSqlListener.prototype.enterExpr_spec_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_spec_func. +// Exit a parse tree produced by HiveSql#expr_spec_func. HiveSqlListener.prototype.exitExpr_spec_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func. +// Enter a parse tree produced by HiveSql#expr_func. HiveSqlListener.prototype.enterExpr_func = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func. +// Exit a parse tree produced by HiveSql#expr_func. HiveSqlListener.prototype.exitExpr_func = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_func_params. +// Enter a parse tree produced by HiveSql#expr_func_params. HiveSqlListener.prototype.enterExpr_func_params = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_func_params. +// Exit a parse tree produced by HiveSql#expr_func_params. HiveSqlListener.prototype.exitExpr_func_params = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#func_param. +// Enter a parse tree produced by HiveSql#func_param. HiveSqlListener.prototype.enterFunc_param = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#func_param. +// Exit a parse tree produced by HiveSql#func_param. HiveSqlListener.prototype.exitFunc_param = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_select. +// Enter a parse tree produced by HiveSql#expr_select. HiveSqlListener.prototype.enterExpr_select = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_select. +// Exit a parse tree produced by HiveSql#expr_select. HiveSqlListener.prototype.exitExpr_select = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#expr_file. +// Enter a parse tree produced by HiveSql#expr_file. HiveSqlListener.prototype.enterExpr_file = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#expr_file. +// Exit a parse tree produced by HiveSql#expr_file. HiveSqlListener.prototype.exitExpr_file = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#hive. +// Enter a parse tree produced by HiveSql#hive. HiveSqlListener.prototype.enterHive = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#hive. +// Exit a parse tree produced by HiveSql#hive. HiveSqlListener.prototype.exitHive = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#hive_item. +// Enter a parse tree produced by HiveSql#hive_item. HiveSqlListener.prototype.enterHive_item = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#hive_item. +// Exit a parse tree produced by HiveSql#hive_item. HiveSqlListener.prototype.exitHive_item = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host. +// Enter a parse tree produced by HiveSql#host. HiveSqlListener.prototype.enterHost = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host. +// Exit a parse tree produced by HiveSql#host. HiveSqlListener.prototype.exitHost = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host_cmd. +// Enter a parse tree produced by HiveSql#host_cmd. HiveSqlListener.prototype.enterHost_cmd = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host_cmd. +// Exit a parse tree produced by HiveSql#host_cmd. HiveSqlListener.prototype.exitHost_cmd = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#host_stmt. +// Enter a parse tree produced by HiveSql#host_stmt. HiveSqlListener.prototype.enterHost_stmt = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#host_stmt. +// Exit a parse tree produced by HiveSql#host_stmt. HiveSqlListener.prototype.exitHost_stmt = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#file_name. +// Enter a parse tree produced by HiveSql#file_name. HiveSqlListener.prototype.enterFile_name = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#file_name. +// Exit a parse tree produced by HiveSql#file_name. HiveSqlListener.prototype.exitFile_name = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#date_literal. +// Enter a parse tree produced by HiveSql#date_literal. HiveSqlListener.prototype.enterDate_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#date_literal. +// Exit a parse tree produced by HiveSql#date_literal. HiveSqlListener.prototype.exitDate_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#timestamp_literal. +// Enter a parse tree produced by HiveSql#timestamp_literal. HiveSqlListener.prototype.enterTimestamp_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#timestamp_literal. +// Exit a parse tree produced by HiveSql#timestamp_literal. HiveSqlListener.prototype.exitTimestamp_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#ident. +// Enter a parse tree produced by HiveSql#ident. HiveSqlListener.prototype.enterIdent = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#ident. +// Exit a parse tree produced by HiveSql#ident. HiveSqlListener.prototype.exitIdent = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#single_quotedString. +// Enter a parse tree produced by HiveSql#single_quotedString. HiveSqlListener.prototype.enterSingle_quotedString = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#single_quotedString. +// Exit a parse tree produced by HiveSql#single_quotedString. HiveSqlListener.prototype.exitSingle_quotedString = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#double_quotedString. +// Enter a parse tree produced by HiveSql#double_quotedString. HiveSqlListener.prototype.enterDouble_quotedString = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#double_quotedString. +// Exit a parse tree produced by HiveSql#double_quotedString. HiveSqlListener.prototype.exitDouble_quotedString = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#int_number. +// Enter a parse tree produced by HiveSql#int_number. HiveSqlListener.prototype.enterInt_number = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#int_number. +// Exit a parse tree produced by HiveSql#int_number. HiveSqlListener.prototype.exitInt_number = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#dec_number. +// Enter a parse tree produced by HiveSql#dec_number. HiveSqlListener.prototype.enterDec_number = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#dec_number. +// Exit a parse tree produced by HiveSql#dec_number. HiveSqlListener.prototype.exitDec_number = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#bool_literal. +// Enter a parse tree produced by HiveSql#bool_literal. HiveSqlListener.prototype.enterBool_literal = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#bool_literal. +// Exit a parse tree produced by HiveSql#bool_literal. HiveSqlListener.prototype.exitBool_literal = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#null_const. +// Enter a parse tree produced by HiveSql#null_const. HiveSqlListener.prototype.enterNull_const = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#null_const. +// Exit a parse tree produced by HiveSql#null_const. HiveSqlListener.prototype.exitNull_const = function(ctx) { }; -// Enter a parse tree produced by HiveSqlParser#non_reserved_words. +// Enter a parse tree produced by HiveSql#non_reserved_words. HiveSqlListener.prototype.enterNon_reserved_words = function(ctx) { }; -// Exit a parse tree produced by HiveSqlParser#non_reserved_words. +// Exit a parse tree produced by HiveSql#non_reserved_words. HiveSqlListener.prototype.exitNon_reserved_words = function(ctx) { }; diff --git a/src/lib/hive/HiveSqlVisitor.js b/src/lib/hive/HiveSqlVisitor.js index 442334a..bd1c2c8 100644 --- a/src/lib/hive/HiveSqlVisitor.js +++ b/src/lib/hive/HiveSqlVisitor.js @@ -1,8 +1,8 @@ -// Generated from /Users/ziv/Workspace/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 +// Generated from /Users/libowen/Desktop/Code/gitlab.prod.dtstack.cn/dt-insight-front/infrastructure/dt-sql-parser/src/grammar/hive/HiveSql.g4 by ANTLR 4.8 // jshint ignore: start var antlr4 = require('antlr4/index'); -// This class defines a complete generic visitor for a parse tree produced by HiveSqlParser. +// This class defines a complete generic visitor for a parse tree produced by HiveSql. function HiveSqlVisitor() { antlr4.tree.ParseTreeVisitor.call(this); @@ -12,1363 +12,1363 @@ function HiveSqlVisitor() { HiveSqlVisitor.prototype = Object.create(antlr4.tree.ParseTreeVisitor.prototype); HiveSqlVisitor.prototype.constructor = HiveSqlVisitor; -// Visit a parse tree produced by HiveSqlParser#program. +// Visit a parse tree produced by HiveSql#program. HiveSqlVisitor.prototype.visitProgram = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#block. +// Visit a parse tree produced by HiveSql#block. HiveSqlVisitor.prototype.visitBlock = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#begin_end_block. +// Visit a parse tree produced by HiveSql#begin_end_block. HiveSqlVisitor.prototype.visitBegin_end_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#single_block_stmt. +// Visit a parse tree produced by HiveSql#single_block_stmt. HiveSqlVisitor.prototype.visitSingle_block_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#block_end. +// Visit a parse tree produced by HiveSql#block_end. HiveSqlVisitor.prototype.visitBlock_end = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#proc_block. +// Visit a parse tree produced by HiveSql#proc_block. HiveSqlVisitor.prototype.visitProc_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#stmt. +// Visit a parse tree produced by HiveSql#stmt. HiveSqlVisitor.prototype.visitStmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#semicolon_stmt. +// Visit a parse tree produced by HiveSql#semicolon_stmt. HiveSqlVisitor.prototype.visitSemicolon_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exception_block. +// Visit a parse tree produced by HiveSql#exception_block. HiveSqlVisitor.prototype.visitException_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exception_block_item. +// Visit a parse tree produced by HiveSql#exception_block_item. HiveSqlVisitor.prototype.visitException_block_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#null_stmt. +// Visit a parse tree produced by HiveSql#null_stmt. HiveSqlVisitor.prototype.visitNull_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_stmt. +// Visit a parse tree produced by HiveSql#expr_stmt. HiveSqlVisitor.prototype.visitExpr_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt. +// Visit a parse tree produced by HiveSql#assignment_stmt. HiveSqlVisitor.prototype.visitAssignment_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_item. HiveSqlVisitor.prototype.visitAssignment_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_single_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_single_item. HiveSqlVisitor.prototype.visitAssignment_stmt_single_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_multiple_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_multiple_item. HiveSqlVisitor.prototype.visitAssignment_stmt_multiple_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#assignment_stmt_select_item. +// Visit a parse tree produced by HiveSql#assignment_stmt_select_item. HiveSqlVisitor.prototype.visitAssignment_stmt_select_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#allocate_cursor_stmt. +// Visit a parse tree produced by HiveSql#allocate_cursor_stmt. HiveSqlVisitor.prototype.visitAllocate_cursor_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#associate_locator_stmt. +// Visit a parse tree produced by HiveSql#associate_locator_stmt. HiveSqlVisitor.prototype.visitAssociate_locator_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#begin_transaction_stmt. +// Visit a parse tree produced by HiveSql#begin_transaction_stmt. HiveSqlVisitor.prototype.visitBegin_transaction_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#break_stmt. +// Visit a parse tree produced by HiveSql#break_stmt. HiveSqlVisitor.prototype.visitBreak_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#call_stmt. +// Visit a parse tree produced by HiveSql#call_stmt. HiveSqlVisitor.prototype.visitCall_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_stmt. +// Visit a parse tree produced by HiveSql#declare_stmt. HiveSqlVisitor.prototype.visitDeclare_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_block. +// Visit a parse tree produced by HiveSql#declare_block. HiveSqlVisitor.prototype.visitDeclare_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_block_inplace. +// Visit a parse tree produced by HiveSql#declare_block_inplace. HiveSqlVisitor.prototype.visitDeclare_block_inplace = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_stmt_item. +// Visit a parse tree produced by HiveSql#declare_stmt_item. HiveSqlVisitor.prototype.visitDeclare_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_var_item. +// Visit a parse tree produced by HiveSql#declare_var_item. HiveSqlVisitor.prototype.visitDeclare_var_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_condition_item. +// Visit a parse tree produced by HiveSql#declare_condition_item. HiveSqlVisitor.prototype.visitDeclare_condition_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_cursor_item. +// Visit a parse tree produced by HiveSql#declare_cursor_item. HiveSqlVisitor.prototype.visitDeclare_cursor_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cursor_with_return. +// Visit a parse tree produced by HiveSql#cursor_with_return. HiveSqlVisitor.prototype.visitCursor_with_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cursor_without_return. +// Visit a parse tree produced by HiveSql#cursor_without_return. HiveSqlVisitor.prototype.visitCursor_without_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_handler_item. +// Visit a parse tree produced by HiveSql#declare_handler_item. HiveSqlVisitor.prototype.visitDeclare_handler_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#declare_temporary_table_item. +// Visit a parse tree produced by HiveSql#declare_temporary_table_item. HiveSqlVisitor.prototype.visitDeclare_temporary_table_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_stmt. +// Visit a parse tree produced by HiveSql#create_table_stmt. HiveSqlVisitor.prototype.visitCreate_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_local_temp_table_stmt. +// Visit a parse tree produced by HiveSql#create_local_temp_table_stmt. HiveSqlVisitor.prototype.visitCreate_local_temp_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_definition. +// Visit a parse tree produced by HiveSql#create_table_definition. HiveSqlVisitor.prototype.visitCreate_table_definition = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_columns. +// Visit a parse tree produced by HiveSql#create_table_columns. HiveSqlVisitor.prototype.visitCreate_table_columns = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_columns_item. +// Visit a parse tree produced by HiveSql#create_table_columns_item. HiveSqlVisitor.prototype.visitCreate_table_columns_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#column_name. +// Visit a parse tree produced by HiveSql#column_name. HiveSqlVisitor.prototype.visitColumn_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_column_inline_cons. +// Visit a parse tree produced by HiveSql#create_table_column_inline_cons. HiveSqlVisitor.prototype.visitCreate_table_column_inline_cons = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_column_cons. +// Visit a parse tree produced by HiveSql#create_table_column_cons. HiveSqlVisitor.prototype.visitCreate_table_column_cons = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_fk_action. +// Visit a parse tree produced by HiveSql#create_table_fk_action. HiveSqlVisitor.prototype.visitCreate_table_fk_action = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions. +// Visit a parse tree produced by HiveSql#create_table_preoptions. HiveSqlVisitor.prototype.visitCreate_table_preoptions = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions_item. +// Visit a parse tree produced by HiveSql#create_table_preoptions_item. HiveSqlVisitor.prototype.visitCreate_table_preoptions_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_preoptions_td_item. +// Visit a parse tree produced by HiveSql#create_table_preoptions_td_item. HiveSqlVisitor.prototype.visitCreate_table_preoptions_td_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options. +// Visit a parse tree produced by HiveSql#create_table_options. HiveSqlVisitor.prototype.visitCreate_table_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_item. +// Visit a parse tree produced by HiveSql#create_table_options_item. HiveSqlVisitor.prototype.visitCreate_table_options_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_ora_item. +// Visit a parse tree produced by HiveSql#create_table_options_ora_item. HiveSqlVisitor.prototype.visitCreate_table_options_ora_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_db2_item. +// Visit a parse tree produced by HiveSql#create_table_options_db2_item. HiveSqlVisitor.prototype.visitCreate_table_options_db2_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_td_item. +// Visit a parse tree produced by HiveSql#create_table_options_td_item. HiveSqlVisitor.prototype.visitCreate_table_options_td_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_hive_item. +// Visit a parse tree produced by HiveSql#create_table_options_hive_item. HiveSqlVisitor.prototype.visitCreate_table_options_hive_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_hive_row_format. +// Visit a parse tree produced by HiveSql#create_table_hive_row_format. HiveSqlVisitor.prototype.visitCreate_table_hive_row_format = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_hive_row_format_fields. +// Visit a parse tree produced by HiveSql#create_table_hive_row_format_fields. HiveSqlVisitor.prototype.visitCreate_table_hive_row_format_fields = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_mssql_item. +// Visit a parse tree produced by HiveSql#create_table_options_mssql_item. HiveSqlVisitor.prototype.visitCreate_table_options_mssql_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_table_options_mysql_item. +// Visit a parse tree produced by HiveSql#create_table_options_mysql_item. HiveSqlVisitor.prototype.visitCreate_table_options_mysql_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_stmt. +// Visit a parse tree produced by HiveSql#alter_table_stmt. HiveSqlVisitor.prototype.visitAlter_table_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_item. +// Visit a parse tree produced by HiveSql#alter_table_item. HiveSqlVisitor.prototype.visitAlter_table_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_add_constraint. +// Visit a parse tree produced by HiveSql#alter_table_add_constraint. HiveSqlVisitor.prototype.visitAlter_table_add_constraint = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#alter_table_add_constraint_item. +// Visit a parse tree produced by HiveSql#alter_table_add_constraint_item. HiveSqlVisitor.prototype.visitAlter_table_add_constraint_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype. +// Visit a parse tree produced by HiveSql#dtype. HiveSqlVisitor.prototype.visitDtype = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_len. +// Visit a parse tree produced by HiveSql#dtype_len. HiveSqlVisitor.prototype.visitDtype_len = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_attr. +// Visit a parse tree produced by HiveSql#dtype_attr. HiveSqlVisitor.prototype.visitDtype_attr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dtype_default. +// Visit a parse tree produced by HiveSql#dtype_default. HiveSqlVisitor.prototype.visitDtype_default = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_database_stmt. +// Visit a parse tree produced by HiveSql#create_database_stmt. HiveSqlVisitor.prototype.visitCreate_database_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_database_option. +// Visit a parse tree produced by HiveSql#create_database_option. HiveSqlVisitor.prototype.visitCreate_database_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_function_stmt. +// Visit a parse tree produced by HiveSql#create_function_stmt. HiveSqlVisitor.prototype.visitCreate_function_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_function_return. +// Visit a parse tree produced by HiveSql#create_function_return. HiveSqlVisitor.prototype.visitCreate_function_return = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_package_stmt. +// Visit a parse tree produced by HiveSql#create_package_stmt. HiveSqlVisitor.prototype.visitCreate_package_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_spec. +// Visit a parse tree produced by HiveSql#package_spec. HiveSqlVisitor.prototype.visitPackage_spec = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_spec_item. +// Visit a parse tree produced by HiveSql#package_spec_item. HiveSqlVisitor.prototype.visitPackage_spec_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_package_body_stmt. +// Visit a parse tree produced by HiveSql#create_package_body_stmt. HiveSqlVisitor.prototype.visitCreate_package_body_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_body. +// Visit a parse tree produced by HiveSql#package_body. HiveSqlVisitor.prototype.visitPackage_body = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#package_body_item. +// Visit a parse tree produced by HiveSql#package_body_item. HiveSqlVisitor.prototype.visitPackage_body_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_procedure_stmt. +// Visit a parse tree produced by HiveSql#create_procedure_stmt. HiveSqlVisitor.prototype.visitCreate_procedure_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_params. +// Visit a parse tree produced by HiveSql#create_routine_params. HiveSqlVisitor.prototype.visitCreate_routine_params = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_param_item. +// Visit a parse tree produced by HiveSql#create_routine_param_item. HiveSqlVisitor.prototype.visitCreate_routine_param_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_options. +// Visit a parse tree produced by HiveSql#create_routine_options. HiveSqlVisitor.prototype.visitCreate_routine_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_routine_option. +// Visit a parse tree produced by HiveSql#create_routine_option. HiveSqlVisitor.prototype.visitCreate_routine_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#drop_stmt. +// Visit a parse tree produced by HiveSql#drop_stmt. HiveSqlVisitor.prototype.visitDrop_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#end_transaction_stmt. +// Visit a parse tree produced by HiveSql#end_transaction_stmt. HiveSqlVisitor.prototype.visitEnd_transaction_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exec_stmt. +// Visit a parse tree produced by HiveSql#exec_stmt. HiveSqlVisitor.prototype.visitExec_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_stmt. +// Visit a parse tree produced by HiveSql#if_stmt. HiveSqlVisitor.prototype.visitIf_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_plsql_stmt. +// Visit a parse tree produced by HiveSql#if_plsql_stmt. HiveSqlVisitor.prototype.visitIf_plsql_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_tsql_stmt. +// Visit a parse tree produced by HiveSql#if_tsql_stmt. HiveSqlVisitor.prototype.visitIf_tsql_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#if_bteq_stmt. +// Visit a parse tree produced by HiveSql#if_bteq_stmt. HiveSqlVisitor.prototype.visitIf_bteq_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#elseif_block. +// Visit a parse tree produced by HiveSql#elseif_block. HiveSqlVisitor.prototype.visitElseif_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#else_block. +// Visit a parse tree produced by HiveSql#else_block. HiveSqlVisitor.prototype.visitElse_block = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#include_stmt. +// Visit a parse tree produced by HiveSql#include_stmt. HiveSqlVisitor.prototype.visitInclude_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt. +// Visit a parse tree produced by HiveSql#insert_stmt. HiveSqlVisitor.prototype.visitInsert_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_cols. +// Visit a parse tree produced by HiveSql#insert_stmt_cols. HiveSqlVisitor.prototype.visitInsert_stmt_cols = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_rows. +// Visit a parse tree produced by HiveSql#insert_stmt_rows. HiveSqlVisitor.prototype.visitInsert_stmt_rows = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_stmt_row. +// Visit a parse tree produced by HiveSql#insert_stmt_row. HiveSqlVisitor.prototype.visitInsert_stmt_row = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#insert_directory_stmt. +// Visit a parse tree produced by HiveSql#insert_directory_stmt. HiveSqlVisitor.prototype.visitInsert_directory_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#exit_stmt. +// Visit a parse tree produced by HiveSql#exit_stmt. HiveSqlVisitor.prototype.visitExit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt. +// Visit a parse tree produced by HiveSql#get_diag_stmt. HiveSqlVisitor.prototype.visitGet_diag_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_exception_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_exception_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_exception_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#get_diag_stmt_rowcount_item. +// Visit a parse tree produced by HiveSql#get_diag_stmt_rowcount_item. HiveSqlVisitor.prototype.visitGet_diag_stmt_rowcount_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#grant_stmt. +// Visit a parse tree produced by HiveSql#grant_stmt. HiveSqlVisitor.prototype.visitGrant_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#grant_stmt_item. +// Visit a parse tree produced by HiveSql#grant_stmt_item. HiveSqlVisitor.prototype.visitGrant_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#leave_stmt. +// Visit a parse tree produced by HiveSql#leave_stmt. HiveSqlVisitor.prototype.visitLeave_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#map_object_stmt. +// Visit a parse tree produced by HiveSql#map_object_stmt. HiveSqlVisitor.prototype.visitMap_object_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#open_stmt. +// Visit a parse tree produced by HiveSql#open_stmt. HiveSqlVisitor.prototype.visitOpen_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fetch_stmt. +// Visit a parse tree produced by HiveSql#fetch_stmt. HiveSqlVisitor.prototype.visitFetch_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#collect_stats_stmt. +// Visit a parse tree produced by HiveSql#collect_stats_stmt. HiveSqlVisitor.prototype.visitCollect_stats_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#collect_stats_clause. +// Visit a parse tree produced by HiveSql#collect_stats_clause. HiveSqlVisitor.prototype.visitCollect_stats_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#close_stmt. +// Visit a parse tree produced by HiveSql#close_stmt. HiveSqlVisitor.prototype.visitClose_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cmp_stmt. +// Visit a parse tree produced by HiveSql#cmp_stmt. HiveSqlVisitor.prototype.visitCmp_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cmp_source. +// Visit a parse tree produced by HiveSql#cmp_source. HiveSqlVisitor.prototype.visitCmp_source = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_from_local_stmt. +// Visit a parse tree produced by HiveSql#copy_from_local_stmt. HiveSqlVisitor.prototype.visitCopy_from_local_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_stmt. +// Visit a parse tree produced by HiveSql#copy_stmt. HiveSqlVisitor.prototype.visitCopy_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_source. +// Visit a parse tree produced by HiveSql#copy_source. HiveSqlVisitor.prototype.visitCopy_source = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_target. +// Visit a parse tree produced by HiveSql#copy_target. HiveSqlVisitor.prototype.visitCopy_target = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_option. +// Visit a parse tree produced by HiveSql#copy_option. HiveSqlVisitor.prototype.visitCopy_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#copy_file_option. +// Visit a parse tree produced by HiveSql#copy_file_option. HiveSqlVisitor.prototype.visitCopy_file_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#commit_stmt. +// Visit a parse tree produced by HiveSql#commit_stmt. HiveSqlVisitor.prototype.visitCommit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_index_stmt. +// Visit a parse tree produced by HiveSql#create_index_stmt. HiveSqlVisitor.prototype.visitCreate_index_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#create_index_col. +// Visit a parse tree produced by HiveSql#create_index_col. HiveSqlVisitor.prototype.visitCreate_index_col = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#index_storage_clause. +// Visit a parse tree produced by HiveSql#index_storage_clause. HiveSqlVisitor.prototype.visitIndex_storage_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#index_mssql_storage_clause. +// Visit a parse tree produced by HiveSql#index_mssql_storage_clause. HiveSqlVisitor.prototype.visitIndex_mssql_storage_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#print_stmt. +// Visit a parse tree produced by HiveSql#print_stmt. HiveSqlVisitor.prototype.visitPrint_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#quit_stmt. +// Visit a parse tree produced by HiveSql#quit_stmt. HiveSqlVisitor.prototype.visitQuit_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#raise_stmt. +// Visit a parse tree produced by HiveSql#raise_stmt. HiveSqlVisitor.prototype.visitRaise_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#resignal_stmt. +// Visit a parse tree produced by HiveSql#resignal_stmt. HiveSqlVisitor.prototype.visitResignal_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#return_stmt. +// Visit a parse tree produced by HiveSql#return_stmt. HiveSqlVisitor.prototype.visitReturn_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#rollback_stmt. +// Visit a parse tree produced by HiveSql#rollback_stmt. HiveSqlVisitor.prototype.visitRollback_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_session_option. +// Visit a parse tree produced by HiveSql#set_session_option. HiveSqlVisitor.prototype.visitSet_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_current_schema_option. +// Visit a parse tree produced by HiveSql#set_current_schema_option. HiveSqlVisitor.prototype.visitSet_current_schema_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_mssql_session_option. +// Visit a parse tree produced by HiveSql#set_mssql_session_option. HiveSqlVisitor.prototype.visitSet_mssql_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#set_teradata_session_option. +// Visit a parse tree produced by HiveSql#set_teradata_session_option. HiveSqlVisitor.prototype.visitSet_teradata_session_option = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#signal_stmt. +// Visit a parse tree produced by HiveSql#signal_stmt. HiveSqlVisitor.prototype.visitSignal_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#summary_stmt. +// Visit a parse tree produced by HiveSql#summary_stmt. HiveSqlVisitor.prototype.visitSummary_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#truncate_stmt. +// Visit a parse tree produced by HiveSql#truncate_stmt. HiveSqlVisitor.prototype.visitTruncate_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#use_stmt. +// Visit a parse tree produced by HiveSql#use_stmt. HiveSqlVisitor.prototype.visitUse_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#values_into_stmt. +// Visit a parse tree produced by HiveSql#values_into_stmt. HiveSqlVisitor.prototype.visitValues_into_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#while_stmt. +// Visit a parse tree produced by HiveSql#while_stmt. HiveSqlVisitor.prototype.visitWhile_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#for_cursor_stmt. +// Visit a parse tree produced by HiveSql#for_cursor_stmt. HiveSqlVisitor.prototype.visitFor_cursor_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#for_range_stmt. +// Visit a parse tree produced by HiveSql#for_range_stmt. HiveSqlVisitor.prototype.visitFor_range_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#label. +// Visit a parse tree produced by HiveSql#label. HiveSqlVisitor.prototype.visitLabel = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#using_clause. +// Visit a parse tree produced by HiveSql#using_clause. HiveSqlVisitor.prototype.visitUsing_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_stmt. +// Visit a parse tree produced by HiveSql#select_stmt. HiveSqlVisitor.prototype.visitSelect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_stmt. +// Visit a parse tree produced by HiveSql#cte_select_stmt. HiveSqlVisitor.prototype.visitCte_select_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_stmt_item. +// Visit a parse tree produced by HiveSql#cte_select_stmt_item. HiveSqlVisitor.prototype.visitCte_select_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#cte_select_cols. +// Visit a parse tree produced by HiveSql#cte_select_cols. HiveSqlVisitor.prototype.visitCte_select_cols = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_stmt. +// Visit a parse tree produced by HiveSql#fullselect_stmt. HiveSqlVisitor.prototype.visitFullselect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_stmt_item. +// Visit a parse tree produced by HiveSql#fullselect_stmt_item. HiveSqlVisitor.prototype.visitFullselect_stmt_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#fullselect_set_clause. +// Visit a parse tree produced by HiveSql#fullselect_set_clause. HiveSqlVisitor.prototype.visitFullselect_set_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#subselect_stmt. +// Visit a parse tree produced by HiveSql#subselect_stmt. HiveSqlVisitor.prototype.visitSubselect_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list. +// Visit a parse tree produced by HiveSql#select_list. HiveSqlVisitor.prototype.visitSelect_list = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_set. +// Visit a parse tree produced by HiveSql#select_list_set. HiveSqlVisitor.prototype.visitSelect_list_set = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_limit. +// Visit a parse tree produced by HiveSql#select_list_limit. HiveSqlVisitor.prototype.visitSelect_list_limit = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_item. +// Visit a parse tree produced by HiveSql#select_list_item. HiveSqlVisitor.prototype.visitSelect_list_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_alias. +// Visit a parse tree produced by HiveSql#select_list_alias. HiveSqlVisitor.prototype.visitSelect_list_alias = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_list_asterisk. +// Visit a parse tree produced by HiveSql#select_list_asterisk. HiveSqlVisitor.prototype.visitSelect_list_asterisk = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#into_clause. +// Visit a parse tree produced by HiveSql#into_clause. HiveSqlVisitor.prototype.visitInto_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_clause. +// Visit a parse tree produced by HiveSql#from_clause. HiveSqlVisitor.prototype.visitFrom_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_clause. +// Visit a parse tree produced by HiveSql#from_table_clause. HiveSqlVisitor.prototype.visitFrom_table_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_name_clause. +// Visit a parse tree produced by HiveSql#from_table_name_clause. HiveSqlVisitor.prototype.visitFrom_table_name_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_subselect_clause. +// Visit a parse tree produced by HiveSql#from_subselect_clause. HiveSqlVisitor.prototype.visitFrom_subselect_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_join_clause. +// Visit a parse tree produced by HiveSql#from_join_clause. HiveSqlVisitor.prototype.visitFrom_join_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_join_type_clause. +// Visit a parse tree produced by HiveSql#from_join_type_clause. HiveSqlVisitor.prototype.visitFrom_join_type_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_values_clause. +// Visit a parse tree produced by HiveSql#from_table_values_clause. HiveSqlVisitor.prototype.visitFrom_table_values_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_table_values_row. +// Visit a parse tree produced by HiveSql#from_table_values_row. HiveSqlVisitor.prototype.visitFrom_table_values_row = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#from_alias_clause. +// Visit a parse tree produced by HiveSql#from_alias_clause. HiveSqlVisitor.prototype.visitFrom_alias_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#table_name. +// Visit a parse tree produced by HiveSql#table_name. HiveSqlVisitor.prototype.visitTable_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#where_clause. +// Visit a parse tree produced by HiveSql#where_clause. HiveSqlVisitor.prototype.visitWhere_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#group_by_clause. +// Visit a parse tree produced by HiveSql#group_by_clause. HiveSqlVisitor.prototype.visitGroup_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#having_clause. +// Visit a parse tree produced by HiveSql#having_clause. HiveSqlVisitor.prototype.visitHaving_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#qualify_clause. +// Visit a parse tree produced by HiveSql#qualify_clause. HiveSqlVisitor.prototype.visitQualify_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#order_by_clause. +// Visit a parse tree produced by HiveSql#order_by_clause. HiveSqlVisitor.prototype.visitOrder_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_options. +// Visit a parse tree produced by HiveSql#select_options. HiveSqlVisitor.prototype.visitSelect_options = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#select_options_item. +// Visit a parse tree produced by HiveSql#select_options_item. HiveSqlVisitor.prototype.visitSelect_options_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_stmt. +// Visit a parse tree produced by HiveSql#update_stmt. HiveSqlVisitor.prototype.visitUpdate_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_assignment. +// Visit a parse tree produced by HiveSql#update_assignment. HiveSqlVisitor.prototype.visitUpdate_assignment = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_table. +// Visit a parse tree produced by HiveSql#update_table. HiveSqlVisitor.prototype.visitUpdate_table = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#update_upsert. +// Visit a parse tree produced by HiveSql#update_upsert. HiveSqlVisitor.prototype.visitUpdate_upsert = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_stmt. +// Visit a parse tree produced by HiveSql#merge_stmt. HiveSqlVisitor.prototype.visitMerge_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_table. +// Visit a parse tree produced by HiveSql#merge_table. HiveSqlVisitor.prototype.visitMerge_table = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_condition. +// Visit a parse tree produced by HiveSql#merge_condition. HiveSqlVisitor.prototype.visitMerge_condition = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#merge_action. +// Visit a parse tree produced by HiveSql#merge_action. HiveSqlVisitor.prototype.visitMerge_action = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#delete_stmt. +// Visit a parse tree produced by HiveSql#delete_stmt. HiveSqlVisitor.prototype.visitDelete_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#delete_alias. +// Visit a parse tree produced by HiveSql#delete_alias. HiveSqlVisitor.prototype.visitDelete_alias = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#describe_stmt. +// Visit a parse tree produced by HiveSql#describe_stmt. HiveSqlVisitor.prototype.visitDescribe_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr. +// Visit a parse tree produced by HiveSql#bool_expr. HiveSqlVisitor.prototype.visitBool_expr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_atom. +// Visit a parse tree produced by HiveSql#bool_expr_atom. HiveSqlVisitor.prototype.visitBool_expr_atom = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_unary. +// Visit a parse tree produced by HiveSql#bool_expr_unary. HiveSqlVisitor.prototype.visitBool_expr_unary = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_single_in. +// Visit a parse tree produced by HiveSql#bool_expr_single_in. HiveSqlVisitor.prototype.visitBool_expr_single_in = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_multi_in. +// Visit a parse tree produced by HiveSql#bool_expr_multi_in. HiveSqlVisitor.prototype.visitBool_expr_multi_in = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_binary. +// Visit a parse tree produced by HiveSql#bool_expr_binary. HiveSqlVisitor.prototype.visitBool_expr_binary = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_logical_operator. +// Visit a parse tree produced by HiveSql#bool_expr_logical_operator. HiveSqlVisitor.prototype.visitBool_expr_logical_operator = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_expr_binary_operator. +// Visit a parse tree produced by HiveSql#bool_expr_binary_operator. HiveSqlVisitor.prototype.visitBool_expr_binary_operator = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr. +// Visit a parse tree produced by HiveSql#expr. HiveSqlVisitor.prototype.visitExpr = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_atom. +// Visit a parse tree produced by HiveSql#expr_atom. HiveSqlVisitor.prototype.visitExpr_atom = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_interval. +// Visit a parse tree produced by HiveSql#expr_interval. HiveSqlVisitor.prototype.visitExpr_interval = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#interval_item. +// Visit a parse tree produced by HiveSql#interval_item. HiveSqlVisitor.prototype.visitInterval_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_concat. +// Visit a parse tree produced by HiveSql#expr_concat. HiveSqlVisitor.prototype.visitExpr_concat = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_concat_item. +// Visit a parse tree produced by HiveSql#expr_concat_item. HiveSqlVisitor.prototype.visitExpr_concat_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case. +// Visit a parse tree produced by HiveSql#expr_case. HiveSqlVisitor.prototype.visitExpr_case = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case_simple. +// Visit a parse tree produced by HiveSql#expr_case_simple. HiveSqlVisitor.prototype.visitExpr_case_simple = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_case_searched. +// Visit a parse tree produced by HiveSql#expr_case_searched. HiveSqlVisitor.prototype.visitExpr_case_searched = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_cursor_attribute. +// Visit a parse tree produced by HiveSql#expr_cursor_attribute. HiveSqlVisitor.prototype.visitExpr_cursor_attribute = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_agg_window_func. +// Visit a parse tree produced by HiveSql#expr_agg_window_func. HiveSqlVisitor.prototype.visitExpr_agg_window_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_all_distinct. +// Visit a parse tree produced by HiveSql#expr_func_all_distinct. HiveSqlVisitor.prototype.visitExpr_func_all_distinct = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_over_clause. +// Visit a parse tree produced by HiveSql#expr_func_over_clause. HiveSqlVisitor.prototype.visitExpr_func_over_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_partition_by_clause. +// Visit a parse tree produced by HiveSql#expr_func_partition_by_clause. HiveSqlVisitor.prototype.visitExpr_func_partition_by_clause = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_spec_func. +// Visit a parse tree produced by HiveSql#expr_spec_func. HiveSqlVisitor.prototype.visitExpr_spec_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func. +// Visit a parse tree produced by HiveSql#expr_func. HiveSqlVisitor.prototype.visitExpr_func = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_func_params. +// Visit a parse tree produced by HiveSql#expr_func_params. HiveSqlVisitor.prototype.visitExpr_func_params = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#func_param. +// Visit a parse tree produced by HiveSql#func_param. HiveSqlVisitor.prototype.visitFunc_param = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_select. +// Visit a parse tree produced by HiveSql#expr_select. HiveSqlVisitor.prototype.visitExpr_select = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#expr_file. +// Visit a parse tree produced by HiveSql#expr_file. HiveSqlVisitor.prototype.visitExpr_file = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#hive. +// Visit a parse tree produced by HiveSql#hive. HiveSqlVisitor.prototype.visitHive = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#hive_item. +// Visit a parse tree produced by HiveSql#hive_item. HiveSqlVisitor.prototype.visitHive_item = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host. +// Visit a parse tree produced by HiveSql#host. HiveSqlVisitor.prototype.visitHost = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host_cmd. +// Visit a parse tree produced by HiveSql#host_cmd. HiveSqlVisitor.prototype.visitHost_cmd = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#host_stmt. +// Visit a parse tree produced by HiveSql#host_stmt. HiveSqlVisitor.prototype.visitHost_stmt = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#file_name. +// Visit a parse tree produced by HiveSql#file_name. HiveSqlVisitor.prototype.visitFile_name = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#date_literal. +// Visit a parse tree produced by HiveSql#date_literal. HiveSqlVisitor.prototype.visitDate_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#timestamp_literal. +// Visit a parse tree produced by HiveSql#timestamp_literal. HiveSqlVisitor.prototype.visitTimestamp_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#ident. +// Visit a parse tree produced by HiveSql#ident. HiveSqlVisitor.prototype.visitIdent = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#single_quotedString. +// Visit a parse tree produced by HiveSql#single_quotedString. HiveSqlVisitor.prototype.visitSingle_quotedString = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#double_quotedString. +// Visit a parse tree produced by HiveSql#double_quotedString. HiveSqlVisitor.prototype.visitDouble_quotedString = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#int_number. +// Visit a parse tree produced by HiveSql#int_number. HiveSqlVisitor.prototype.visitInt_number = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#dec_number. +// Visit a parse tree produced by HiveSql#dec_number. HiveSqlVisitor.prototype.visitDec_number = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#bool_literal. +// Visit a parse tree produced by HiveSql#bool_literal. HiveSqlVisitor.prototype.visitBool_literal = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#null_const. +// Visit a parse tree produced by HiveSql#null_const. HiveSqlVisitor.prototype.visitNull_const = function(ctx) { return this.visitChildren(ctx); }; -// Visit a parse tree produced by HiveSqlParser#non_reserved_words. +// Visit a parse tree produced by HiveSql#non_reserved_words. HiveSqlVisitor.prototype.visitNon_reserved_words = function(ctx) { return this.visitChildren(ctx); }; diff --git a/src/parser/flinksql.ts b/src/parser/flinksql.ts new file mode 100644 index 0000000..62f9d0d --- /dev/null +++ b/src/parser/flinksql.ts @@ -0,0 +1,20 @@ +import { InputStream, CommonTokenStream, Lexer } from 'antlr4'; +import { FlinkSqlLexer } from '../lib/flinksql/FlinkSqlLexer'; +import { FlinkSqlParser } from '../lib/flinksql/FlinkSqlParser'; +export * from '../lib/flinksql/FlinkSqlParserListener'; +export * from '../lib/flinksql/FlinkSqlParserVisitor'; + +import BasicParser from './common/BasicParser'; + +export default class FlinkSQL extends BasicParser { + public createLexer(input: string): Lexer { + const chars = new InputStream(input.toUpperCase()); // Some Lexer only support uppercase token, So you need transform + const lexer = new FlinkSqlLexer(chars) as Lexer; + return lexer; + } + public createParserFromLexer(lexer: Lexer) { + const tokenStream = new CommonTokenStream(lexer); + return new FlinkSqlParser(tokenStream); + } +} + diff --git a/src/parser/hive.ts b/src/parser/hive.ts index a404aef..f9f81df 100644 --- a/src/parser/hive.ts +++ b/src/parser/hive.ts @@ -1,6 +1,6 @@ import { InputStream, CommonTokenStream, Lexer } from 'antlr4'; import { HiveSqlLexer } from '../lib/hive/HiveSqlLexer'; -import { HiveSqlParser } from '../lib/hive/HiveSqlParser'; +import { HiveSql } from '../lib/hive/HiveSql'; export * from '../lib/hive/HiveSqlListener'; export * from '../lib/hive/HiveSqlVisitor'; @@ -14,7 +14,7 @@ export default class HiveSQL extends BasicParser { } public createParserFromLexer(lexer: Lexer) { const tokenStream = new CommonTokenStream(lexer); - return new HiveSqlParser(tokenStream); + return new HiveSql(tokenStream); } } diff --git a/src/parser/index.ts b/src/parser/index.ts index ff3b192..46dd3e8 100644 --- a/src/parser/index.ts +++ b/src/parser/index.ts @@ -1,3 +1,4 @@ export * from './generic'; export * from './plsql'; export * from './hive'; +export * from './flinksql'; diff --git a/src/utils/index.ts b/src/utils/index.ts index f73d0ab..f869013 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,125 +1,183 @@ -function replaceStrFormIndexArr(str, replaceStr, indexArr) { - let result = ''; - let index = 0; - if (!indexArr || indexArr.length < 1) { - return str; - } - for (let i = 0; i < indexArr.length; i++) { - const indexItem = indexArr[i]; - const begin = indexItem.begin; +import { TokenType, Token, TokenReg } from './token'; - result = result + str.substring(index, begin) + replaceStr; - index = indexItem.end + 1; +/** + * 获取 注释 以及 分隔符 等词法信息 + * @param {String} sql + */ +function lexer(input: string): Token[] { + // 记录当前字符的位置 + let current = 0; + let line = 1; + // 最终的 TokenTypes 结果 + const tokens: Token[] = []; - if (i == indexArr.length - 1) { - result = result + str.substring(index); + /** + * 提取 TokenType + */ + // eslint-disable-next-line + const extract = (currentChar: string, validator: RegExp, TokenType: TokenType): Token => { + let value = ''; + const start = current; + while (validator.test(currentChar)) { + value += currentChar; + currentChar = input[++current]; } - } - - return result; -} -function splitSql(sql: string) { - let haveEnd = true; - if (!sql.endsWith(';')) { - sql += ';'; - haveEnd = false; - } - interface splitParser { - index: number; - queue: string; - sqls: number[]; - } - function pushSql(parser: splitParser, sql: string) { - if (!haveEnd && parser.index == sql.length - 1) { - parser.sqls.push(parser.index - 1); - parser.queue = ''; - } else { - parser.sqls.push(parser.index); - parser.queue = ''; - } - } - // 处理引号 - function quoteToken(parser: splitParser, sql: string): string { - const queue = parser.queue; - const endsWith = queue[queue.length - 1]; - if (endsWith == '\'' || endsWith == '"') { - const nextToken = sql.indexOf(endsWith, parser.index + 1); - if (nextToken != -1) { - parser.index = nextToken; - parser.queue = ''; - } else { - parser.index = sql.length - 1; - } - } else { - return null; - } - } - // 处理单行注释 - function singleLineCommentToken(parser: splitParser, sql: string): string { - let queue = parser.queue; - if (queue.endsWith('--')) { - const nextToken = sql.indexOf('\n', parser.index + 1); - if (nextToken != -1) { - parser.index = nextToken; - queue = ''; - } else { - parser.index = sql.length - 1; - } - } else { - return null; - } - } - // 处理多行注释 - function multipleLineCommentToken( - parser: splitParser, sql: string, - ): string { - const queue = parser.queue; - if (queue.endsWith('/*')) { - const nextToken = sql.indexOf('*/', parser.index + 1); - if (nextToken != -1) { - parser.index = nextToken + 1; - parser.queue = ''; - } else { - parser.index = sql.length - 1; - parser.queue = ''; - } - } else { - return null; - } - } - function splitToken(parser: splitParser, sql: string): string { - const queue = parser.queue; - if (queue.endsWith(';')) { - pushSql(parser, sql); - } else { - return null; - } - } - const parser: splitParser = { - index: 0, - queue: '', - sqls: [], + return { + type: TokenType, + start: start, + end: current, + lineNumber: line, + value: value, + }; }; - for (parser.index = 0; parser.index < sql.length; parser.index++) { - const char = sql[parser.index]; - parser.queue += char; - const tokenFuncs = [ - quoteToken, - singleLineCommentToken, - multipleLineCommentToken, - splitToken, - ]; - for (let i = 0; i < tokenFuncs.length; i++) { - tokenFuncs[i](parser, sql); + + /** + * 过滤(提取) 引号中的内容 + */ + // eslint-disable-next-line + const matchQuotation = (currentChar: string, validator: RegExp, TokenType: TokenType) => { + do { + if (currentChar === '\n') { + line++; + } + currentChar = input[++current]; + } while (!validator.test(currentChar)); + + ++current; + }; + + while (current < input.length) { + let char = input[current]; + + // 按顺序处理 换行符 反引号 单引号 双引号 注释 分号 + // 引号内 可能包含注释包含的符号以及分号 所以优先处理引号里面的内容 去除干扰信息 + + if (char === '\n') { + line++; + current++; + continue; } - if (parser.index == sql.length - 1 && parser.queue) { - pushSql(parser, sql); + + if (TokenReg.BackQuotation.test(char)) { + // eslint-disable-next-line + matchQuotation(char, TokenReg.BackQuotation, TokenType.BackQuotation); + continue; } + + if (TokenReg.SingleQuotation.test(char)) { + // eslint-disable-next-line + matchQuotation(char, TokenReg.SingleQuotation, TokenType.SingleQuotation); + continue; + } + + if (TokenReg.DoubleQuotation.test(char)) { + // eslint-disable-next-line + matchQuotation(char, TokenReg.DoubleQuotation, TokenType.DoubleQuotation); + continue; + } + + // 处理单行注释,以--开始,\n 结束 + if (char === '-' && input[current + 1] === '-') { + let value = ''; + const start = current; + + while (char !== '\n') { + value += char; + char = input[++current]; + } + tokens.push({ + type: TokenType.Comment, + value, + start: start, + lineNumber: line, + end: current, + }); + continue; + } + + // 处理多行注释,以 /* 开始, */结束 + if (char === '/' && input[current + 1] === '*') { + let value = ''; + const start = current; + const startLine = line; + + while (!(char === '/' && input[current - 1] === '*')) { + if (char === '\n') { + line++; + } + value += char; + char = input[++current]; + } + value += char; + ++current; + + tokens.push({ + type: TokenType.Comment, + value, + start: start, + lineNumber: startLine, + end: current, + }); + continue; + } + + // 处理结束符 ; + if (TokenReg.StatementTerminator.test(char)) { + const newToken = extract( + char, + TokenReg.StatementTerminator, + TokenType.StatementTerminator, + ); + tokens.push(newToken); + continue; + } + + current++; } - return parser.sqls; + return tokens; +} + +/** + * 分割sql + * @param {String} sql + */ +function splitSql(sql: string) { + const tokens = lexer(sql); + const sqlArr = []; + let startIndex = 0; + tokens.forEach((ele: Token) => { + if (ele.type === TokenType.StatementTerminator) { + sqlArr.push(sql.slice(startIndex, ele.end)); + startIndex = ele.end; + } + }); + if (startIndex < sql.length) { + sqlArr.push(sql.slice(startIndex)); + } + return sqlArr; +} + +/** + * 清除注释和前后空格 + * @param {String} sql + */ +function cleanSql(sql: string) { + sql.trim(); // 删除前后空格 + const tokens = lexer(sql); + let resultSql = ''; + let startIndex = 0; + tokens.forEach((ele: Token) => { + if (ele.type === TokenType.Comment) { + resultSql += sql.slice(startIndex, ele.start); + startIndex = ele.end + 1; + } + }); + resultSql += sql.slice(startIndex); + return resultSql; } export { - replaceStrFormIndexArr, + cleanSql, splitSql, + lexer, }; diff --git a/src/utils/token.ts b/src/utils/token.ts new file mode 100755 index 0000000..490b58d --- /dev/null +++ b/src/utils/token.ts @@ -0,0 +1,46 @@ +export enum TokenType { + /** + * Enclosed in single/double/back quotation, `` Symbol + * 'abc', "abc", `abc` + */ + SingleQuotation = 'SingleQuotation', + DoubleQuotation = 'DoubleQuotation', + BackQuotation = 'BackQuotation', + + /** + * Language element type + */ + Comment = 'Comment', + + /** + * Statement + */ + StatementTerminator = 'StatementTerminator', + + /** + * Others + */ + Error = 'Error' +} + +/** + * Token object + */ +export interface Token { + type: TokenType, + value: string; + start: number; + end: number; + lineNumber: number; + message?: string; +} + +/** +* Token recognition rules +*/ +export const TokenReg = { + [TokenType.StatementTerminator]: /[;]/, + [TokenType.SingleQuotation]: /[']/, + [TokenType.DoubleQuotation]: /["]/, + [TokenType.BackQuotation]: /[`]/, +}; diff --git a/test/parser/flinksql/lexer.test.ts b/test/parser/flinksql/lexer.test.ts new file mode 100644 index 0000000..7b59601 --- /dev/null +++ b/test/parser/flinksql/lexer.test.ts @@ -0,0 +1,11 @@ +import SQLParser from '../../../src/parser/flinksql'; +describe('FlinkSQL Lexer tests', () => { + const parser = new SQLParser(); + + const sql = 'SELECT * FROM table1'; + const tokens = parser.getAllTokens(sql); + + test('token counts', () => { + expect(tokens.length).toBe(7); + }); +}); diff --git a/test/parser/flinksql/listener.test.ts b/test/parser/flinksql/listener.test.ts new file mode 100644 index 0000000..e346622 --- /dev/null +++ b/test/parser/flinksql/listener.test.ts @@ -0,0 +1,24 @@ +import +SQLParser, { FlinkSqlParserListener } + from '../../../src/parser/flinksql'; + +describe('Flink SQL Listener Tests', () => { + const expectTableName = 'user1'; + const sql = `select id,name,sex from ${expectTableName};`; + const parser = new SQLParser(); + + const parserTree = parser.parse(sql); + + test('Listener enterTableName', async () => { + let result = ''; + class MyListener extends FlinkSqlParserListener { + enterTableExpression(ctx): void { + result = ctx.getText().toLowerCase(); + } + } + const listenTableName: any = new MyListener(); + + await parser.listen(listenTableName, parserTree); + expect(result).toBe(expectTableName); + }); +}); diff --git a/test/parser/flinksql/syntax.test.ts b/test/parser/flinksql/syntax.test.ts new file mode 100644 index 0000000..06e0289 --- /dev/null +++ b/test/parser/flinksql/syntax.test.ts @@ -0,0 +1,221 @@ +import SQLParser from '../../../src/parser/flinksql'; +import sqlMockData from '../../mock/flinkSql'; + +describe('FlinkSQL Syntax Tests', () => { + const parser = new SQLParser(); + + // Create statements + test('Test simple CreateTable Statement', () => { + const sql = ` + CREATE TABLE Orders ( + user BIGINT + ) WITH ( + "connector" = "kafka", + "scan.startup.mode" = "earliest-offset" + ); + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple CreateDatabase Statement', () => { + const sql = ` + CREATE DATABASE IF NOT EXISTS dataApi + WITH ( + "owner" = "admin" + ); + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple CreateView Statement', () => { + const sql = ` + CREATE TEMPORARY VIEW IF NOT EXISTS tempView + AS SELECT product, amount FROM Orders; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple CreateFunction Statement', () => { + const sql = ` + CREATE TEMPORARY FUNCTION IF NOT EXISTS tempFunction AS 'SimpleUdf'; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // Alter statements + test('Test simple AlterTable Statement', () => { + const sql = `ALTER TABLE Orders RENAME TO NewOrders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple AlterDatabase Statement', () => { + const sql = `ALTER DATABASE tempDB SET ("key1"="value1");`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple AlterFunction Statement', () => { + const sql = ` + ALTER TEMPORARY FUNCTION IF EXISTS tempFunction AS 'SimpleUdf'; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // Drop statements + test('Test simple DropTable Statement', () => { + const sql = `DROP TABLE IF EXISTS Orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple DropDatabase Statement', () => { + const sql = `DROP DATABASE IF EXISTS Orders RESTRICT;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple DropView Statement', () => { + const sql = `DROP TEMPORARY VIEW IF EXISTS Orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test simple DropFunction Statement', () => { + const sql = `DROP TEMPORARY FUNCTION IF EXISTS Orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // insert statements + test('Test one simple Insert Statement', () => { + const sql = ` + INSERT INTO students VALUES + ('Amy Smith', '123 Park Ave, San Jose', 111111); + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test two simple Insert Statement', () => { + const sql = ` + INSERT INTO students PARTITION (student_id = 444444) + SELECT name, address FROM persons WHERE name = "Dora Williams"; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // query statements + test('Test simple Select Statement', () => { + const sql = `SELECT product, amount FROM Orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with where clause', () => { + const sql = `SELECT * FROM person WHERE id = 200 OR id = 300;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with group by clause', () => { + const sql = `SELECT id, sum(quantity) FROM dealer GROUP BY id;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with having clause', () => { + const sql = ` + SELECT city, sum(quantity) AS sum + FROM dealer GROUP BY city HAVING city = 'Fremont'; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with order by clause', () => { + const sql = `SELECT name, age FROM person ORDER BY age;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with limit clause', () => { + const sql = `SELECT name, age FROM person ORDER BY name LIMIT 2;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test Select Statement with join', () => { + const sql = ` + SELECT id, name, employee.deptno, deptname FROM employee + FULL JOIN department ON employee.deptno = department.deptno; + `; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // describe statements + test('Test simple Describe Statement', () => { + const sql = `DESCRIBE Orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // describe statements + test('Test simple Explain Statement', () => { + const sql = `EXPLAIN tempTable FOR SELECT k, SUM(v) FROM oneTable;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // use statements + test('Test simple Use Statement', () => { + const sql = `USE CATALOG orders;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + // show statements + test('Test simple Show Statement', () => { + const sql = `SHOW CATALOGS;`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + + test('Test complex sql Statement one', () => { + const sql = sqlMockData.sqlStrOne; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement two', () => { + const sql = sqlMockData.sqlStrTwo; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement three', () => { + const sql = sqlMockData.sqlStrThree; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement four', () => { + const sql = sqlMockData.sqlStrFour; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement five', () => { + const sql = sqlMockData.sqlStrFive; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement six', () => { + const sql = sqlMockData.sqlStrSix; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement seven', () => { + const sql = sqlMockData.sqlStrSeven; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement eight', () => { + const sql = sqlMockData.sqlStrEight; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Test complex sql Statement nine', () => { + const sql = sqlMockData.allSqlStr; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); +}); diff --git a/test/parser/flinksql/visitor.test.ts b/test/parser/flinksql/visitor.test.ts new file mode 100644 index 0000000..a3d5bc8 --- /dev/null +++ b/test/parser/flinksql/visitor.test.ts @@ -0,0 +1,27 @@ +import SQLParser, { FlinkSqlParserVisitor } from '../../../src/parser/flinksql'; + +describe('Flink SQL Visitor Tests', () => { + const expectTableName = 'user1'; + const sql = `select id,name,sex from ${expectTableName};`; + const parser = new SQLParser(); + + const parserTree = parser.parse(sql, (error) => { + console.log('Parse error:', error); + }); + + // console.log('Parser tree string:', parser.toString(parserTree)); + + test('Visitor visitTableName', () => { + let result = ''; + class MyVisitor extends FlinkSqlParserVisitor { + visitTableExpression(ctx): void { + result = ctx.getText().toLowerCase(); + super.visitTableExpression(ctx); + } + } + const visitor: any = new MyVisitor(); + visitor.visit(parserTree); + + expect(result).toBe(expectTableName); + }); +}); diff --git a/test/parser/hive/lexer.test.ts b/test/parser/hive/lexer.test.ts index 423bdb9..78a002d 100644 --- a/test/parser/hive/lexer.test.ts +++ b/test/parser/hive/lexer.test.ts @@ -2,11 +2,15 @@ import SQLParser from '../../../src/parser/hive'; describe('HiveSQL Lexer tests', () => { const parser = new SQLParser(); - // select id,name,sex from user1; - const sql = 'SELECT * FROM t1'; - const tokens = parser.getAllTokens(sql); + test('select token counts', () => { + const sql = 'SELECT * FROM t1'; + const tokens = parser.getAllTokens(sql); + expect(tokens.length).toBe(4); + }); - test('token counts', () => { - expect(tokens.length).toBe(12); + test('select token counts', () => { + const sql = 'show create table_name;'; + const tokens = parser.getAllTokens(sql); + expect(tokens.length).toBe(4); }); }); diff --git a/test/parser/hive/listener.test.ts b/test/parser/hive/listener.test.ts index 23ff3e0..ac92674 100644 --- a/test/parser/hive/listener.test.ts +++ b/test/parser/hive/listener.test.ts @@ -1,17 +1,16 @@ import SQLParser, { HiveSqlListener } from '../../../src/parser/hive'; describe('Hive SQL Listener Tests', () => { - const expectTableName = 'user1'; - const sql = `select id,name,sex from ${expectTableName};`; const parser = new SQLParser(); + test('Listener enterSelectList', async () => { + const expectTableName = 'userName'; + const sql = `select ${expectTableName} from user1 where inc_day='20190601' limit 1000;`; + const parserTree = parser.parse(sql); - const parserTree = parser.parse(sql); - - test('Listener enterTableName', async () => { let result = ''; class MyListener extends HiveSqlListener { - enterTableName(ctx): void { - result = ctx.getText().toLowerCase(); + enterSelect_list(ctx): void { + result = ctx.getText(); } } const listenTableName: any = new MyListener(); @@ -19,4 +18,18 @@ describe('Hive SQL Listener Tests', () => { await parser.listen(listenTableName, parserTree); expect(result).toBe(expectTableName); }); + test('Listener enterCreateTable', async () => { + const sql = `drop table table_name;`; + const parserTree = parser.parse(sql); + let result = ''; + class MyListener extends HiveSqlListener { + enterDrop_stmt(ctx): void { + result = ctx.getText(); + } + } + const listenTableName: any = new MyListener(); + + await parser.listen(listenTableName, parserTree); + expect(result).toBe('droptabletable_name'); + }); }); diff --git a/test/parser/hive/syntax.test.ts b/test/parser/hive/syntax.test.ts index e6f6da6..3df530b 100644 --- a/test/parser/hive/syntax.test.ts +++ b/test/parser/hive/syntax.test.ts @@ -2,17 +2,21 @@ import SQLParser from '../../../src/parser/hive'; describe('Hive SQL Syntax Tests', () => { const parser = new SQLParser(); - - test('Select Statement', () => { - const sql = 'SELECT * FROM employee WHERE salary>30000;'; - const result = parser.validate(sql); - - expect(result.length).toBe(0); - }); - - test('Select 1+1', () => { - const sql = 'SELECT 1+1;'; + test('Create Table Statement', () => { + const sql = 'CREATE TABLE person(name STRING,age INT);'; const result = parser.validate(sql); expect(result.length).toBe(0); }); -}); + test('Create Table Statement', () => { + const sql = `alter table dm_gis.table_name add if not exists partition (inc_day = '20190601');`; + const result = parser.validate(sql); + expect(result.length).toBe(0); + }); + test('Wrong Select Statement', () => { + const sql = 'SELECT add ABC from Where ;' + const result = parser.validate(sql); + expect(result.length).toBe(2); + expect(result[0].message).toBe(`no viable alternative at input 'SELECTaddABCfromWhere'`) + expect(result[1].message).toBe(`mismatched input 'Where' expecting `) + }); +}); \ No newline at end of file diff --git a/test/parser/hive/visitor.test.ts b/test/parser/hive/visitor.test.ts index f4d2cec..57ecf9b 100644 --- a/test/parser/hive/visitor.test.ts +++ b/test/parser/hive/visitor.test.ts @@ -1,15 +1,15 @@ import SQLParser, { HiveSqlVisitor } from '../../../src/parser/hive'; describe('Generic SQL Visitor Tests', () => { - const expectTableName = 'user1'; - const sql = `select id,name,sex from ${expectTableName};`; + const expectTableName = 'dm_gis.dlv_addr_tc_count'; + const sql = `select citycode,tc,inc_day from ${expectTableName} where inc_day='20190501' limit 100;`; const parser = new SQLParser(); const parserTree = parser.parse(sql, (error) => { console.log('Parse error:', error); }); - console.log('Parser tree string:', parser.toString(parserTree)); + // console.log('Parser tree string:', parser.toString(parserTree)); test('Visitor visitTableName', () => { let result = ''; @@ -19,6 +19,7 @@ describe('Generic SQL Visitor Tests', () => { super.visitTable_name(ctx); } } + const visitor: any = new MyVisitor(); visitor.visit(parserTree); diff --git a/test/utils/index.test.ts b/test/utils/index.test.ts index 8e221ab..dc931d2 100644 --- a/test/utils/index.test.ts +++ b/test/utils/index.test.ts @@ -1,48 +1,41 @@ import * as utils from '../../src/utils'; describe('utils', () => { - describe('split sql', () => { - test('single', () => { - let sql = 'select id,name from user'; - let result = utils.splitSql(sql); - expect(result).toEqual([sql.length - 1]); - sql += ';'; - result = utils.splitSql(sql); - expect(result).toEqual([sql.length - 1]); - }); - test('multiple', () => { - const sql = `-- a ; - select * from a; - select user from b`; - const result = utils.splitSql(sql); - expect(result).toEqual([34, 65]); - }); - test('error sql', () => { - const sql = `CREATE TABLE MyResult( - a double, - b timestamp, - c timestamp - )WITH( - type ='mysql, - url ='jdbc:mysql://1.1.1.1:3306/hi?charset=utf8', - userName ='name', - password ='123', - tableName ='user' - );`; - const result = utils.splitSql(sql); - expect(result).toEqual([337]); - const sql2 = `CREATE TABLE MyResult( - a double, - b timestamp, - c timestamp - )WITH( - type ='mysql, - url ='jdbc:mysql://1.1.1.1:3306/hi?charset=utf8', - userName ='name', - password ='123', - tableName ='user' - )`; - const result2 = utils.splitSql(sql2); - expect(result2).toEqual([336]); - }); + test('split single sql', () => { + const sql = 'select id,name from user'; + const result = utils.splitSql(sql); + expect(result.length).toEqual(1); + }); + test('split multiple sql', () => { + const sql = `-- a ; + select * from a; + /* + xxx + xxx + */ + select user from b`; + const result = utils.splitSql(sql); + expect(result.length).toEqual(2); + }); + test('lexer', () => { + const sql = `-- a ; + select * from a; + /* + xxx + xxx + */ + select user from b;`; + const result = utils.lexer(sql); + expect(result.length).toEqual(4); + }); + test('cleanSql', () => { + const sql = `-- a ; + select * from a; + /* + xxx + xxx + */ + select user from b`; + const result = utils.cleanSql(sql); + expect(result.indexOf('xxx')).toEqual(-1); }); });