rhombic
Version:
SQL parsing, lineage extraction and manipulation
1,675 lines • 140 kB
JavaScript
"use strict";
// Generated from src/antlr/SqlBase.g4 by ANTLR 4.9.0-SNAPSHOT
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SqlBaseLexer = void 0;
const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
const Lexer_1 = require("antlr4ts/Lexer");
const LexerATNSimulator_1 = require("antlr4ts/atn/LexerATNSimulator");
const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
const Utils = __importStar(require("antlr4ts/misc/Utils"));
class SqlBaseLexer extends Lexer_1.Lexer {
constructor(input) {
super(input);
// tslint:enable:no-trailing-whitespace
this.doublequoted_identifier = false;
this._interp = new LexerATNSimulator_1.LexerATNSimulator(SqlBaseLexer._ATN, this);
}
// @Override
// @NotNull
get vocabulary() {
return SqlBaseLexer.VOCABULARY;
}
/**
* Verify whether current token is a valid decimal token (which contains dot).
* Returns true if the character that follows the token is not a digit or letter or underscore.
*
* For example:
* For char stream "2.3", "2." is not a valid decimal token, because it is followed by digit '3'.
* For char stream "2.3_", "2.3" is not a valid decimal token, because it is followed by '_'.
* For char stream "2.3W", "2.3" is not a valid decimal token, because it is followed by 'W'.
* For char stream "12.0D 34.E2+0.12 " 12.0D is a valid decimal token because it is followed
* by a space. 34.E2 is a valid decimal token because it is followed by symbol '+'
* which is not a digit or letter or underscore.
*/
isValidDecimal() {
return true;
// int nextChar = _input.LA(1);
// if (nextChar >= 'A' && nextChar <= 'Z' || nextChar >= '0' && nextChar <= '9' ||
// nextChar == '_') {
// return false;
// } else {
// return true;
// }
}
/**
* This method will be called when we see '/*' and try to match it as a bracketed comment.
* If the next character is '+', it should be parsed as hint later, and we cannot match
* it as a bracketed comment.
*
* Returns true if the next character is '+'.
*/
isHint() {
return false;
// int nextChar = _input.LA(1);
// if (nextChar == '+') {
// return true;
// } else {
// return false;
// }
}
// @Override
get grammarFileName() {
return "SqlBase.g4";
}
// @Override
get ruleNames() {
return SqlBaseLexer.ruleNames;
}
// @Override
get serializedATN() {
return SqlBaseLexer._serializedATN;
}
// @Override
get channelNames() {
return SqlBaseLexer.channelNames;
}
// @Override
get modeNames() {
return SqlBaseLexer.modeNames;
}
// @Override
sempred(_localctx, ruleIndex, predIndex) {
switch (ruleIndex) {
case 291:
return this.STRING_sempred(_localctx, predIndex);
case 296:
return this.EXPONENT_VALUE_sempred(_localctx, predIndex);
case 297:
return this.DECIMAL_VALUE_sempred(_localctx, predIndex);
case 298:
return this.FLOAT_LITERAL_sempred(_localctx, predIndex);
case 299:
return this.DOUBLE_LITERAL_sempred(_localctx, predIndex);
case 300:
return this.BIGDECIMAL_LITERAL_sempred(_localctx, predIndex);
case 309:
return this.BRACKETED_COMMENT_sempred(_localctx, predIndex);
}
return true;
}
STRING_sempred(_localctx, predIndex) {
switch (predIndex) {
case 0:
return !this.doublequoted_identifier;
}
return true;
}
EXPONENT_VALUE_sempred(_localctx, predIndex) {
switch (predIndex) {
case 1:
return this.isValidDecimal();
}
return true;
}
DECIMAL_VALUE_sempred(_localctx, predIndex) {
switch (predIndex) {
case 2:
return this.isValidDecimal();
}
return true;
}
FLOAT_LITERAL_sempred(_localctx, predIndex) {
switch (predIndex) {
case 3:
return this.isValidDecimal();
}
return true;
}
DOUBLE_LITERAL_sempred(_localctx, predIndex) {
switch (predIndex) {
case 4:
return this.isValidDecimal();
}
return true;
}
BIGDECIMAL_LITERAL_sempred(_localctx, predIndex) {
switch (predIndex) {
case 5:
return this.isValidDecimal();
}
return true;
}
BRACKETED_COMMENT_sempred(_localctx, predIndex) {
switch (predIndex) {
case 6:
return !this.isHint();
}
return true;
}
static get _ATN() {
if (!SqlBaseLexer.__ATN) {
SqlBaseLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(SqlBaseLexer._serializedATN));
}
return SqlBaseLexer.__ATN;
}
}
exports.SqlBaseLexer = SqlBaseLexer;
SqlBaseLexer.T__0 = 1;
SqlBaseLexer.T__1 = 2;
SqlBaseLexer.T__2 = 3;
SqlBaseLexer.T__3 = 4;
SqlBaseLexer.T__4 = 5;
SqlBaseLexer.T__5 = 6;
SqlBaseLexer.T__6 = 7;
SqlBaseLexer.T__7 = 8;
SqlBaseLexer.T__8 = 9;
SqlBaseLexer.T__9 = 10;
SqlBaseLexer.T__10 = 11;
SqlBaseLexer.T__11 = 12;
SqlBaseLexer.T__12 = 13;
SqlBaseLexer.T__13 = 14;
SqlBaseLexer.T__14 = 15;
SqlBaseLexer.ADD = 16;
SqlBaseLexer.AFTER = 17;
SqlBaseLexer.ALL = 18;
SqlBaseLexer.ALTER = 19;
SqlBaseLexer.ANALYZE = 20;
SqlBaseLexer.AND = 21;
SqlBaseLexer.ANTI = 22;
SqlBaseLexer.ANY = 23;
SqlBaseLexer.ARCHIVE = 24;
SqlBaseLexer.ARRAY = 25;
SqlBaseLexer.AS = 26;
SqlBaseLexer.ASC = 27;
SqlBaseLexer.AT = 28;
SqlBaseLexer.AUTHORIZATION = 29;
SqlBaseLexer.BETWEEN = 30;
SqlBaseLexer.BOTH = 31;
SqlBaseLexer.BUCKET = 32;
SqlBaseLexer.BUCKETS = 33;
SqlBaseLexer.BY = 34;
SqlBaseLexer.CACHE = 35;
SqlBaseLexer.CASCADE = 36;
SqlBaseLexer.CASE = 37;
SqlBaseLexer.CAST = 38;
SqlBaseLexer.CHANGE = 39;
SqlBaseLexer.CHECK = 40;
SqlBaseLexer.CLEAR = 41;
SqlBaseLexer.CLUSTER = 42;
SqlBaseLexer.CLUSTERED = 43;
SqlBaseLexer.CODEGEN = 44;
SqlBaseLexer.COLLATE = 45;
SqlBaseLexer.COLLECTION = 46;
SqlBaseLexer.COLUMN = 47;
SqlBaseLexer.COLUMNS = 48;
SqlBaseLexer.COMMENT = 49;
SqlBaseLexer.COMMIT = 50;
SqlBaseLexer.COMPACT = 51;
SqlBaseLexer.COMPACTIONS = 52;
SqlBaseLexer.COMPUTE = 53;
SqlBaseLexer.CONCATENATE = 54;
SqlBaseLexer.CONSTRAINT = 55;
SqlBaseLexer.COST = 56;
SqlBaseLexer.CREATE = 57;
SqlBaseLexer.CROSS = 58;
SqlBaseLexer.CUBE = 59;
SqlBaseLexer.CURRENT = 60;
SqlBaseLexer.CURRENT_DATE = 61;
SqlBaseLexer.CURRENT_TIME = 62;
SqlBaseLexer.CURRENT_TIMESTAMP = 63;
SqlBaseLexer.CURRENT_USER = 64;
SqlBaseLexer.DAY = 65;
SqlBaseLexer.DATA = 66;
SqlBaseLexer.DATABASE = 67;
SqlBaseLexer.DATABASES = 68;
SqlBaseLexer.DBPROPERTIES = 69;
SqlBaseLexer.DEFINED = 70;
SqlBaseLexer.DELETE = 71;
SqlBaseLexer.DELIMITED = 72;
SqlBaseLexer.DESC = 73;
SqlBaseLexer.DESCRIBE = 74;
SqlBaseLexer.DFS = 75;
SqlBaseLexer.DIRECTORIES = 76;
SqlBaseLexer.DIRECTORY = 77;
SqlBaseLexer.DISTINCT = 78;
SqlBaseLexer.DISTRIBUTE = 79;
SqlBaseLexer.DIV = 80;
SqlBaseLexer.DROP = 81;
SqlBaseLexer.ELSE = 82;
SqlBaseLexer.END = 83;
SqlBaseLexer.ESCAPE = 84;
SqlBaseLexer.ESCAPED = 85;
SqlBaseLexer.EXCEPT = 86;
SqlBaseLexer.EXCHANGE = 87;
SqlBaseLexer.EXISTS = 88;
SqlBaseLexer.EXPLAIN = 89;
SqlBaseLexer.EXPORT = 90;
SqlBaseLexer.EXTENDED = 91;
SqlBaseLexer.EXTERNAL = 92;
SqlBaseLexer.EXTRACT = 93;
SqlBaseLexer.FALSE = 94;
SqlBaseLexer.FETCH = 95;
SqlBaseLexer.FIELDS = 96;
SqlBaseLexer.FILTER = 97;
SqlBaseLexer.FILEFORMAT = 98;
SqlBaseLexer.FIRST = 99;
SqlBaseLexer.FOLLOWING = 100;
SqlBaseLexer.FOR = 101;
SqlBaseLexer.FOREIGN = 102;
SqlBaseLexer.FORMAT = 103;
SqlBaseLexer.FORMATTED = 104;
SqlBaseLexer.FROM = 105;
SqlBaseLexer.FULL = 106;
SqlBaseLexer.FUNCTION = 107;
SqlBaseLexer.FUNCTIONS = 108;
SqlBaseLexer.GLOBAL = 109;
SqlBaseLexer.GRANT = 110;
SqlBaseLexer.GROUP = 111;
SqlBaseLexer.GROUPING = 112;
SqlBaseLexer.HAVING = 113;
SqlBaseLexer.HOUR = 114;
SqlBaseLexer.IF = 115;
SqlBaseLexer.IGNORE = 116;
SqlBaseLexer.IMPORT = 117;
SqlBaseLexer.IN = 118;
SqlBaseLexer.INDEX = 119;
SqlBaseLexer.INDEXES = 120;
SqlBaseLexer.INNER = 121;
SqlBaseLexer.INPATH = 122;
SqlBaseLexer.INPUTFORMAT = 123;
SqlBaseLexer.INSERT = 124;
SqlBaseLexer.INTERSECT = 125;
SqlBaseLexer.INTERVAL = 126;
SqlBaseLexer.INTO = 127;
SqlBaseLexer.IS = 128;
SqlBaseLexer.ITEMS = 129;
SqlBaseLexer.JOIN = 130;
SqlBaseLexer.KEYS = 131;
SqlBaseLexer.LAST = 132;
SqlBaseLexer.LATERAL = 133;
SqlBaseLexer.LAZY = 134;
SqlBaseLexer.LEADING = 135;
SqlBaseLexer.LEFT = 136;
SqlBaseLexer.LIKE = 137;
SqlBaseLexer.LIMIT = 138;
SqlBaseLexer.LINES = 139;
SqlBaseLexer.LIST = 140;
SqlBaseLexer.LOAD = 141;
SqlBaseLexer.LOCAL = 142;
SqlBaseLexer.LOCATION = 143;
SqlBaseLexer.LOCK = 144;
SqlBaseLexer.LOCKS = 145;
SqlBaseLexer.LOGICAL = 146;
SqlBaseLexer.MACRO = 147;
SqlBaseLexer.MAP = 148;
SqlBaseLexer.MATCHED = 149;
SqlBaseLexer.MERGE = 150;
SqlBaseLexer.MINUTE = 151;
SqlBaseLexer.MONTH = 152;
SqlBaseLexer.MSCK = 153;
SqlBaseLexer.NAMESPACE = 154;
SqlBaseLexer.NAMESPACES = 155;
SqlBaseLexer.NATURAL = 156;
SqlBaseLexer.NO = 157;
SqlBaseLexer.NOT = 158;
SqlBaseLexer.NULL = 159;
SqlBaseLexer.NULLS = 160;
SqlBaseLexer.OF = 161;
SqlBaseLexer.ON = 162;
SqlBaseLexer.ONLY = 163;
SqlBaseLexer.OPTION = 164;
SqlBaseLexer.OPTIONS = 165;
SqlBaseLexer.OR = 166;
SqlBaseLexer.ORDER = 167;
SqlBaseLexer.OUT = 168;
SqlBaseLexer.OUTER = 169;
SqlBaseLexer.OUTPUTFORMAT = 170;
SqlBaseLexer.OVER = 171;
SqlBaseLexer.OVERLAPS = 172;
SqlBaseLexer.OVERLAY = 173;
SqlBaseLexer.OVERWRITE = 174;
SqlBaseLexer.PARTITION = 175;
SqlBaseLexer.PARTITIONED = 176;
SqlBaseLexer.PARTITIONS = 177;
SqlBaseLexer.PERCENTLIT = 178;
SqlBaseLexer.PIVOT = 179;
SqlBaseLexer.PLACING = 180;
SqlBaseLexer.POSITION = 181;
SqlBaseLexer.PRECEDING = 182;
SqlBaseLexer.PRIMARY = 183;
SqlBaseLexer.PRINCIPALS = 184;
SqlBaseLexer.PROPERTIES = 185;
SqlBaseLexer.PURGE = 186;
SqlBaseLexer.QUERY = 187;
SqlBaseLexer.RANGE = 188;
SqlBaseLexer.RECORDREADER = 189;
SqlBaseLexer.RECORDWRITER = 190;
SqlBaseLexer.RECOVER = 191;
SqlBaseLexer.REDUCE = 192;
SqlBaseLexer.REFERENCES = 193;
SqlBaseLexer.REFRESH = 194;
SqlBaseLexer.RENAME = 195;
SqlBaseLexer.REPAIR = 196;
SqlBaseLexer.REPLACE = 197;
SqlBaseLexer.RESET = 198;
SqlBaseLexer.RESPECT = 199;
SqlBaseLexer.RESTRICT = 200;
SqlBaseLexer.REVOKE = 201;
SqlBaseLexer.RIGHT = 202;
SqlBaseLexer.RLIKE = 203;
SqlBaseLexer.ROLE = 204;
SqlBaseLexer.ROLES = 205;
SqlBaseLexer.ROLLBACK = 206;
SqlBaseLexer.ROLLUP = 207;
SqlBaseLexer.ROW = 208;
SqlBaseLexer.ROWS = 209;
SqlBaseLexer.SECOND = 210;
SqlBaseLexer.SCHEMA = 211;
SqlBaseLexer.SELECT = 212;
SqlBaseLexer.SEMI = 213;
SqlBaseLexer.SEPARATED = 214;
SqlBaseLexer.SERDE = 215;
SqlBaseLexer.SERDEPROPERTIES = 216;
SqlBaseLexer.SESSION_USER = 217;
SqlBaseLexer.SET = 218;
SqlBaseLexer.SETMINUS = 219;
SqlBaseLexer.SETS = 220;
SqlBaseLexer.SHOW = 221;
SqlBaseLexer.SKEWED = 222;
SqlBaseLexer.SOME = 223;
SqlBaseLexer.SORT = 224;
SqlBaseLexer.SORTED = 225;
SqlBaseLexer.START = 226;
SqlBaseLexer.STATISTICS = 227;
SqlBaseLexer.STORED = 228;
SqlBaseLexer.STRATIFY = 229;
SqlBaseLexer.STRUCT = 230;
SqlBaseLexer.SUBSTR = 231;
SqlBaseLexer.SUBSTRING = 232;
SqlBaseLexer.SYNC = 233;
SqlBaseLexer.TABLE = 234;
SqlBaseLexer.TABLES = 235;
SqlBaseLexer.TABLESAMPLE = 236;
SqlBaseLexer.TBLPROPERTIES = 237;
SqlBaseLexer.TEMPORARY = 238;
SqlBaseLexer.TERMINATED = 239;
SqlBaseLexer.THEN = 240;
SqlBaseLexer.TIME = 241;
SqlBaseLexer.TO = 242;
SqlBaseLexer.TOUCH = 243;
SqlBaseLexer.TRAILING = 244;
SqlBaseLexer.TRANSACTION = 245;
SqlBaseLexer.TRANSACTIONS = 246;
SqlBaseLexer.TRANSFORM = 247;
SqlBaseLexer.TRIM = 248;
SqlBaseLexer.TRUE = 249;
SqlBaseLexer.TRUNCATE = 250;
SqlBaseLexer.TRY_CAST = 251;
SqlBaseLexer.TYPE = 252;
SqlBaseLexer.UNARCHIVE = 253;
SqlBaseLexer.UNBOUNDED = 254;
SqlBaseLexer.UNCACHE = 255;
SqlBaseLexer.UNION = 256;
SqlBaseLexer.UNIQUE = 257;
SqlBaseLexer.UNKNOWN = 258;
SqlBaseLexer.UNLOCK = 259;
SqlBaseLexer.UNSET = 260;
SqlBaseLexer.UPDATE = 261;
SqlBaseLexer.USE = 262;
SqlBaseLexer.USER = 263;
SqlBaseLexer.USING = 264;
SqlBaseLexer.VALUES = 265;
SqlBaseLexer.VIEW = 266;
SqlBaseLexer.VIEWS = 267;
SqlBaseLexer.WHEN = 268;
SqlBaseLexer.WHERE = 269;
SqlBaseLexer.WINDOW = 270;
SqlBaseLexer.WITH = 271;
SqlBaseLexer.YEAR = 272;
SqlBaseLexer.ZONE = 273;
SqlBaseLexer.EQ = 274;
SqlBaseLexer.NSEQ = 275;
SqlBaseLexer.NEQ = 276;
SqlBaseLexer.NEQJ = 277;
SqlBaseLexer.LT = 278;
SqlBaseLexer.LTE = 279;
SqlBaseLexer.GT = 280;
SqlBaseLexer.GTE = 281;
SqlBaseLexer.PLUS = 282;
SqlBaseLexer.MINUS = 283;
SqlBaseLexer.ASTERISK = 284;
SqlBaseLexer.SLASH = 285;
SqlBaseLexer.PERCENT = 286;
SqlBaseLexer.TILDE = 287;
SqlBaseLexer.AMPERSAND = 288;
SqlBaseLexer.PIPE = 289;
SqlBaseLexer.CONCAT_PIPE = 290;
SqlBaseLexer.HAT = 291;
SqlBaseLexer.STRING = 292;
SqlBaseLexer.BIGINT_LITERAL = 293;
SqlBaseLexer.SMALLINT_LITERAL = 294;
SqlBaseLexer.TINYINT_LITERAL = 295;
SqlBaseLexer.INTEGER_VALUE = 296;
SqlBaseLexer.EXPONENT_VALUE = 297;
SqlBaseLexer.DECIMAL_VALUE = 298;
SqlBaseLexer.FLOAT_LITERAL = 299;
SqlBaseLexer.DOUBLE_LITERAL = 300;
SqlBaseLexer.BIGDECIMAL_LITERAL = 301;
SqlBaseLexer.IDENTIFIER = 302;
SqlBaseLexer.BACKQUOTED_IDENTIFIER = 303;
SqlBaseLexer.DOUBLEQUOTED_IDENTIFIER = 304;
SqlBaseLexer.SIMPLE_COMMENT = 305;
SqlBaseLexer.BRACKETED_COMMENT = 306;
SqlBaseLexer.WS = 307;
SqlBaseLexer.UNRECOGNIZED = 308;
// tslint:disable:no-trailing-whitespace
SqlBaseLexer.channelNames = ["DEFAULT_TOKEN_CHANNEL", "HIDDEN"];
// tslint:disable:no-trailing-whitespace
SqlBaseLexer.modeNames = ["DEFAULT_MODE"];
SqlBaseLexer.ruleNames = [
"T__0",
"T__1",
"T__2",
"T__3",
"T__4",
"T__5",
"T__6",
"T__7",
"T__8",
"T__9",
"T__10",
"T__11",
"T__12",
"T__13",
"T__14",
"ADD",
"AFTER",
"ALL",
"ALTER",
"ANALYZE",
"AND",
"ANTI",
"ANY",
"ARCHIVE",
"ARRAY",
"AS",
"ASC",
"AT",
"AUTHORIZATION",
"BETWEEN",
"BOTH",
"BUCKET",
"BUCKETS",
"BY",
"CACHE",
"CASCADE",
"CASE",
"CAST",
"CHANGE",
"CHECK",
"CLEAR",
"CLUSTER",
"CLUSTERED",
"CODEGEN",
"COLLATE",
"COLLECTION",
"COLUMN",
"COLUMNS",
"COMMENT",
"COMMIT",
"COMPACT",
"COMPACTIONS",
"COMPUTE",
"CONCATENATE",
"CONSTRAINT",
"COST",
"CREATE",
"CROSS",
"CUBE",
"CURRENT",
"CURRENT_DATE",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
"DAY",
"DATA",
"DATABASE",
"DATABASES",
"DBPROPERTIES",
"DEFINED",
"DELETE",
"DELIMITED",
"DESC",
"DESCRIBE",
"DFS",
"DIRECTORIES",
"DIRECTORY",
"DISTINCT",
"DISTRIBUTE",
"DIV",
"DROP",
"ELSE",
"END",
"ESCAPE",
"ESCAPED",
"EXCEPT",
"EXCHANGE",
"EXISTS",
"EXPLAIN",
"EXPORT",
"EXTENDED",
"EXTERNAL",
"EXTRACT",
"FALSE",
"FETCH",
"FIELDS",
"FILTER",
"FILEFORMAT",
"FIRST",
"FOLLOWING",
"FOR",
"FOREIGN",
"FORMAT",
"FORMATTED",
"FROM",
"FULL",
"FUNCTION",
"FUNCTIONS",
"GLOBAL",
"GRANT",
"GROUP",
"GROUPING",
"HAVING",
"HOUR",
"IF",
"IGNORE",
"IMPORT",
"IN",
"INDEX",
"INDEXES",
"INNER",
"INPATH",
"INPUTFORMAT",
"INSERT",
"INTERSECT",
"INTERVAL",
"INTO",
"IS",
"ITEMS",
"JOIN",
"KEYS",
"LAST",
"LATERAL",
"LAZY",
"LEADING",
"LEFT",
"LIKE",
"LIMIT",
"LINES",
"LIST",
"LOAD",
"LOCAL",
"LOCATION",
"LOCK",
"LOCKS",
"LOGICAL",
"MACRO",
"MAP",
"MATCHED",
"MERGE",
"MINUTE",
"MONTH",
"MSCK",
"NAMESPACE",
"NAMESPACES",
"NATURAL",
"NO",
"NOT",
"NULL",
"NULLS",
"OF",
"ON",
"ONLY",
"OPTION",
"OPTIONS",
"OR",
"ORDER",
"OUT",
"OUTER",
"OUTPUTFORMAT",
"OVER",
"OVERLAPS",
"OVERLAY",
"OVERWRITE",
"PARTITION",
"PARTITIONED",
"PARTITIONS",
"PERCENTLIT",
"PIVOT",
"PLACING",
"POSITION",
"PRECEDING",
"PRIMARY",
"PRINCIPALS",
"PROPERTIES",
"PURGE",
"QUERY",
"RANGE",
"RECORDREADER",
"RECORDWRITER",
"RECOVER",
"REDUCE",
"REFERENCES",
"REFRESH",
"RENAME",
"REPAIR",
"REPLACE",
"RESET",
"RESPECT",
"RESTRICT",
"REVOKE",
"RIGHT",
"RLIKE",
"ROLE",
"ROLES",
"ROLLBACK",
"ROLLUP",
"ROW",
"ROWS",
"SECOND",
"SCHEMA",
"SELECT",
"SEMI",
"SEPARATED",
"SERDE",
"SERDEPROPERTIES",
"SESSION_USER",
"SET",
"SETMINUS",
"SETS",
"SHOW",
"SKEWED",
"SOME",
"SORT",
"SORTED",
"START",
"STATISTICS",
"STORED",
"STRATIFY",
"STRUCT",
"SUBSTR",
"SUBSTRING",
"SYNC",
"TABLE",
"TABLES",
"TABLESAMPLE",
"TBLPROPERTIES",
"TEMPORARY",
"TERMINATED",
"THEN",
"TIME",
"TO",
"TOUCH",
"TRAILING",
"TRANSACTION",
"TRANSACTIONS",
"TRANSFORM",
"TRIM",
"TRUE",
"TRUNCATE",
"TRY_CAST",
"TYPE",
"UNARCHIVE",
"UNBOUNDED",
"UNCACHE",
"UNION",
"UNIQUE",
"UNKNOWN",
"UNLOCK",
"UNSET",
"UPDATE",
"USE",
"USER",
"USING",
"VALUES",
"VIEW",
"VIEWS",
"WHEN",
"WHERE",
"WINDOW",
"WITH",
"YEAR",
"ZONE",
"EQ",
"NSEQ",
"NEQ",
"NEQJ",
"LT",
"LTE",
"GT",
"GTE",
"PLUS",
"MINUS",
"ASTERISK",
"SLASH",
"PERCENT",
"TILDE",
"AMPERSAND",
"PIPE",
"CONCAT_PIPE",
"HAT",
"STRING",
"BIGINT_LITERAL",
"SMALLINT_LITERAL",
"TINYINT_LITERAL",
"INTEGER_VALUE",
"EXPONENT_VALUE",
"DECIMAL_VALUE",
"FLOAT_LITERAL",
"DOUBLE_LITERAL",
"BIGDECIMAL_LITERAL",
"IDENTIFIER",
"BACKQUOTED_IDENTIFIER",
"DOUBLEQUOTED_IDENTIFIER",
"DECIMAL_DIGITS",
"EXPONENT",
"DIGIT",
"LETTER",
"SIMPLE_COMMENT",
"BRACKETED_COMMENT",
"WS",
"UNRECOGNIZED"
];
SqlBaseLexer._LITERAL_NAMES = [
undefined,
"';'",
"'('",
"')'",
"','",
"'.'",
"'/*+'",
"'*/'",
"'->'",
"'['",
"']'",
"'::'",
"'->>'",
"'#>'",
"'#>>'",
"':'",
"'ADD'",
"'AFTER'",
"'ALL'",
"'ALTER'",
"'ANALYZE'",
"'AND'",
"'ANTI'",
"'ANY'",
"'ARCHIVE'",
"'ARRAY'",
"'AS'",
"'ASC'",
"'AT'",
"'AUTHORIZATION'",
"'BETWEEN'",
"'BOTH'",
"'BUCKET'",
"'BUCKETS'",
"'BY'",
"'CACHE'",
"'CASCADE'",
"'CASE'",
"'CAST'",
"'CHANGE'",
"'CHECK'",
"'CLEAR'",
"'CLUSTER'",
"'CLUSTERED'",
"'CODEGEN'",
"'COLLATE'",
"'COLLECTION'",
"'COLUMN'",
"'COLUMNS'",
"'COMMENT'",
"'COMMIT'",
"'COMPACT'",
"'COMPACTIONS'",
"'COMPUTE'",
"'CONCATENATE'",
"'CONSTRAINT'",
"'COST'",
"'CREATE'",
"'CROSS'",
"'CUBE'",
"'CURRENT'",
"'CURRENT_DATE'",
"'CURRENT_TIME'",
"'CURRENT_TIMESTAMP'",
"'CURRENT_USER'",
"'DAY'",
"'DATA'",
"'DATABASE'",
undefined,
"'DBPROPERTIES'",
"'DEFINED'",
"'DELETE'",
"'DELIMITED'",
"'DESC'",
"'DESCRIBE'",
"'DFS'",
"'DIRECTORIES'",
"'DIRECTORY'",
"'DISTINCT'",
"'DISTRIBUTE'",
"'DIV'",
"'DROP'",
"'ELSE'",
"'END'",
"'ESCAPE'",
"'ESCAPED'",
"'EXCEPT'",
"'EXCHANGE'",
"'EXISTS'",
"'EXPLAIN'",
"'EXPORT'",
"'EXTENDED'",
"'EXTERNAL'",
"'EXTRACT'",
"'FALSE'",
"'FETCH'",
"'FIELDS'",
"'FILTER'",
"'FILEFORMAT'",
"'FIRST'",
"'FOLLOWING'",
"'FOR'",
"'FOREIGN'",
"'FORMAT'",
"'FORMATTED'",
"'FROM'",
"'FULL'",
"'FUNCTION'",
"'FUNCTIONS'",
"'GLOBAL'",
"'GRANT'",
"'GROUP'",
"'GROUPING'",
"'HAVING'",
"'HOUR'",
"'IF'",
"'IGNORE'",
"'IMPORT'",
"'IN'",
"'INDEX'",
"'INDEXES'",
"'INNER'",
"'INPATH'",
"'INPUTFORMAT'",
"'INSERT'",
"'INTERSECT'",
"'INTERVAL'",
"'INTO'",
"'IS'",
"'ITEMS'",
"'JOIN'",
"'KEYS'",
"'LAST'",
"'LATERAL'",
"'LAZY'",
"'LEADING'",
"'LEFT'",
"'LIKE'",
"'LIMIT'",
"'LINES'",
"'LIST'",
"'LOAD'",
"'LOCAL'",
"'LOCATION'",
"'LOCK'",
"'LOCKS'",
"'LOGICAL'",
"'MACRO'",
"'MAP'",
"'MATCHED'",
"'MERGE'",
"'MINUTE'",
"'MONTH'",
"'MSCK'",
"'NAMESPACE'",
"'NAMESPACES'",
"'NATURAL'",
"'NO'",
undefined,
"'NULL'",
"'NULLS'",
"'OF'",
"'ON'",
"'ONLY'",
"'OPTION'",
"'OPTIONS'",
"'OR'",
"'ORDER'",
"'OUT'",
"'OUTER'",
"'OUTPUTFORMAT'",
"'OVER'",
"'OVERLAPS'",
"'OVERLAY'",
"'OVERWRITE'",
"'PARTITION'",
"'PARTITIONED'",
"'PARTITIONS'",
"'PERCENT'",
"'PIVOT'",
"'PLACING'",
"'POSITION'",
"'PRECEDING'",
"'PRIMARY'",
"'PRINCIPALS'",
"'PROPERTIES'",
"'PURGE'",
"'QUERY'",
"'RANGE'",
"'RECORDREADER'",
"'RECORDWRITER'",
"'RECOVER'",
"'REDUCE'",
"'REFERENCES'",
"'REFRESH'",
"'RENAME'",
"'REPAIR'",
"'REPLACE'",
"'RESET'",
"'RESPECT'",
"'RESTRICT'",
"'REVOKE'",
"'RIGHT'",
undefined,
"'ROLE'",
"'ROLES'",
"'ROLLBACK'",
"'ROLLUP'",
"'ROW'",
"'ROWS'",
"'SECOND'",
"'SCHEMA'",
"'SELECT'",
"'SEMI'",
"'SEPARATED'",
"'SERDE'",
"'SERDEPROPERTIES'",
"'SESSION_USER'",
"'SET'",
"'MINUS'",
"'SETS'",
"'SHOW'",
"'SKEWED'",
"'SOME'",
"'SORT'",
"'SORTED'",
"'START'",
"'STATISTICS'",
"'STORED'",
"'STRATIFY'",
"'STRUCT'",
"'SUBSTR'",
"'SUBSTRING'",
"'SYNC'",
"'TABLE'",
"'TABLES'",
"'TABLESAMPLE'",
"'TBLPROPERTIES'",
undefined,
"'TERMINATED'",
"'THEN'",
"'TIME'",
"'TO'",
"'TOUCH'",
"'TRAILING'",
"'TRANSACTION'",
"'TRANSACTIONS'",
"'TRANSFORM'",
"'TRIM'",
"'TRUE'",
"'TRUNCATE'",
"'TRY_CAST'",
"'TYPE'",
"'UNARCHIVE'",
"'UNBOUNDED'",
"'UNCACHE'",
"'UNION'",
"'UNIQUE'",
"'UNKNOWN'",
"'UNLOCK'",
"'UNSET'",
"'UPDATE'",
"'USE'",
"'USER'",
"'USING'",
"'VALUES'",
"'VIEW'",
"'VIEWS'",
"'WHEN'",
"'WHERE'",
"'WINDOW'",
"'WITH'",
"'YEAR'",
"'ZONE'",
undefined,
"'<=>'",
"'<>'",
"'!='",
"'<'",
undefined,
"'>'",
undefined,
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
"'~'",
"'&'",
"'|'",
"'||'",
"'^'"
];
SqlBaseLexer._SYMBOLIC_NAMES = [
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
"ADD",
"AFTER",
"ALL",
"ALTER",
"ANALYZE",
"AND",
"ANTI",
"ANY",
"ARCHIVE",
"ARRAY",
"AS",
"ASC",
"AT",
"AUTHORIZATION",
"BETWEEN",
"BOTH",
"BUCKET",
"BUCKETS",
"BY",
"CACHE",
"CASCADE",
"CASE",
"CAST",
"CHANGE",
"CHECK",
"CLEAR",
"CLUSTER",
"CLUSTERED",
"CODEGEN",
"COLLATE",
"COLLECTION",
"COLUMN",
"COLUMNS",
"COMMENT",
"COMMIT",
"COMPACT",
"COMPACTIONS",
"COMPUTE",
"CONCATENATE",
"CONSTRAINT",
"COST",
"CREATE",
"CROSS",
"CUBE",
"CURRENT",
"CURRENT_DATE",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
"DAY",
"DATA",
"DATABASE",
"DATABASES",
"DBPROPERTIES",
"DEFINED",
"DELETE",
"DELIMITED",
"DESC",
"DESCRIBE",
"DFS",
"DIRECTORIES",
"DIRECTORY",
"DISTINCT",
"DISTRIBUTE",
"DIV",
"DROP",
"ELSE",
"END",
"ESCAPE",
"ESCAPED",
"EXCEPT",
"EXCHANGE",
"EXISTS",
"EXPLAIN",
"EXPORT",
"EXTENDED",
"EXTERNAL",
"EXTRACT",
"FALSE",
"FETCH",
"FIELDS",
"FILTER",
"FILEFORMAT",
"FIRST",
"FOLLOWING",
"FOR",
"FOREIGN",
"FORMAT",
"FORMATTED",
"FROM",
"FULL",
"FUNCTION",
"FUNCTIONS",
"GLOBAL",
"GRANT",
"GROUP",
"GROUPING",
"HAVING",
"HOUR",
"IF",
"IGNORE",
"IMPORT",
"IN",
"INDEX",
"INDEXES",
"INNER",
"INPATH",
"INPUTFORMAT",
"INSERT",
"INTERSECT",
"INTERVAL",
"INTO",
"IS",
"ITEMS",
"JOIN",
"KEYS",
"LAST",
"LATERAL",
"LAZY",
"LEADING",
"LEFT",
"LIKE",
"LIMIT",
"LINES",
"LIST",
"LOAD",
"LOCAL",
"LOCATION",
"LOCK",
"LOCKS",
"LOGICAL",
"MACRO",
"MAP",
"MATCHED",
"MERGE",
"MINUTE",
"MONTH",
"MSCK",
"NAMESPACE",
"NAMESPACES",
"NATURAL",
"NO",
"NOT",
"NULL",
"NULLS",
"OF",
"ON",
"ONLY",
"OPTION",
"OPTIONS",
"OR",
"ORDER",
"OUT",
"OUTER",
"OUTPUTFORMAT",
"OVER",
"OVERLAPS",
"OVERLAY",
"OVERWRITE",
"PARTITION",
"PARTITIONED",
"PARTITIONS",
"PERCENTLIT",
"PIVOT",
"PLACING",
"POSITION",
"PRECEDING",
"PRIMARY",
"PRINCIPALS",
"PROPERTIES",
"PURGE",
"QUERY",
"RANGE",
"RECORDREADER",
"RECORDWRITER",
"RECOVER",
"REDUCE",
"REFERENCES",
"REFRESH",
"RENAME",
"REPAIR",
"REPLACE",
"RESET",
"RESPECT",
"RESTRICT",
"REVOKE",
"RIGHT",
"RLIKE",
"ROLE",
"ROLES",
"ROLLBACK",
"ROLLUP",
"ROW",
"ROWS",
"SECOND",
"SCHEMA",
"SELECT",
"SEMI",
"SEPARATED",
"SERDE",
"SERDEPROPERTIES",
"SESSION_USER",
"SET",
"SETMINUS",
"SETS",
"SHOW",
"SKEWED",
"SOME",
"SORT",
"SORTED",
"START",
"STATISTICS",
"STORED",
"STRATIFY",
"STRUCT",
"SUBSTR",
"SUBSTRING",
"SYNC",
"TABLE",
"TABLES",
"TABLESAMPLE",
"TBLPROPERTIES",
"TEMPORARY",
"TERMINATED",
"THEN",
"TIME",
"TO",
"TOUCH",
"TRAILING",
"TRANSACTION",
"TRANSACTIONS",
"TRANSFORM",
"TRIM",
"TRUE",
"TRUNCATE",
"TRY_CAST",
"TYPE",
"UNARCHIVE",
"UNBOUNDED",
"UNCACHE",
"UNION",
"UNIQUE",
"UNKNOWN",
"UNLOCK",
"UNSET",
"UPDATE",
"USE",
"USER",
"USING",
"VALUES",
"VIEW",
"VIEWS",
"WHEN",
"WHERE",
"WINDOW",
"WITH",
"YEAR",
"ZONE",
"EQ",
"NSEQ",
"NEQ",
"NEQJ",
"LT",
"LTE",
"GT",
"GTE",
"PLUS",
"MINUS",
"ASTERISK",
"SLASH",
"PERCENT",
"TILDE",
"AMPERSAND",
"PIPE",
"CONCAT_PIPE",
"HAT",
"STRING",
"BIGINT_LITERAL",
"SMALLINT_LITERAL",
"TINYINT_LITERAL",
"INTEGER_VALUE",
"EXPONENT_VALUE",
"DECIMAL_VALUE",
"FLOAT_LITERAL",
"DOUBLE_LITERAL",
"BIGDECIMAL_LITERAL",
"IDENTIFIER",
"BACKQUOTED_IDENTIFIER",
"DOUBLEQUOTED_IDENTIFIER",
"SIMPLE_COMMENT",
"BRACKETED_COMMENT",
"WS",
"UNRECOGNIZED"
];
SqlBaseLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(SqlBaseLexer._LITERAL_NAMES, SqlBaseLexer._SYMBOLIC_NAMES, []);
SqlBaseLexer._serializedATNSegments = 5;
SqlBaseLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\u0136\u0B1B\b" +
"\x01\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t" +
"\x06\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04" +
"\r\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12" +
"\t\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17" +
"\t\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C" +
'\t\x1C\x04\x1D\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04"' +
"\t\"\x04#\t#\x04$\t$\x04%\t%\x04&\t&\x04'\t'\x04(\t(\x04)\t)\x04*\t" +
"*\x04+\t+\x04,\t,\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x04" +
"3\t3\x044\t4\x045\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04" +
"<\t<\x04=\t=\x04>\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04" +
"E\tE\x04F\tF\x04G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04" +
"N\tN\x04O\tO\x04P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04" +
"W\tW\x04X\tX\x04Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t" +
"_\x04`\t`\x04a\ta\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04" +
"h\th\x04i\ti\x04j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04" +
"q\tq\x04r\tr\x04s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04" +
"z\tz\x04{\t{\x04|\t|\x04}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81" +
"\t\x81\x04\x82\t\x82\x04\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86" +
"\t\x86\x04\x87\t\x87\x04\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B" +
"\t\x8B\x04\x8C\t\x8C\x04\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90" +
"\t\x90\x04\x91\t\x91\x04\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95" +
"\t\x95\x04\x96\t\x96\x04\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A" +
"\t\x9A\x04\x9B\t\x9B\x04\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F" +
"\t\x9F\x04\xA0\t\xA0\x04\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4" +
"\t\xA4\x04\xA5\t\xA5\x04\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9" +
"\t\xA9\x04\xAA\t\xAA\x04\xAB\t\xAB\x04\xAC\t\xAC\x04\xAD\t\xAD\x04\xAE" +
"\t\xAE\x04\xAF\t\xAF\x04\xB0\t\xB0\x04\xB1\t\xB1\x04\xB2\t\xB2\x04\xB3" +
"\t\xB3\x04\xB4\t\xB4\x04\xB5\t\xB5\x04\xB6\t\xB6\x04\xB7\t\xB7\x04\xB8" +
"\t\xB8\x04\xB9\t\xB9\x04\xBA\t\xBA\x04\xBB\t\xBB\x04\xBC\t\xBC\x04\xBD" +
"\t\xBD\x04\xBE\t\xBE\x04\xBF\t\xBF\x04\xC0\t\xC0\x04\xC1\t\xC1\x04\xC2" +
"\t\xC2\x04\xC3\t\xC3\x04\xC4\t\xC4\x04\xC5\t\xC5\x04\xC6\t\xC6\x04\xC7" +
"\t\xC7\x04\xC8\t\xC8\x04\xC9\t\xC9\x04\xCA\t\xCA\x04\xCB\t\xCB\x04\xCC" +
"\t\xCC\x04\xCD\t\xCD\x04\xCE\t\xCE\x04\xCF\t\xCF\x04\xD0\t\xD0\x04\xD1" +
"\t\xD1\x04\xD2\t\xD2\x04\xD3\t\xD3\x04\xD4\t\xD4\x04\xD5\t\xD5\x04\xD6" +
"\t\xD6\x04\xD7\t\xD7\x04\xD8\t\xD8\x04\xD9\t\xD9\x04\xDA\t\xDA\x04\xDB" +
"\t\xDB\x04\xDC\t\xDC\x04\xDD\t\xDD\x04\xDE\t\xDE\x04\xDF\t\xDF\x04\xE0" +
"\t\xE0\x04\xE1\t\xE1\x04\xE2\t\xE2\x04\xE3\t\xE3\x04\xE4\t\xE4\x04\xE5" +
"\t\xE5\x04\xE6\t\xE6\x04\xE7\t\xE7\x04\xE8\t\xE8\x04\xE9\t\xE9\x04\xEA" +
"\t\xEA\x04\xEB\t\xEB\x04\xEC\t\xEC\x04\xED\t\xED\x04\xEE\t\xEE\x04\xEF" +
"\t\xEF\x04\xF0\t\xF0\x04\xF1\t\xF1\x04\xF2\t\xF2\x04\xF3\t\xF3\x04\xF4" +
"\t\xF4\x04\xF5\t\xF5\x04\xF6\t\xF6\x04\xF7\t\xF7\x04\xF8\t\xF8\x04\xF9" +
"\t\xF9\x04\xFA\t\xFA\x04\xFB\t\xFB\x04\xFC\t\xFC\x04\xFD\t\xFD\x04\xFE" +
"\t\xFE\x04\xFF\t\xFF\x04\u0100\t\u0100\x04\u0101\t\u0101\x04\u0102\t\u0102" +
"\x04\u0103\t\u0103\x04\u0104\t\u0104\x04\u0105\t\u0105\x04\u0106\t\u0106" +
"\x04\u0107\t\u0107\x04\u0108\t\u0108\x04\u0109\t\u0109\x04\u010A\t\u010A" +
"\x04\u010B\t\u010B\x04\u010C\t\u010C\x04\u010D\t\u010D\x04\u010E\t\u010E" +
"\x04\u010F\t\u010F\x04\u0110\t\u0110\x04\u0111\t\u0111\x04\u0112\t\u0112" +
"\x04\u0113\t\u0113\x04\u0114\t\u0114\x04\u0115\t\u0115\x04\u0116\t\u0116" +
"\x04\u0117\t\u0117\x04\u0118\t\u0118\x04\u0119\t\u0119\x04\u011A\t\u011A" +
"\x04\u011B\t\u011B\x04\u011C\t\u011C\x04\u011D\t\u011D\x04\u011E\t\u011E" +
"\x04\u011F\t\u011F\x04\u0120\t\u0120\x04\u0121\t\u0121\x04\u0122\t\u0122" +
"\x04\u0123\t\u0123\x04\u0124\t\u0124\x04\u0125\t\u0125\x04\u0126\t\u0126" +
"\x04\u0127\t\u0127\x04\u0128\t\u0128\x04\u0129\t\u0129\x04\u012A\t\u012A" +
"\x04\u012B\t\u012B\x04\u012C\t\u012C\x04\u012D\t\u012D\x04\u012E\t\u012E" +
"\x04\u012F\t\u012F\x04\u0130\t\u0130\x04\u0131\t\u0131\x04\u0132\t\u0132" +
"\x04\u0133\t\u0133\x04\u0134\t\u0134\x04\u0135\t\u0135\x04\u0136\t\u0136" +
"\x04\u0137\t\u0137\x04\u0138\t\u0138\x04\u0139\t\u0139\x03\x02\x03\x02" +
"\x03\x03\x03\x03\x03\x04\x03\x04\x03\x05\x03\x05\x03\x06\x03\x06\x03\x07" +
"\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\n\x03" +
"\n\x03\v\x03\v\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E" +
"\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x11\x03\x11" +
"\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13" +
"\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14\x03\x14" +
"\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x16" +
"\x03\x16\x03\x16\x03\x16\x03\x17\x03\x17\x03\x17\x03\x17\x03\x17\x03\x18" +
"\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19\x03\x19" +
"\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B" +
"\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D" +
"\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E" +
"\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F" +
"\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x03 \x03 \x03 \x03 \x03 \x03!\x03!\x03" +
'!\x03!\x03!\x03!\x03!\x03"\x03"\x03"\x03"\x03"\x03"\x03"\x03"' +
"\x03#\x03#\x03#\x03$\x03$\x03$\x03$\x03$\x03$\x03%\x03%\x03%\x03%\x03" +
"%\x03%\x03%\x03%\x03&\x03&\x03&\x03&\x03&\x03'\x03'\x03'\x03'\x03" +
"'\x03(\x03(\x03(\x03(\x03(\x03(\x03(\x03)\x03)\x03)\x03)\x03)\x03)\x03" +
"*\x03*\x03*\x03*\x03*\x03*\x03+\x03+\x03+\x03+\x03+\x03+\x03+\x03+\x03" +
",\x03,\x03,\x03,\x03,\x03,\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03" +
"-\x03-\x03-\x03-\x03.\x03.\x03.\x03.\x03.\x03.\x03.\x03.\x03/\x03/\x03" +
"/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x03/\x030\x030\x030\x030\x030\x03" +
"0\x030\x031\x031\x031\x031\x031\x031\x031\x031\x032\x032\x032\x032\x03" +
"2\x032\x032\x032\x033\x033\x033\x033\x033\x033\x033\x034\x034\x034\x03" +
"4\x034\x034\x034\x034\x035\x035\x035\x035\x035\x035\x035\x035\x035\x03" +
"5\x035\x035\x036\x036\x036\x036\x036\x036\x036\x036\x037\x037\x037\x03" +
"7\x037\x037\x037\x037\x037\x037\x037\x037\x038\x038\x038\x038\x038\x03" +
"8\x038\x038\x038\x038\x038\x039\x039\x039\x039\x039\x03:\x03:\x03:\x03" +
":\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03<\x03<\x03" +
"<\x03=\x03=\x03=\x03=\x03=\x03=\x03=\x03=\x03>\x03>\x03>\x03>\x03>\x03" +
">\x03>\x03>\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03?\x03?\x03?\x03?\x03" +
"?\x03?\x03?\x03?\x03?\x03?\x03?\x03@\x03@\x03@\x03@\x03@\x03@\x03@\x03" +
"@\x03@\x03@\x03@\x03@\x03@\x03@\x03@\x03@\x03@\x03@\x03A\x03A\x03A\x03" +
"A\x03A\x03A\x03A\x03A\x03A\x03A\x03A\x03A\x03A\x03B\x03B\x03B\x03B\x03" +
"C\x03C\x03C\x03C\x03C\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03" +
"E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03E\x03" +
"E\x03E\x05E\u042D\nE\x03F\x03F\x03F\x03F\x03F\x03F\x03F\x03F\x03F\x03" +
"F\x03F\x03F\x03F\x03G\x03G\x03G\x03G\x03G\x03G\x03G\x03G\x03H\x03H\x03" +
"H\x03H\x03H\x03H\x03H\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03" +
"I\x03J\x03J\x03J\x03J\x03J\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03" +
"K\x03L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03M\x03" +
"M\x03M\x03M\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03O\x03" +
"O\x03O\x03O\x03O\x03O\x03O\x03O\x03O\x03P\x03P\x03P\x03P\x03P\x03P\x03" +
"P\x03P\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03R\x03" +
"S\x03S\x03S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03U\x03" +
"U\x03U\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03V\x03W\x03W\x03W\x03W\x03" +
"W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03Y\x03Y\x03" +
"Y\x03Y\x03Y\x03Y\x03Y\x03Z\x03Z\x03Z\x03Z\x03Z\x03Z\x03Z\x03Z\x03[\x03" +
"[\x03[\x03[\x03[\x03[\x03[\x03\\\x03\\\x03\\\x03\\\x03\\\x03\\\x03\\\x03" +
"\\\x03\\\x03]\x03]\x03]\x03]\x03]\x03]\x03]\x03]\x03]\x03^\x03^\x03^\x03" +
"^\x03^\x03^\x03^\x03^\x03_\x03_\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03" +
"`\x03`\x03`\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03b\x03b\x03b\x03b\x03" +
"b\x03b\x03b\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03" +
"d\x03d\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03" +
"e\x03e\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03g\x03" +
"h\x03h\x03h\x03h\x03h\x03h\x03h\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x03" +
"i\x03i\x03i\x03j\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03k\x03l\x03" +
"l\x03l\x03l\x03l\x03l\x03l\x03l\x03l\x03m\x03m\x03m\x03m\x03m\x03m\x03" +
"m\x03m\x03m\x03m\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03o\x03o\x03o\x03" +
"o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x03p\x03q\x03q\x03q\x03q\x03q\x03" +
"q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03s\x03s\x03s\x03" +
"s\x03s\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03v\x03v\x03" +
"v\x03v\x03v\x03v\x03v\x03w\x03w\x03w\x03x\x03x\x03x\x03x\x03x\x03x\x03" +
"y\x03y\x03y\x03y\x03y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03z\x03z\x03" +
"{\x03{\x03{\x03{\x03{\x03{\x03{\x03|\x03|\x03|\x03|\x03|\x03|\x03|\x03" +
"|\x03|\x03|\x03|\x03|\x03}\x03}\x03}\x03}\x03}\x03}\x03}\x03~\x03~\x03" +
"~\x03~\x03~\x03~\x03~\x03~\x03~\x03~\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03" +
"\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03" +
"\x80\x03\x81\x03\x81\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x82\x03" +
"\x82\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x84\x03\x84\x03\x84\x03" +
"\x84\x03\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86\x03\x86\x03" +
"\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03" +
"\x87\x03\x87\x03\x88\x03\x88\x03\x88\x03\x88\x03\x88\x03\x88\x03\x88\x03" +
"\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x89\x03\x8A\x03\x8A\x03\x8A\x03" +
"\x8A\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8C\x03" +
"\x8C\x03\x8C\x03\x8C\x03\x8C\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03" +
"\x8D\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F\x03\x8F\x03" +
"\x8F\x03\x8F\x03\x8F\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03\x90\x03" +
"\x90\x03\x90\x03\x90\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x92\x03" +
"\x92\x03\x92\x03\x92\x03\x92\x03\x92\x03\x93\x03\x93\x03\x93\x03\x93\x03" +
"\x93\x03\x93\x03\x93\x03\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x94\x03" +
"\x94\x03\x95\x03\x95\x03\x95\x03\x95\x03\x96\x03\x96\x03\x96\x03\x96\x03" +
"\x96\x03\x96\x03\x96\x03\x96\x03\x97\x03\x97\x03\x97\x03\x97\x03\x97\x03" +
"\x97\x03\x98\x03\x98\x03\x98\x03\x98\x03\x98\x03\x98\x03\x98\x03\x99\x03" +
"\x99\x03\x99\x03\x99\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9A\x03\x9A\x03" +
"\x9A\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03\x9B\x03" +
"\x9B\x03\x9B\x03\x9C\x03\x9C\x03\x9C\x03\x9C\x03\x9C\x03\x9C\x03\x9C\x03" +
"\x9C\x03\x9C\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03\x9D\x03" +
"\x9D\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03\x9E\x03\x9F\x03\x9F\x03\x9F\x03" +
"\x9F\x05\x9F\u06A0\n\x9F\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA0\x03\xA1" +
"\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA2\x03\xA3" +
"\x03\xA3\x03\xA3\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA4\x03\xA5\x03\xA5" +
"\x03\xA5\x03\xA5\x03\xA5\x03\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA6\x03\xA6" +
"\x03\xA6\x03\xA6\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03\xA7\x03\xA8\x03\xA8" +
"\x03\xA8\x03\xA8\x03\xA8\x03\xA8\x03\xA9\x03\xA9\x03\xA9\x03\xA9\x03\xAA" +
"\x03\xAA\x03\xAA\x03\xAA\x03\xAA\x03\xAA\x03\xAB\x03\xAB\x03\xAB\x03\xAB" +
"\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x03\xAB\x03\xAB" +
"\x03\xAC\x03\xAC\x03\xAC\x03\xAC\x03\xAC\x03\xAD\x03\xAD\x03\xAD\x03\xAD" +
"\x03\xAD\x03\xAD\x03\xAD\x03\xAD\x03\xAD\x03\xAE\x03\xAE\x03\xAE\x03\xAE" +
"\x03\xAE\x03\xAE\x03\xAE\x03\xAE\x03\xAF\x03\xAF\x03\xAF\x03\xAF\x03\xAF" +
"\x03\xAF\x03\xAF\x03\xAF\x03\xAF\x03\xAF\x03\xB0\x03\xB0\x03\xB0\x03\xB0" +
"\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB0\x03\xB1\x03\xB1\x03\xB1" +
"\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1\x03\xB1" +
"\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2\x03\xB2" +
"\x03\xB2\x03\xB2\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x03\xB3\x03\xB3" +
"\x03\xB3\x03\xB4\x03\xB4\x03\xB4\x03\xB4\x03\xB4\x03\xB4\x03\xB5\x03\xB5" +
"\x03\xB5\x03\xB5\x03\xB5\x03\xB5\x03\xB5\x03\xB5\x03\xB6\x03\xB6\x03\xB6" +
"\x03\xB6\x03\xB6\x03\xB6\x03\xB6\x03\xB6\x03\xB6\x03\xB7\x03\xB7\x03\xB7" +
"\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03\xB7\x03\xB8\x03\xB8" +
"\x03\xB8\x03\xB8\x03\xB8\x03\xB8\x03\xB8\x03\xB8\x03\xB9\x03\xB9\x03\xB9" +
"\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xB9\x03\xBA" +
"\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA\x03\xBA" +
"\x03\xBA\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBB\x03\xBC\x03\xBC" +
"\x03\xBC\x03\xBC\x03\xBC\x03\xBC\x03\xBD\x03\xBD\x03\xBD\x03\xBD\x03\xBD" +
"\x03\xBD\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE" +
"\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBE\x03\xBF\x03\xBF\x03\xBF\x03\xBF" +
"\x03\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF\x03\xBF" +
"\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC0\x03\xC1" +
"\x03\xC1\x03\xC1\x03\xC1\x03\xC1\x03\xC1\x03\xC1\x03\xC2\x03\xC2\x03\xC2" +
"\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC2\x03\xC3" +
"\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC3\x03\xC4\x03\xC4" +
"\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC4\x03\xC5\x03\xC5\x03\xC5\x03\xC5" +
"\x03\xC5\x03\xC5\x03\xC5\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6\x03\xC6" +
"\x03\xC6\x03\xC6\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC7\x03\xC8" +
"\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC8\x03\xC9\x03\xC9" +
"\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xC9\x03\xCA\x03\xCA" +
"\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCA\x03\xCB\x03\xCB\x03\xCB\x03\xCB" +
"\x03\xCB\x03\xCB\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x03\xCC" +
"\x03\xCC\x03\xCC\x03\xCC\x03\xCC\x05\xCC\u0802\n\xCC\x03\xCD\x03\xCD\x03" +
"\xCD\x03\xCD\x03\xCD\x03\xCE\x03\xCE\x03\xCE\x03\xCE\x03\xCE\x03\xCE\x03" +
"\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03\xCF\x03" +
"\xD0\x03\xD0\x03\xD0\x03\xD0\x03\xD0\x03\xD0\x03\xD0\x03\xD1\x03\xD1\x03" +
"\xD1\x03\xD1\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD2\x03\xD3\x03\xD3\x03" +
"\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD3\x03\xD4\x03\xD4\x03\xD4\x03\xD4\x03" +
"\xD4\x03\xD4\x03\xD4\x03\xD5\x03\xD5\x03\xD5\x03\xD5\x03\xD5\x03\xD5\x03" +
"\xD5\x03\xD6\x03\xD6\x03\xD6\x03\xD6\x03\xD6\x03\xD7\x03\xD7\x03\xD7\x03" +
"\xD7\x03\xD7\x03\xD7\x03\xD7\x03\xD7\x03\xD7\x03\xD7\x03\xD8\x03\xD8\x03" +
"\xD8\x03\xD8\x03\xD8\x03\xD8\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03" +
"\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03\xD9\x03" +
"\xD9\x03\xD9\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03" +
"\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDA\x03\xDB\x03\xDB\x03\xDB\x03" +
"\xDB\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x03\xDC\x03\xDD\x03\xDD\x03" +
"\xDD\x03\xDD\x03\xDD\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDE\x03\xDF\x03" +
"\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xDF\x03\xE0\x03\xE0\x03\xE0\x03" +
"\xE0\x03\xE0\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE1\x03\xE2\x03\xE2\x03" +
"\xE2\x03\xE2\x03\xE2\x03\xE2\x03\xE2\x03\xE3\x03\xE3\x03\xE3\x03\xE3\x03" +
"\xE3\x03\xE3\x03\xE4\x03\xE4\x03\xE4\x03\xE4\x03\xE4\x03\xE4\x03\xE4\x03" +
"\xE4\x03\xE4\x03\xE4\x03\xE4\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03\xE5\x03" +
"\xE5\x03\xE5\x03\xE6\x03\xE6\x03\xE6\x03\xE6\x03\xE6\x03\xE6\x03\xE6\x03" +
"\xE6\x03\xE6\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x03\xE7\x03" +
"\xE8\x03\xE8\x03\xE8\x03\xE8\x03\xE8\x03\xE8\x03\xE8\x03\xE9\x03\xE9\x03" +
"\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xE9\x03\xEA\x03" +
"\xEA\x03\xEA\x03\xEA\x03\xEA\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03\xEB\x03" +
"\xEB\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x03\xEC\x03\xED\x03" +
"\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03\xED\x03" +
"\xED\x03\xED\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03" +
"\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEE\x03\xEF\x03\xEF\x03" +
"\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03\xEF\x03" +
"\xEF\x03\xEF\x05\xEF\u090D\n\xEF\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0" +
"\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF0\x03\xF1\x03\xF1\x03\xF1" +
"\x03\xF1\x03\xF1\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x03\xF2\x03\xF3\x03\xF3" +
"\x03\xF3\x03\xF4\x03\xF4\x03\xF4\x03\xF4\x03\xF4\x03\xF4\x03\xF5\x03\xF5" +
"\x03\xF5\x03\xF5\x03\xF5\x03\xF5\x03\xF5\x03\xF5\x03\xF5\x03\xF6\x03\xF6" +
"\x03\xF6\x03\xF6\x03\xF6\x03\xF6\x03\xF6\x03\xF6\x03\xF6\x03\xF6\x03\xF6" +
"\x03\xF6\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7" +
"\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF7\x03\xF8\x03\xF8\x03\xF8\x03\xF8" +
"\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF8\x03\xF9\x03\xF9\x03\xF9" +
"\x03\xF9\x03\xF9\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFA\x03\xFB\x03\xFB" +
"\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFB\x03\xFC\x03\xFC" +
"\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFC\x03\xFD\x03\xFD" +
"\x03\xFD\x03\xFD\x03\xFD\x03\xFE\x03\xFE\x03\xFE\x03\xFE\x03\xFE\x03\xFE" +
"\x03\xFE\x03\xFE\x03\xFE\x03\xFE\x03\xFF\x03\xFF\x03\xFF\x03\xFF\x03\xFF" +
"\x03\xFF\x03\xFF\x03\xFF\x03\xFF\x03\xFF\x03\u0100\x03\u0100\x03\u0100" +
"\x03\u0100\x03\u0100\x03\u0100\x03\u0100\x03\u0100\x03\u0101\x03\u0101" +
"\x03\u0101\x03\u0101\x03\u0101\x03\u0101\x03\u0102\x03\u0102\x03\u0102" +
"\x03\u0102\x03\u0102\x03\u0102\x03\u0102\x03\u0103\x03\u0103\x03\u0103" +
"\x03\u0103\x03\u0103\x03\u0103\x03\u0103\x03\u0103\x03\u0104\x03\u0104" +
"\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0104\x03\u0105\x03\u0105" +
"\x03\u0105\x03\u0105\x03\u0105\x03\u0105\x03\u0106\x03\u0106\x03\u0106" +
"\x03\u0106\x03\u0106\x03\u0106\x03\u0106";
SqlBaseLexer._serializedATNSegment1 = "\x03\u0107\x03\u0107\x03\u0107\x03\u0107\x03\u0108\x03\u0108\x03\u0108" +
"\x03\u0108\x03\u0108\x03\u0109\x03\u0109\x03\u0109\x03\u0109\x03\u0109" +
"\x03\u0109\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A\x03\u010A" +
"\x03\u010A\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010B\x03\u010C" +
"\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010C\x03\u010D\x03\u010D" +
"\x03\u010D\x03\u010D\x03\u010D\x03\u010E\x03\u010E\x03\u010E\x03\u010E" +
"\x03\u010E\x03\u010E\x03\u010F\x03\u010F\x03\u010F\x03\u010F\x03\u010F" +
"\x03\u010F\x03\u010F\x03\u0110\x03\u0110\x03\u0110\x03\u0110\x03\u0110" +
"\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0111\x03\u0112\x03\u0112" +
"\x03\u0112\x03\u0112\x03\u0112\x03\u0113\x03\u0113\x03\u0113\x05\u0113" +
"\u0A04\n\u0113\x03\u0114\x03\u0114\x03\u0114\x03\u0114\x03\u0115\x03\u0115" +
"\x03\u0115\x03\u0116\x03\u0116\x03\u0116\x03\u0117\x03\u0117\x03\u0118" +
"\x03\u0118\x03\u0118\x03\u0118\x05\u0118\u0A16\n\u0118\x03\u0119\x03\u0119" +
"\x03\u011A\x03\u011A\x03\u011A\x03\u011A\x05\u011A\u0A1E\n\u011A\x03\u011B" +
"\x03\u011B\x03\u011C\x03\u011C\x03\u011D\x03\u011D\x03\u011E\x03\u011E" +
"\x03\u011F\x03\u011F\x03\u0120\x03\u0120\x03\u0121\x03\u0121\x03\u0122" +
"\x03\u0122\x03\u0123\x03\u0123\x03\u0123\x03\u0124\x03\u0124\x03\u0125" +
"\x03\u0125\x03\u0125\x03\u0125\x07\u0125\u0A39\n\u0125\f\u0125\x0E\u0125" +
"\u0A3C\v\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x03\u0125\x07\u0125" +
"\u0A43\n\u0125\f\u0125\x0E\u0125\u0A46\v\u0125\x03\u0125\x03\u0125\x05" +
"\u0125\u0A4A\n\u0125\x03\u0126\x06\u0126\u0A4D\n\u0126\r\u0126\x0E\u0126" +
"\u0A4E\x03\u0126\x03\u0126\x03\u0127\x06\u0127\u0A54\n\u0127\r\u0127\x0E" +
"\u0127\u0A55\x03\u0127\x03\u0127\x03\u0128\x06\u0128\u0A5B\n\u0128\r\u0128" +
"\x0E\u0128\u0A5C\x03\u0128\x03\u0128\x03\u0129\x06\u0129\u0A62\n\u0129" +
"\r\u0129\x0E\u0129\u0A63\x03\u012A\x06\u012A\u0A67\n\u012A\r\u012A\x0E" +
"\u012A\u0A68\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A\x03\u012A" +
"\x05\u012A\u0A71\n\u012A\x03\u012B\x03\u012B\x03\u012B\x03\u012C\x06\u012C" +
"\u0A77\n\u012C\r\u012C\x0E\u012C\u0A78\x03\u012C\x05\u012C\u0A7C\n\u012C" +
"\x03\u012C\x03\u012C\x03\u012C\x03\u012C\x05\u012C\u0A82\n\u012C\