flink-sql-language-server
Version:
A LSP-based language server for Apache Flink SQL
1,023 lines • 297 kB
JavaScript
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (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.FlinkSQLLexer = 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 FlinkSQLLexer extends Lexer_1.Lexer {
constructor(input) {
super(input);
this._interp = new LexerATNSimulator_1.LexerATNSimulator(FlinkSQLLexer._ATN, this);
}
get vocabulary() {
return FlinkSQLLexer.VOCABULARY;
}
get grammarFileName() { return "FlinkSQLLexer.g4"; }
get ruleNames() { return FlinkSQLLexer.ruleNames; }
get serializedATN() { return FlinkSQLLexer._serializedATN; }
get channelNames() { return FlinkSQLLexer.channelNames; }
get modeNames() { return FlinkSQLLexer.modeNames; }
static get _ATN() {
if (!FlinkSQLLexer.__ATN) {
FlinkSQLLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(FlinkSQLLexer._serializedATN));
}
return FlinkSQLLexer.__ATN;
}
}
exports.FlinkSQLLexer = FlinkSQLLexer;
FlinkSQLLexer.SPACE = 1;
FlinkSQLLexer.BLOCK_COMMENT = 2;
FlinkSQLLexer.LINE_COMMENT = 3;
FlinkSQLLexer.L_HINT = 4;
FlinkSQLLexer.R_HINT = 5;
FlinkSQLLexer.L_BRACE_SLASH = 6;
FlinkSQLLexer.R_BRACE_SLASH = 7;
FlinkSQLLexer.STAR_QUESTION = 8;
FlinkSQLLexer.PLUS_QUESTION = 9;
FlinkSQLLexer.QUESTION_QUESTION = 10;
FlinkSQLLexer.DOUBLE_VERTICAL_BAR = 11;
FlinkSQLLexer.COMPOUND_ARROW = 12;
FlinkSQLLexer.DOT = 13;
FlinkSQLLexer.COLON = 14;
FlinkSQLLexer.COMMA = 15;
FlinkSQLLexer.SEMICOLON = 16;
FlinkSQLLexer.VERTICAL_BAR = 17;
FlinkSQLLexer.DOLLAR_SIGN = 18;
FlinkSQLLexer.CARET = 19;
FlinkSQLLexer.QUESTION = 20;
FlinkSQLLexer.PLUS = 21;
FlinkSQLLexer.SLASH = 22;
FlinkSQLLexer.ASTERISK = 23;
FlinkSQLLexer.DIVIDE = 24;
FlinkSQLLexer.PERCENTAGE = 25;
FlinkSQLLexer.SINGLE_QUOTE = 26;
FlinkSQLLexer.DOUBLE_QUOTE = 27;
FlinkSQLLexer.BACK_QUOTE = 28;
FlinkSQLLexer.UNDERLINE = 29;
FlinkSQLLexer.L_PARENTHESIS = 30;
FlinkSQLLexer.R_PARENTHESIS = 31;
FlinkSQLLexer.L_BRACKET = 32;
FlinkSQLLexer.R_BRACKET = 33;
FlinkSQLLexer.L_BRACE = 34;
FlinkSQLLexer.R_BRACE = 35;
FlinkSQLLexer.EQUAL = 36;
FlinkSQLLexer.DOUBLE_EQUAL = 37;
FlinkSQLLexer.NOT_EQUAL = 38;
FlinkSQLLexer.IS_EQUAL_NULL = 39;
FlinkSQLLexer.UNEQUAL = 40;
FlinkSQLLexer.GREATER = 41;
FlinkSQLLexer.GREATER_OR_EQUAL = 42;
FlinkSQLLexer.LESS = 43;
FlinkSQLLexer.LESS_OR_EQUAL = 44;
FlinkSQLLexer.ABS = 45;
FlinkSQLLexer.ALL = 46;
FlinkSQLLexer.ALLOCATE = 47;
FlinkSQLLexer.ALLOW = 48;
FlinkSQLLexer.ALTER = 49;
FlinkSQLLexer.AND = 50;
FlinkSQLLexer.K_ANY = 51;
FlinkSQLLexer.ARE = 52;
FlinkSQLLexer.ARGS = 53;
FlinkSQLLexer.ARRAY = 54;
FlinkSQLLexer.ARRAY_MAX_CARDINALITY = 55;
FlinkSQLLexer.AS = 56;
FlinkSQLLexer.ASENSITIVE = 57;
FlinkSQLLexer.ASYMMETRIC = 58;
FlinkSQLLexer.AT = 59;
FlinkSQLLexer.ATOMIC = 60;
FlinkSQLLexer.AUTHORIZATION = 61;
FlinkSQLLexer.AUTO = 62;
FlinkSQLLexer.AVG = 63;
FlinkSQLLexer.BEGIN = 64;
FlinkSQLLexer.BEGIN_FRAME = 65;
FlinkSQLLexer.BEGIN_PARTITION = 66;
FlinkSQLLexer.BETWEEN = 67;
FlinkSQLLexer.BIGINT = 68;
FlinkSQLLexer.BINARY = 69;
FlinkSQLLexer.BIT = 70;
FlinkSQLLexer.BLOB = 71;
FlinkSQLLexer.BOOLEAN = 72;
FlinkSQLLexer.BOTH = 73;
FlinkSQLLexer.BUCKETS = 74;
FlinkSQLLexer.BY = 75;
FlinkSQLLexer.CALL = 76;
FlinkSQLLexer.CALLED = 77;
FlinkSQLLexer.CARDINALITY = 78;
FlinkSQLLexer.CASCADED = 79;
FlinkSQLLexer.CASE = 80;
FlinkSQLLexer.CAST = 81;
FlinkSQLLexer.CEIL = 82;
FlinkSQLLexer.CEILING = 83;
FlinkSQLLexer.CHANGELOG_MODE = 84;
FlinkSQLLexer.CHAR = 85;
FlinkSQLLexer.CHARACTER = 86;
FlinkSQLLexer.CHARACTER_LENGTH = 87;
FlinkSQLLexer.CHAR_LENGTH = 88;
FlinkSQLLexer.CHECK = 89;
FlinkSQLLexer.CLASSIFIER = 90;
FlinkSQLLexer.CLOB = 91;
FlinkSQLLexer.CLOSE = 92;
FlinkSQLLexer.COALESCE = 93;
FlinkSQLLexer.COLLATE = 94;
FlinkSQLLexer.COLLECT = 95;
FlinkSQLLexer.COLUMN = 96;
FlinkSQLLexer.COMMIT = 97;
FlinkSQLLexer.CONDITION = 98;
FlinkSQLLexer.CONFIG = 99;
FlinkSQLLexer.CONNECT = 100;
FlinkSQLLexer.CONSTRAINT = 101;
FlinkSQLLexer.CONTAINS = 102;
FlinkSQLLexer.CONTINUOUS = 103;
FlinkSQLLexer.CONVERT = 104;
FlinkSQLLexer.CORR = 105;
FlinkSQLLexer.CORRESPONDING = 106;
FlinkSQLLexer.COUNT = 107;
FlinkSQLLexer.COVAR_POP = 108;
FlinkSQLLexer.COVAR_SAMP = 109;
FlinkSQLLexer.CREATE = 110;
FlinkSQLLexer.CROSS = 111;
FlinkSQLLexer.CUBE = 112;
FlinkSQLLexer.CUME_DIST = 113;
FlinkSQLLexer.CURRENT = 114;
FlinkSQLLexer.CURRENT_CATALOG = 115;
FlinkSQLLexer.CURRENT_DATE = 116;
FlinkSQLLexer.CURRENT_DEFAULT_TRANSFORM_GROUP = 117;
FlinkSQLLexer.CURRENT_PATH = 118;
FlinkSQLLexer.CURRENT_ROLE = 119;
FlinkSQLLexer.CURRENT_ROW = 120;
FlinkSQLLexer.CURRENT_SCHEMA = 121;
FlinkSQLLexer.CURRENT_TIME = 122;
FlinkSQLLexer.CURRENT_TIMESTAMP = 123;
FlinkSQLLexer.CURRENT_TRANSFORM_GROUP_FOR_TYPE = 124;
FlinkSQLLexer.CURRENT_USER = 125;
FlinkSQLLexer.CURSOR = 126;
FlinkSQLLexer.CYCLE = 127;
FlinkSQLLexer.DATE = 128;
FlinkSQLLexer.DAY = 129;
FlinkSQLLexer.DEALLOCATE = 130;
FlinkSQLLexer.DEC = 131;
FlinkSQLLexer.DECIMAL = 132;
FlinkSQLLexer.DECLARE = 133;
FlinkSQLLexer.DEFAULT = 134;
FlinkSQLLexer.DEFINE = 135;
FlinkSQLLexer.DELETE = 136;
FlinkSQLLexer.DENSE_RANK = 137;
FlinkSQLLexer.DEREF = 138;
FlinkSQLLexer.DESCRIBE = 139;
FlinkSQLLexer.DESCRIPTOR = 140;
FlinkSQLLexer.DETERMINISTIC = 141;
FlinkSQLLexer.DISALLOW = 142;
FlinkSQLLexer.DISCONNECT = 143;
FlinkSQLLexer.DISTINCT = 144;
FlinkSQLLexer.DISTRIBUTED = 145;
FlinkSQLLexer.DISTRIBUTION = 146;
FlinkSQLLexer.DOUBLE = 147;
FlinkSQLLexer.DROP = 148;
FlinkSQLLexer.DYNAMIC = 149;
FlinkSQLLexer.EACH = 150;
FlinkSQLLexer.ELEMENT = 151;
FlinkSQLLexer.ELSE = 152;
FlinkSQLLexer.EMPTY = 153;
FlinkSQLLexer.END = 154;
FlinkSQLLexer.END_EXEC = 155;
FlinkSQLLexer.END_FRAME = 156;
FlinkSQLLexer.END_PARTITION = 157;
FlinkSQLLexer.EQUALS = 158;
FlinkSQLLexer.ESCAPE = 159;
FlinkSQLLexer.ESTIMATED_COST = 160;
FlinkSQLLexer.EVERY = 161;
FlinkSQLLexer.EXCEPT = 162;
FlinkSQLLexer.EXEC = 163;
FlinkSQLLexer.EXECUTE = 164;
FlinkSQLLexer.EXISTS = 165;
FlinkSQLLexer.EXP = 166;
FlinkSQLLexer.EXPLAIN = 167;
FlinkSQLLexer.EXTEND = 168;
FlinkSQLLexer.EXTERNAL = 169;
FlinkSQLLexer.EXTRACT = 170;
FlinkSQLLexer.FALSE = 171;
FlinkSQLLexer.FETCH = 172;
FlinkSQLLexer.FILTER = 173;
FlinkSQLLexer.FIRST_VALUE = 174;
FlinkSQLLexer.FLOAT = 175;
FlinkSQLLexer.FLOOR = 176;
FlinkSQLLexer.FOR = 177;
FlinkSQLLexer.FOREIGN = 178;
FlinkSQLLexer.FRAME_ROW = 179;
FlinkSQLLexer.FREE = 180;
FlinkSQLLexer.FRESHNESS = 181;
FlinkSQLLexer.FROM = 182;
FlinkSQLLexer.FULL = 183;
FlinkSQLLexer.FUNCTION = 184;
FlinkSQLLexer.FUSION = 185;
FlinkSQLLexer.GAP = 186;
FlinkSQLLexer.GET = 187;
FlinkSQLLexer.GLOB = 188;
FlinkSQLLexer.GLOBAL = 189;
FlinkSQLLexer.GRANT = 190;
FlinkSQLLexer.GROUP = 191;
FlinkSQLLexer.GROUPING = 192;
FlinkSQLLexer.GROUPS = 193;
FlinkSQLLexer.HAVING = 194;
FlinkSQLLexer.HOLD = 195;
FlinkSQLLexer.HOUR = 196;
FlinkSQLLexer.IDENTITY = 197;
FlinkSQLLexer.IMPORT = 198;
FlinkSQLLexer.IN = 199;
FlinkSQLLexer.INDICATOR = 200;
FlinkSQLLexer.INITIAL = 201;
FlinkSQLLexer.INNER = 202;
FlinkSQLLexer.INOUT = 203;
FlinkSQLLexer.INPUT = 204;
FlinkSQLLexer.INSENSITIVE = 205;
FlinkSQLLexer.INSERT = 206;
FlinkSQLLexer.INT = 207;
FlinkSQLLexer.INTEGER = 208;
FlinkSQLLexer.INTERSECT = 209;
FlinkSQLLexer.INTERSECTION = 210;
FlinkSQLLexer.INTERVAL = 211;
FlinkSQLLexer.INTO = 212;
FlinkSQLLexer.IS = 213;
FlinkSQLLexer.JOIN = 214;
FlinkSQLLexer.JSON_ARRAY = 215;
FlinkSQLLexer.JSON_ARRAYAGG = 216;
FlinkSQLLexer.JSON_EXECUTION_PLAN = 217;
FlinkSQLLexer.JSON_EXISTS = 218;
FlinkSQLLexer.JSON_OBJECT = 219;
FlinkSQLLexer.JSON_OBJECTAGG = 220;
FlinkSQLLexer.JSON_QUERY = 221;
FlinkSQLLexer.JSON_STRING = 222;
FlinkSQLLexer.JSON_VALUE = 223;
FlinkSQLLexer.LAG = 224;
FlinkSQLLexer.LANGUAGE = 225;
FlinkSQLLexer.LARGE = 226;
FlinkSQLLexer.LAST_VALUE = 227;
FlinkSQLLexer.LATERAL = 228;
FlinkSQLLexer.LEAD = 229;
FlinkSQLLexer.LEADING = 230;
FlinkSQLLexer.LEFT = 231;
FlinkSQLLexer.LIKE = 232;
FlinkSQLLexer.LIKE_REGEX = 233;
FlinkSQLLexer.LIMIT = 234;
FlinkSQLLexer.LN = 235;
FlinkSQLLexer.LOCAL = 236;
FlinkSQLLexer.LOCALTIME = 237;
FlinkSQLLexer.LOCALTIMESTAMP = 238;
FlinkSQLLexer.LOWER = 239;
FlinkSQLLexer.MATCH = 240;
FlinkSQLLexer.MATCHES = 241;
FlinkSQLLexer.MATCH_NUMBER = 242;
FlinkSQLLexer.MATCH_RECOGNIZE = 243;
FlinkSQLLexer.MATERIALIZED = 244;
FlinkSQLLexer.MAX = 245;
FlinkSQLLexer.MEASURES = 246;
FlinkSQLLexer.MEMBER = 247;
FlinkSQLLexer.MERGE = 248;
FlinkSQLLexer.METHOD = 249;
FlinkSQLLexer.MIN = 250;
FlinkSQLLexer.MINUS = 251;
FlinkSQLLexer.MINUTE = 252;
FlinkSQLLexer.ML_EVALUATE = 253;
FlinkSQLLexer.ML_PREDICT = 254;
FlinkSQLLexer.MOD = 255;
FlinkSQLLexer.MODEL = 256;
FlinkSQLLexer.MODELS = 257;
FlinkSQLLexer.MODIFIES = 258;
FlinkSQLLexer.MODULE = 259;
FlinkSQLLexer.MONTH = 260;
FlinkSQLLexer.MULTISET = 261;
FlinkSQLLexer.NATIONAL = 262;
FlinkSQLLexer.NATURAL = 263;
FlinkSQLLexer.NCHAR = 264;
FlinkSQLLexer.NCLOB = 265;
FlinkSQLLexer.NEW = 266;
FlinkSQLLexer.NEXT = 267;
FlinkSQLLexer.NO = 268;
FlinkSQLLexer.NONE = 269;
FlinkSQLLexer.NORMALIZE = 270;
FlinkSQLLexer.NOT = 271;
FlinkSQLLexer.NTH_VALUE = 272;
FlinkSQLLexer.NTILE = 273;
FlinkSQLLexer.NULL = 274;
FlinkSQLLexer.NULLIF = 275;
FlinkSQLLexer.NUMERIC = 276;
FlinkSQLLexer.OCCURRENCES_REGEX = 277;
FlinkSQLLexer.OCTET_LENGTH = 278;
FlinkSQLLexer.OF = 279;
FlinkSQLLexer.OFFSET = 280;
FlinkSQLLexer.OLD = 281;
FlinkSQLLexer.OMIT = 282;
FlinkSQLLexer.ON = 283;
FlinkSQLLexer.ONE = 284;
FlinkSQLLexer.ONLY = 285;
FlinkSQLLexer.OPEN = 286;
FlinkSQLLexer.OPTIMIZE = 287;
FlinkSQLLexer.OR = 288;
FlinkSQLLexer.ORDER = 289;
FlinkSQLLexer.OUT = 290;
FlinkSQLLexer.OUTER = 291;
FlinkSQLLexer.OUTPUT = 292;
FlinkSQLLexer.OVER = 293;
FlinkSQLLexer.OVERLAPS = 294;
FlinkSQLLexer.OVERLAY = 295;
FlinkSQLLexer.PARAMETER = 296;
FlinkSQLLexer.PARTITION = 297;
FlinkSQLLexer.PATTERN = 298;
FlinkSQLLexer.PER = 299;
FlinkSQLLexer.PERCENT = 300;
FlinkSQLLexer.PERCENTILE_CONT = 301;
FlinkSQLLexer.PERCENTILE_DISC = 302;
FlinkSQLLexer.PERCENT_RANK = 303;
FlinkSQLLexer.PERIOD = 304;
FlinkSQLLexer.PERMUTE = 305;
FlinkSQLLexer.PORTION = 306;
FlinkSQLLexer.POSITION = 307;
FlinkSQLLexer.POSITION_REGEX = 308;
FlinkSQLLexer.POWER = 309;
FlinkSQLLexer.PRECEDES = 310;
FlinkSQLLexer.PRECISION = 311;
FlinkSQLLexer.PREPARE = 312;
FlinkSQLLexer.PREV = 313;
FlinkSQLLexer.PRIMARY = 314;
FlinkSQLLexer.PROCEDURE = 315;
FlinkSQLLexer.RANGE = 316;
FlinkSQLLexer.RANK = 317;
FlinkSQLLexer.READS = 318;
FlinkSQLLexer.REAL = 319;
FlinkSQLLexer.RECURSIVE = 320;
FlinkSQLLexer.REF = 321;
FlinkSQLLexer.REFERENCES = 322;
FlinkSQLLexer.REFERENCING = 323;
FlinkSQLLexer.REFRESH = 324;
FlinkSQLLexer.REFRESH_MODE = 325;
FlinkSQLLexer.REGR_AVGX = 326;
FlinkSQLLexer.REGR_AVGY = 327;
FlinkSQLLexer.REGR_COUNT = 328;
FlinkSQLLexer.REGR_INTERCEPT = 329;
FlinkSQLLexer.REGR_R2 = 330;
FlinkSQLLexer.REGR_SLOPE = 331;
FlinkSQLLexer.REGR_SXX = 332;
FlinkSQLLexer.REGR_SXY = 333;
FlinkSQLLexer.REGR_SYY = 334;
FlinkSQLLexer.RESET = 335;
FlinkSQLLexer.RESULT = 336;
FlinkSQLLexer.RESUME = 337;
FlinkSQLLexer.RETURN = 338;
FlinkSQLLexer.RETURNS = 339;
FlinkSQLLexer.REVOKE = 340;
FlinkSQLLexer.RIGHT = 341;
FlinkSQLLexer.ROLLBACK = 342;
FlinkSQLLexer.ROLLUP = 343;
FlinkSQLLexer.ROW = 344;
FlinkSQLLexer.ROWS = 345;
FlinkSQLLexer.ROW_NUMBER = 346;
FlinkSQLLexer.RUNNING = 347;
FlinkSQLLexer.SAVEPOINT = 348;
FlinkSQLLexer.SCOPE = 349;
FlinkSQLLexer.SCROLL = 350;
FlinkSQLLexer.SEARCH = 351;
FlinkSQLLexer.SECOND = 352;
FlinkSQLLexer.SEEK = 353;
FlinkSQLLexer.SELECT = 354;
FlinkSQLLexer.SENSITIVE = 355;
FlinkSQLLexer.SESSION_USER = 356;
FlinkSQLLexer.SET = 357;
FlinkSQLLexer.SHOW = 358;
FlinkSQLLexer.SIMILAR = 359;
FlinkSQLLexer.SKIP_W = 360;
FlinkSQLLexer.SMALLINT = 361;
FlinkSQLLexer.SOME = 362;
FlinkSQLLexer.SPECIFIC = 363;
FlinkSQLLexer.SPECIFICTYPE = 364;
FlinkSQLLexer.SQL = 365;
FlinkSQLLexer.SQLEXCEPTION = 366;
FlinkSQLLexer.SQLSTATE = 367;
FlinkSQLLexer.SQLWARNING = 368;
FlinkSQLLexer.SQRT = 369;
FlinkSQLLexer.START = 370;
FlinkSQLLexer.STATIC = 371;
FlinkSQLLexer.STDDEV_POP = 372;
FlinkSQLLexer.STDDEV_SAMP = 373;
FlinkSQLLexer.STREAM = 374;
FlinkSQLLexer.SUBMULTISET = 375;
FlinkSQLLexer.SUBSET = 376;
FlinkSQLLexer.SUBSTRING = 377;
FlinkSQLLexer.SUBSTRING_REGEX = 378;
FlinkSQLLexer.SUCCEEDS = 379;
FlinkSQLLexer.SUM = 380;
FlinkSQLLexer.SUSPEND = 381;
FlinkSQLLexer.SYMMETRIC = 382;
FlinkSQLLexer.SYSTEM = 383;
FlinkSQLLexer.SYSTEM_TIME = 384;
FlinkSQLLexer.SYSTEM_USER = 385;
FlinkSQLLexer.TABLE = 386;
FlinkSQLLexer.TABLESAMPLE = 387;
FlinkSQLLexer.THEN = 388;
FlinkSQLLexer.TIME = 389;
FlinkSQLLexer.TIMESTAMP = 390;
FlinkSQLLexer.TIMEZONE_HOUR = 391;
FlinkSQLLexer.TIMEZONE_MINUTE = 392;
FlinkSQLLexer.TINYINT = 393;
FlinkSQLLexer.TO = 394;
FlinkSQLLexer.TRAILING = 395;
FlinkSQLLexer.TRANSLATE = 396;
FlinkSQLLexer.TRANSLATE_REGEX = 397;
FlinkSQLLexer.TRANSLATION = 398;
FlinkSQLLexer.TREAT = 399;
FlinkSQLLexer.TRIGGER = 400;
FlinkSQLLexer.TRIM = 401;
FlinkSQLLexer.TRIM_ARRRAY = 402;
FlinkSQLLexer.TRUE = 403;
FlinkSQLLexer.TRUNCATE = 404;
FlinkSQLLexer.UESCAPE = 405;
FlinkSQLLexer.UNION = 406;
FlinkSQLLexer.UNIQUE = 407;
FlinkSQLLexer.UNKNOWN = 408;
FlinkSQLLexer.UNNEST = 409;
FlinkSQLLexer.UPDATE = 410;
FlinkSQLLexer.UPPER = 411;
FlinkSQLLexer.UPSERT = 412;
FlinkSQLLexer.USER = 413;
FlinkSQLLexer.USING = 414;
FlinkSQLLexer.VALUE = 415;
FlinkSQLLexer.VALUES = 416;
FlinkSQLLexer.VALUE_OF = 417;
FlinkSQLLexer.VARBINARY = 418;
FlinkSQLLexer.VARCHAR = 419;
FlinkSQLLexer.VARYING = 420;
FlinkSQLLexer.VAR_POP = 421;
FlinkSQLLexer.VAR_SAMP = 422;
FlinkSQLLexer.VERSIONING = 423;
FlinkSQLLexer.WHEN = 424;
FlinkSQLLexer.WHENEVER = 425;
FlinkSQLLexer.WHERE = 426;
FlinkSQLLexer.WIDTH_BUCKET = 427;
FlinkSQLLexer.WINDOW = 428;
FlinkSQLLexer.WITH = 429;
FlinkSQLLexer.WITHIN = 430;
FlinkSQLLexer.WITHOUT = 431;
FlinkSQLLexer.YEAR = 432;
FlinkSQLLexer.ABSENT = 433;
FlinkSQLLexer.ACTION = 434;
FlinkSQLLexer.ADD = 435;
FlinkSQLLexer.AFTER = 436;
FlinkSQLLexer.APPLY = 437;
FlinkSQLLexer.ASC = 438;
FlinkSQLLexer.CASCADE = 439;
FlinkSQLLexer.CATALOG = 440;
FlinkSQLLexer.CENTURY = 441;
FlinkSQLLexer.CONDITIONAL = 442;
FlinkSQLLexer.CONSTRAINTS = 443;
FlinkSQLLexer.DATA = 444;
FlinkSQLLexer.DATABASE = 445;
FlinkSQLLexer.DAYS = 446;
FlinkSQLLexer.DECADE = 447;
FlinkSQLLexer.DESC = 448;
FlinkSQLLexer.DOW = 449;
FlinkSQLLexer.DOY = 450;
FlinkSQLLexer.EPOCH = 451;
FlinkSQLLexer.ERROR = 452;
FlinkSQLLexer.EXCLUDING = 453;
FlinkSQLLexer.FIRST = 454;
FlinkSQLLexer.FORMAT = 455;
FlinkSQLLexer.FRAC_SECOND = 456;
FlinkSQLLexer.GENERATED = 457;
FlinkSQLLexer.GEOMETRY = 458;
FlinkSQLLexer.GO = 459;
FlinkSQLLexer.HASH = 460;
FlinkSQLLexer.HOP = 461;
FlinkSQLLexer.HOURS = 462;
FlinkSQLLexer.IGNORE = 463;
FlinkSQLLexer.INCLUDING = 464;
FlinkSQLLexer.ISODOW = 465;
FlinkSQLLexer.ISOYEAR = 466;
FlinkSQLLexer.JAVA = 467;
FlinkSQLLexer.JSON = 468;
FlinkSQLLexer.KEY = 469;
FlinkSQLLexer.LAST = 470;
FlinkSQLLexer.MAP = 471;
FlinkSQLLexer.MICROSECOND = 472;
FlinkSQLLexer.MILLENNIUM = 473;
FlinkSQLLexer.MILLISECOND = 474;
FlinkSQLLexer.MINUTES = 475;
FlinkSQLLexer.MONTHS = 476;
FlinkSQLLexer.NANOSECOND = 477;
FlinkSQLLexer.NULLS = 478;
FlinkSQLLexer.OBJECT = 479;
FlinkSQLLexer.OPTIONS = 480;
FlinkSQLLexer.ORDINALITY = 481;
FlinkSQLLexer.PARTIAL = 482;
FlinkSQLLexer.PAST = 483;
FlinkSQLLexer.PIVOT = 484;
FlinkSQLLexer.PLACING = 485;
FlinkSQLLexer.PLAN = 486;
FlinkSQLLexer.PLI = 487;
FlinkSQLLexer.PRECEDING = 488;
FlinkSQLLexer.QUARTER = 489;
FlinkSQLLexer.REPLACE = 490;
FlinkSQLLexer.RESPECT = 491;
FlinkSQLLexer.RESTRICT = 492;
FlinkSQLLexer.RETURNING = 493;
FlinkSQLLexer.SCALAR = 494;
FlinkSQLLexer.SECONDS = 495;
FlinkSQLLexer.SESSION = 496;
FlinkSQLLexer.SETS = 497;
FlinkSQLLexer.SIZE = 498;
FlinkSQLLexer.SQL_TSI_DAY = 499;
FlinkSQLLexer.SQL_TSI_FRAC_SECOND = 500;
FlinkSQLLexer.SQL_TSI_HOUR = 501;
FlinkSQLLexer.SQL_TSI_MICROSECOND = 502;
FlinkSQLLexer.SQL_TSI_MINUTE = 503;
FlinkSQLLexer.SQL_TSI_MONTH = 504;
FlinkSQLLexer.SQL_TSI_QUARTER = 505;
FlinkSQLLexer.SQL_TSI_SECOND = 506;
FlinkSQLLexer.SQL_TSI_WEEK = 507;
FlinkSQLLexer.SQL_TSI_YEAR = 508;
FlinkSQLLexer.STATEMENT = 509;
FlinkSQLLexer.TEMPORARY = 510;
FlinkSQLLexer.TUMBLE = 511;
FlinkSQLLexer.UNCONDITIONAL = 512;
FlinkSQLLexer.UNPIVOT = 513;
FlinkSQLLexer.VIEW = 514;
FlinkSQLLexer.WEEK = 515;
FlinkSQLLexer.WRAPPER = 516;
FlinkSQLLexer.YEARS = 517;
FlinkSQLLexer.ZONE = 518;
FlinkSQLLexer.ANALYZE = 519;
FlinkSQLLexer.BYTES = 520;
FlinkSQLLexer.CATALOGS = 521;
FlinkSQLLexer.COMMENT = 522;
FlinkSQLLexer.COMPUTE = 523;
FlinkSQLLexer.COLUMNS = 524;
FlinkSQLLexer.CUMULATE = 525;
FlinkSQLLexer.CURVE = 526;
FlinkSQLLexer.DATABASES = 527;
FlinkSQLLexer.ENFORCED = 528;
FlinkSQLLexer.FUNCTIONS = 529;
FlinkSQLLexer.GEOMETRYCOLLECTION = 530;
FlinkSQLLexer.IF = 531;
FlinkSQLLexer.JAR = 532;
FlinkSQLLexer.LINESTRING = 533;
FlinkSQLLexer.LOAD = 534;
FlinkSQLLexer.METADATA = 535;
FlinkSQLLexer.MODULES = 536;
FlinkSQLLexer.MULTICURVE = 537;
FlinkSQLLexer.MULTILINESTRING = 538;
FlinkSQLLexer.MULTIPOINT = 539;
FlinkSQLLexer.MULTIPOLYGON = 540;
FlinkSQLLexer.MULTISURFACE = 541;
FlinkSQLLexer.OVERWRITE = 542;
FlinkSQLLexer.OVERWRITING = 543;
FlinkSQLLexer.PARTITIONED = 544;
FlinkSQLLexer.PARTITIONS = 545;
FlinkSQLLexer.PLAN_ADVICE = 546;
FlinkSQLLexer.POINT = 547;
FlinkSQLLexer.POLYHEDRALSURFACE = 548;
FlinkSQLLexer.POLYGON = 549;
FlinkSQLLexer.PYTHON = 550;
FlinkSQLLexer.RAW = 551;
FlinkSQLLexer.RENAME = 552;
FlinkSQLLexer.SCALA = 553;
FlinkSQLLexer.SLIDE = 554;
FlinkSQLLexer.STATISTICS = 555;
FlinkSQLLexer.STEP = 556;
FlinkSQLLexer.STRING = 557;
FlinkSQLLexer.SUBSTR = 558;
FlinkSQLLexer.SURFACE = 559;
FlinkSQLLexer.TABLES = 560;
FlinkSQLLexer.TIMECOL = 561;
FlinkSQLLexer.TIMESTAMP_LTZ = 562;
FlinkSQLLexer.TRY_CAST = 563;
FlinkSQLLexer.UNLOAD = 564;
FlinkSQLLexer.USE = 565;
FlinkSQLLexer.VIEWS = 566;
FlinkSQLLexer.VIRTUAL = 567;
FlinkSQLLexer.WATERMARK = 568;
FlinkSQLLexer.WATERMARKS = 569;
FlinkSQLLexer.REAL_LITERAL = 570;
FlinkSQLLexer.STRING_LITERAL = 571;
FlinkSQLLexer.IDENTIFIER = 572;
FlinkSQLLexer.channelNames = [
"DEFAULT_TOKEN_CHANNEL", "HIDDEN",
];
FlinkSQLLexer.modeNames = [
"DEFAULT_MODE",
];
FlinkSQLLexer.ruleNames = [
"SPACE", "BLOCK_COMMENT", "LINE_COMMENT", "L_HINT", "R_HINT", "L_BRACE_SLASH",
"R_BRACE_SLASH", "STAR_QUESTION", "PLUS_QUESTION", "QUESTION_QUESTION",
"DOUBLE_VERTICAL_BAR", "COMPOUND_ARROW", "DOT", "COLON", "COMMA", "SEMICOLON",
"VERTICAL_BAR", "DOLLAR_SIGN", "CARET", "QUESTION", "PLUS", "SLASH", "ASTERISK",
"DIVIDE", "PERCENTAGE", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACK_QUOTE",
"UNDERLINE", "L_PARENTHESIS", "R_PARENTHESIS", "L_BRACKET", "R_BRACKET",
"L_BRACE", "R_BRACE", "EQUAL", "DOUBLE_EQUAL", "NOT_EQUAL", "IS_EQUAL_NULL",
"UNEQUAL", "GREATER", "GREATER_OR_EQUAL", "LESS", "LESS_OR_EQUAL", "ABS",
"ALL", "ALLOCATE", "ALLOW", "ALTER", "AND", "K_ANY", "ARE", "ARGS", "ARRAY",
"ARRAY_MAX_CARDINALITY", "AS", "ASENSITIVE", "ASYMMETRIC", "AT", "ATOMIC",
"AUTHORIZATION", "AUTO", "AVG", "BEGIN", "BEGIN_FRAME", "BEGIN_PARTITION",
"BETWEEN", "BIGINT", "BINARY", "BIT", "BLOB", "BOOLEAN", "BOTH", "BUCKETS",
"BY", "CALL", "CALLED", "CARDINALITY", "CASCADED", "CASE", "CAST", "CEIL",
"CEILING", "CHANGELOG_MODE", "CHAR", "CHARACTER", "CHARACTER_LENGTH",
"CHAR_LENGTH", "CHECK", "CLASSIFIER", "CLOB", "CLOSE", "COALESCE", "COLLATE",
"COLLECT", "COLUMN", "COMMIT", "CONDITION", "CONFIG", "CONNECT", "CONSTRAINT",
"CONTAINS", "CONTINUOUS", "CONVERT", "CORR", "CORRESPONDING", "COUNT",
"COVAR_POP", "COVAR_SAMP", "CREATE", "CROSS", "CUBE", "CUME_DIST", "CURRENT",
"CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP",
"CURRENT_PATH", "CURRENT_ROLE", "CURRENT_ROW", "CURRENT_SCHEMA", "CURRENT_TIME",
"CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER",
"CURSOR", "CYCLE", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE",
"DEFAULT", "DEFINE", "DELETE", "DENSE_RANK", "DEREF", "DESCRIBE", "DESCRIPTOR",
"DETERMINISTIC", "DISALLOW", "DISCONNECT", "DISTINCT", "DISTRIBUTED",
"DISTRIBUTION", "DOUBLE", "DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE",
"EMPTY", "END", "END_EXEC", "END_FRAME", "END_PARTITION", "EQUALS", "ESCAPE",
"ESTIMATED_COST", "EVERY", "EXCEPT", "EXEC", "EXECUTE", "EXISTS", "EXP",
"EXPLAIN", "EXTEND", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FILTER",
"FIRST_VALUE", "FLOAT", "FLOOR", "FOR", "FOREIGN", "FRAME_ROW", "FREE",
"FRESHNESS", "FROM", "FULL", "FUNCTION", "FUSION", "GAP", "GET", "GLOB",
"GLOBAL", "GRANT", "GROUP", "GROUPING", "GROUPS", "HAVING", "HOLD", "HOUR",
"IDENTITY", "IMPORT", "IN", "INDICATOR", "INITIAL", "INNER", "INOUT",
"INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTERSECTION",
"INTERVAL", "INTO", "IS", "JOIN", "JSON_ARRAY", "JSON_ARRAYAGG", "JSON_EXECUTION_PLAN",
"JSON_EXISTS", "JSON_OBJECT", "JSON_OBJECTAGG", "JSON_QUERY", "JSON_STRING",
"JSON_VALUE", "LAG", "LANGUAGE", "LARGE", "LAST_VALUE", "LATERAL", "LEAD",
"LEADING", "LEFT", "LIKE", "LIKE_REGEX", "LIMIT", "LN", "LOCAL", "LOCALTIME",
"LOCALTIMESTAMP", "LOWER", "MATCH", "MATCHES", "MATCH_NUMBER", "MATCH_RECOGNIZE",
"MATERIALIZED", "MAX", "MEASURES", "MEMBER", "MERGE", "METHOD", "MIN",
"MINUS", "MINUTE", "ML_EVALUATE", "ML_PREDICT", "MOD", "MODEL", "MODELS",
"MODIFIES", "MODULE", "MONTH", "MULTISET", "NATIONAL", "NATURAL", "NCHAR",
"NCLOB", "NEW", "NEXT", "NO", "NONE", "NORMALIZE", "NOT", "NTH_VALUE",
"NTILE", "NULL", "NULLIF", "NUMERIC", "OCCURRENCES_REGEX", "OCTET_LENGTH",
"OF", "OFFSET", "OLD", "OMIT", "ON", "ONE", "ONLY", "OPEN", "OPTIMIZE",
"OR", "ORDER", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", "OVERLAY",
"PARAMETER", "PARTITION", "PATTERN", "PER", "PERCENT", "PERCENTILE_CONT",
"PERCENTILE_DISC", "PERCENT_RANK", "PERIOD", "PERMUTE", "PORTION", "POSITION",
"POSITION_REGEX", "POWER", "PRECEDES", "PRECISION", "PREPARE", "PREV",
"PRIMARY", "PROCEDURE", "RANGE", "RANK", "READS", "REAL", "RECURSIVE",
"REF", "REFERENCES", "REFERENCING", "REFRESH", "REFRESH_MODE", "REGR_AVGX",
"REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE",
"REGR_SXX", "REGR_SXY", "REGR_SYY", "RESET", "RESULT", "RESUME", "RETURN",
"RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "ROW_NUMBER",
"RUNNING", "SAVEPOINT", "SCOPE", "SCROLL", "SEARCH", "SECOND", "SEEK",
"SELECT", "SENSITIVE", "SESSION_USER", "SET", "SHOW", "SIMILAR", "SKIP_W",
"SMALLINT", "SOME", "SPECIFIC", "SPECIFICTYPE", "SQL", "SQLEXCEPTION",
"SQLSTATE", "SQLWARNING", "SQRT", "START", "STATIC", "STDDEV_POP", "STDDEV_SAMP",
"STREAM", "SUBMULTISET", "SUBSET", "SUBSTRING", "SUBSTRING_REGEX", "SUCCEEDS",
"SUM", "SUSPEND", "SYMMETRIC", "SYSTEM", "SYSTEM_TIME", "SYSTEM_USER",
"TABLE", "TABLESAMPLE", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR",
"TIMEZONE_MINUTE", "TINYINT", "TO", "TRAILING", "TRANSLATE", "TRANSLATE_REGEX",
"TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRIM_ARRRAY", "TRUE", "TRUNCATE",
"UESCAPE", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UPDATE", "UPPER",
"UPSERT", "USER", "USING", "VALUE", "VALUES", "VALUE_OF", "VARBINARY",
"VARCHAR", "VARYING", "VAR_POP", "VAR_SAMP", "VERSIONING", "WHEN", "WHENEVER",
"WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", "WITHOUT", "YEAR",
"ABSENT", "ACTION", "ADD", "AFTER", "APPLY", "ASC", "CASCADE", "CATALOG",
"CENTURY", "CONDITIONAL", "CONSTRAINTS", "DATA", "DATABASE", "DAYS", "DECADE",
"DESC", "DOW", "DOY", "EPOCH", "ERROR", "EXCLUDING", "FIRST", "FORMAT",
"FRAC_SECOND", "GENERATED", "GEOMETRY", "GO", "HASH", "HOP", "HOURS",
"IGNORE", "INCLUDING", "ISODOW", "ISOYEAR", "JAVA", "JSON", "KEY", "LAST",
"MAP", "MICROSECOND", "MILLENNIUM", "MILLISECOND", "MINUTES", "MONTHS",
"NANOSECOND", "NULLS", "OBJECT", "OPTIONS", "ORDINALITY", "PARTIAL", "PAST",
"PIVOT", "PLACING", "PLAN", "PLI", "PRECEDING", "QUARTER", "REPLACE",
"RESPECT", "RESTRICT", "RETURNING", "SCALAR", "SECONDS", "SESSION", "SETS",
"SIZE", "SQL_TSI_DAY", "SQL_TSI_FRAC_SECOND", "SQL_TSI_HOUR", "SQL_TSI_MICROSECOND",
"SQL_TSI_MINUTE", "SQL_TSI_MONTH", "SQL_TSI_QUARTER", "SQL_TSI_SECOND",
"SQL_TSI_WEEK", "SQL_TSI_YEAR", "STATEMENT", "TEMPORARY", "TUMBLE", "UNCONDITIONAL",
"UNPIVOT", "VIEW", "WEEK", "WRAPPER", "YEARS", "ZONE", "ANALYZE", "BYTES",
"CATALOGS", "COMMENT", "COMPUTE", "COLUMNS", "CUMULATE", "CURVE", "DATABASES",
"ENFORCED", "FUNCTIONS", "GEOMETRYCOLLECTION", "IF", "JAR", "LINESTRING",
"LOAD", "METADATA", "MODULES", "MULTICURVE", "MULTILINESTRING", "MULTIPOINT",
"MULTIPOLYGON", "MULTISURFACE", "OVERWRITE", "OVERWRITING", "PARTITIONED",
"PARTITIONS", "PLAN_ADVICE", "POINT", "POLYHEDRALSURFACE", "POLYGON",
"PYTHON", "RAW", "RENAME", "SCALA", "SLIDE", "STATISTICS", "STEP", "STRING",
"SUBSTR", "SURFACE", "TABLES", "TIMECOL", "TIMESTAMP_LTZ", "TRY_CAST",
"UNLOAD", "USE", "VIEWS", "VIRTUAL", "WATERMARK", "WATERMARKS", "REAL_LITERAL",
"STRING_LITERAL", "IDENTIFIER", "DIGIT", "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",
];
FlinkSQLLexer._LITERAL_NAMES = [
undefined, undefined, undefined, undefined, "'/*+'", "'*/'", "'{-'", "'-}'",
"'*?'", "'+?'", "'??'", "'||'", "'=>'", "'.'", undefined, undefined, "';'",
"'|'", "'$'", "'^'", "'?'", "'+'", "'-'", "'*'", "'/'", "'%'", "'''",
"'\"'", "'`'", "'_'", "'('", "')'", "'['", "']'", "'{'", "'}'", "'='",
"'=='", "'<>'", "'<=>'", "'!='", "'>'", "'>='", "'<'", "'<='",
];
FlinkSQLLexer._SYMBOLIC_NAMES = [
undefined, "SPACE", "BLOCK_COMMENT", "LINE_COMMENT", "L_HINT", "R_HINT",
"L_BRACE_SLASH", "R_BRACE_SLASH", "STAR_QUESTION", "PLUS_QUESTION", "QUESTION_QUESTION",
"DOUBLE_VERTICAL_BAR", "COMPOUND_ARROW", "DOT", "COLON", "COMMA", "SEMICOLON",
"VERTICAL_BAR", "DOLLAR_SIGN", "CARET", "QUESTION", "PLUS", "SLASH", "ASTERISK",
"DIVIDE", "PERCENTAGE", "SINGLE_QUOTE", "DOUBLE_QUOTE", "BACK_QUOTE",
"UNDERLINE", "L_PARENTHESIS", "R_PARENTHESIS", "L_BRACKET", "R_BRACKET",
"L_BRACE", "R_BRACE", "EQUAL", "DOUBLE_EQUAL", "NOT_EQUAL", "IS_EQUAL_NULL",
"UNEQUAL", "GREATER", "GREATER_OR_EQUAL", "LESS", "LESS_OR_EQUAL", "ABS",
"ALL", "ALLOCATE", "ALLOW", "ALTER", "AND", "K_ANY", "ARE", "ARGS", "ARRAY",
"ARRAY_MAX_CARDINALITY", "AS", "ASENSITIVE", "ASYMMETRIC", "AT", "ATOMIC",
"AUTHORIZATION", "AUTO", "AVG", "BEGIN", "BEGIN_FRAME", "BEGIN_PARTITION",
"BETWEEN", "BIGINT", "BINARY", "BIT", "BLOB", "BOOLEAN", "BOTH", "BUCKETS",
"BY", "CALL", "CALLED", "CARDINALITY", "CASCADED", "CASE", "CAST", "CEIL",
"CEILING", "CHANGELOG_MODE", "CHAR", "CHARACTER", "CHARACTER_LENGTH",
"CHAR_LENGTH", "CHECK", "CLASSIFIER", "CLOB", "CLOSE", "COALESCE", "COLLATE",
"COLLECT", "COLUMN", "COMMIT", "CONDITION", "CONFIG", "CONNECT", "CONSTRAINT",
"CONTAINS", "CONTINUOUS", "CONVERT", "CORR", "CORRESPONDING", "COUNT",
"COVAR_POP", "COVAR_SAMP", "CREATE", "CROSS", "CUBE", "CUME_DIST", "CURRENT",
"CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_DEFAULT_TRANSFORM_GROUP",
"CURRENT_PATH", "CURRENT_ROLE", "CURRENT_ROW", "CURRENT_SCHEMA", "CURRENT_TIME",
"CURRENT_TIMESTAMP", "CURRENT_TRANSFORM_GROUP_FOR_TYPE", "CURRENT_USER",
"CURSOR", "CYCLE", "DATE", "DAY", "DEALLOCATE", "DEC", "DECIMAL", "DECLARE",
"DEFAULT", "DEFINE", "DELETE", "DENSE_RANK", "DEREF", "DESCRIBE", "DESCRIPTOR",
"DETERMINISTIC", "DISALLOW", "DISCONNECT", "DISTINCT", "DISTRIBUTED",
"DISTRIBUTION", "DOUBLE", "DROP", "DYNAMIC", "EACH", "ELEMENT", "ELSE",
"EMPTY", "END", "END_EXEC", "END_FRAME", "END_PARTITION", "EQUALS", "ESCAPE",
"ESTIMATED_COST", "EVERY", "EXCEPT", "EXEC", "EXECUTE", "EXISTS", "EXP",
"EXPLAIN", "EXTEND", "EXTERNAL", "EXTRACT", "FALSE", "FETCH", "FILTER",
"FIRST_VALUE", "FLOAT", "FLOOR", "FOR", "FOREIGN", "FRAME_ROW", "FREE",
"FRESHNESS", "FROM", "FULL", "FUNCTION", "FUSION", "GAP", "GET", "GLOB",
"GLOBAL", "GRANT", "GROUP", "GROUPING", "GROUPS", "HAVING", "HOLD", "HOUR",
"IDENTITY", "IMPORT", "IN", "INDICATOR", "INITIAL", "INNER", "INOUT",
"INPUT", "INSENSITIVE", "INSERT", "INT", "INTEGER", "INTERSECT", "INTERSECTION",
"INTERVAL", "INTO", "IS", "JOIN", "JSON_ARRAY", "JSON_ARRAYAGG", "JSON_EXECUTION_PLAN",
"JSON_EXISTS", "JSON_OBJECT", "JSON_OBJECTAGG", "JSON_QUERY", "JSON_STRING",
"JSON_VALUE", "LAG", "LANGUAGE", "LARGE", "LAST_VALUE", "LATERAL", "LEAD",
"LEADING", "LEFT", "LIKE", "LIKE_REGEX", "LIMIT", "LN", "LOCAL", "LOCALTIME",
"LOCALTIMESTAMP", "LOWER", "MATCH", "MATCHES", "MATCH_NUMBER", "MATCH_RECOGNIZE",
"MATERIALIZED", "MAX", "MEASURES", "MEMBER", "MERGE", "METHOD", "MIN",
"MINUS", "MINUTE", "ML_EVALUATE", "ML_PREDICT", "MOD", "MODEL", "MODELS",
"MODIFIES", "MODULE", "MONTH", "MULTISET", "NATIONAL", "NATURAL", "NCHAR",
"NCLOB", "NEW", "NEXT", "NO", "NONE", "NORMALIZE", "NOT", "NTH_VALUE",
"NTILE", "NULL", "NULLIF", "NUMERIC", "OCCURRENCES_REGEX", "OCTET_LENGTH",
"OF", "OFFSET", "OLD", "OMIT", "ON", "ONE", "ONLY", "OPEN", "OPTIMIZE",
"OR", "ORDER", "OUT", "OUTER", "OUTPUT", "OVER", "OVERLAPS", "OVERLAY",
"PARAMETER", "PARTITION", "PATTERN", "PER", "PERCENT", "PERCENTILE_CONT",
"PERCENTILE_DISC", "PERCENT_RANK", "PERIOD", "PERMUTE", "PORTION", "POSITION",
"POSITION_REGEX", "POWER", "PRECEDES", "PRECISION", "PREPARE", "PREV",
"PRIMARY", "PROCEDURE", "RANGE", "RANK", "READS", "REAL", "RECURSIVE",
"REF", "REFERENCES", "REFERENCING", "REFRESH", "REFRESH_MODE", "REGR_AVGX",
"REGR_AVGY", "REGR_COUNT", "REGR_INTERCEPT", "REGR_R2", "REGR_SLOPE",
"REGR_SXX", "REGR_SXY", "REGR_SYY", "RESET", "RESULT", "RESUME", "RETURN",
"RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "ROLLUP", "ROW", "ROWS", "ROW_NUMBER",
"RUNNING", "SAVEPOINT", "SCOPE", "SCROLL", "SEARCH", "SECOND", "SEEK",
"SELECT", "SENSITIVE", "SESSION_USER", "SET", "SHOW", "SIMILAR", "SKIP_W",
"SMALLINT", "SOME", "SPECIFIC", "SPECIFICTYPE", "SQL", "SQLEXCEPTION",
"SQLSTATE", "SQLWARNING", "SQRT", "START", "STATIC", "STDDEV_POP", "STDDEV_SAMP",
"STREAM", "SUBMULTISET", "SUBSET", "SUBSTRING", "SUBSTRING_REGEX", "SUCCEEDS",
"SUM", "SUSPEND", "SYMMETRIC", "SYSTEM", "SYSTEM_TIME", "SYSTEM_USER",
"TABLE", "TABLESAMPLE", "THEN", "TIME", "TIMESTAMP", "TIMEZONE_HOUR",
"TIMEZONE_MINUTE", "TINYINT", "TO", "TRAILING", "TRANSLATE", "TRANSLATE_REGEX",
"TRANSLATION", "TREAT", "TRIGGER", "TRIM", "TRIM_ARRRAY", "TRUE", "TRUNCATE",
"UESCAPE", "UNION", "UNIQUE", "UNKNOWN", "UNNEST", "UPDATE", "UPPER",
"UPSERT", "USER", "USING", "VALUE", "VALUES", "VALUE_OF", "VARBINARY",
"VARCHAR", "VARYING", "VAR_POP", "VAR_SAMP", "VERSIONING", "WHEN", "WHENEVER",
"WHERE", "WIDTH_BUCKET", "WINDOW", "WITH", "WITHIN", "WITHOUT", "YEAR",
"ABSENT", "ACTION", "ADD", "AFTER", "APPLY", "ASC", "CASCADE", "CATALOG",
"CENTURY", "CONDITIONAL", "CONSTRAINTS", "DATA", "DATABASE", "DAYS", "DECADE",
"DESC", "DOW", "DOY", "EPOCH", "ERROR", "EXCLUDING", "FIRST", "FORMAT",
"FRAC_SECOND", "GENERATED", "GEOMETRY", "GO", "HASH", "HOP", "HOURS",
"IGNORE", "INCLUDING", "ISODOW", "ISOYEAR", "JAVA", "JSON", "KEY", "LAST",
"MAP", "MICROSECOND", "MILLENNIUM", "MILLISECOND", "MINUTES", "MONTHS",
"NANOSECOND", "NULLS", "OBJECT", "OPTIONS", "ORDINALITY", "PARTIAL", "PAST",
"PIVOT", "PLACING", "PLAN", "PLI", "PRECEDING", "QUARTER", "REPLACE",
"RESPECT", "RESTRICT", "RETURNING", "SCALAR", "SECONDS", "SESSION", "SETS",
"SIZE", "SQL_TSI_DAY", "SQL_TSI_FRAC_SECOND", "SQL_TSI_HOUR", "SQL_TSI_MICROSECOND",
"SQL_TSI_MINUTE", "SQL_TSI_MONTH", "SQL_TSI_QUARTER", "SQL_TSI_SECOND",
"SQL_TSI_WEEK", "SQL_TSI_YEAR", "STATEMENT", "TEMPORARY", "TUMBLE", "UNCONDITIONAL",
"UNPIVOT", "VIEW", "WEEK", "WRAPPER", "YEARS", "ZONE", "ANALYZE", "BYTES",
"CATALOGS", "COMMENT", "COMPUTE", "COLUMNS", "CUMULATE", "CURVE", "DATABASES",
"ENFORCED", "FUNCTIONS", "GEOMETRYCOLLECTION", "IF", "JAR", "LINESTRING",
"LOAD", "METADATA", "MODULES", "MULTICURVE", "MULTILINESTRING", "MULTIPOINT",
"MULTIPOLYGON", "MULTISURFACE", "OVERWRITE", "OVERWRITING", "PARTITIONED",
"PARTITIONS", "PLAN_ADVICE", "POINT", "POLYHEDRALSURFACE", "POLYGON",
"PYTHON", "RAW", "RENAME", "SCALA", "SLIDE", "STATISTICS", "STEP", "STRING",
"SUBSTR", "SURFACE", "TABLES", "TIMECOL", "TIMESTAMP_LTZ", "TRY_CAST",
"UNLOAD", "USE", "VIEWS", "VIRTUAL", "WATERMARK", "WATERMARKS", "REAL_LITERAL",
"STRING_LITERAL", "IDENTIFIER",
];
FlinkSQLLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(FlinkSQLLexer._LITERAL_NAMES, FlinkSQLLexer._SYMBOLIC_NAMES, []);
FlinkSQLLexer._serializedATNSegments = 10;
FlinkSQLLexer._serializedATNSegment0 = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\u023E\u16BB\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\x04\u013A\t\u013A" +
"\x04\u013B\t\u013B\x04\u013C\t\u013C\x04\u013D\t\u013D\x04\u013E\t\u013E" +
"\x04\u013F\t\u013F\x04\u0140\t\u0140\x04\u0141\t\u0141\x04\u0142\t\u0142" +
"\x04\u0143\t\u0143\x04\u0144\t\u0144\x04\u0145\t\u0145\x04\u0146\t\u0146" +
"\x04\u0147\t\u0147\x04\u0148\t\u0148\x04\u0149\t\u0149\x04\u014A\t\u014A" +
"\x04\u014B\t\u014B\x04\u014C\t\u014C\x04\u014D\t\u014D\x04\u014E\t\u014E" +
"\x04\u014F\t\u014F\x04\u0150\t\u0150\x04\u0151\t\u0151\x04\u0152\t\u0152" +
"\x04\u0153\t\u0153\x04\u0154\t\u0154\x04\u0155\t\u0155\x04\u0156\t\u0156" +
"\x04\u0157\t\u0157\x04\u0158\t\u0158\x04\u0159\t\u0159\x04\u015A\t\u015A" +
"\x04\u015B\t\u015B\x04\u015C\t\u015C\x04\u015D\t\u015D\x04\u015E\t\u015E" +
"\x04\u015F\t\u015F\x04\u0160\t\u0160\x04\u0161\t\u0161\x04\u0162\t\u0162" +
"\x04\u0163\t\u0163\x04\u0164\t\u0164\x04\u0165\t\u0165\x04\u0166\t\u0166" +
"\x04\u0167\t\u0167\x04\u0168\t\u0168\x04\u0169\t\u0169\x04\u016A\t\u016A" +
"\x04\u016B\t\u016B\x04\u016C\t\u016C\x04\u016D\t\u016D\x04\u016E\t\u016E" +
"\x04\u016F\t\u016F\x04\u0170\t\u0170\x04\u0171\t\u0171\x04\u0172\t\u0172" +
"\x04\u0173\t\u0173\x04\u0174\t\u0174\x04\u0175\t\u0175\x04\u0176\t\u0176" +
"\x04\u0177\t\u0177\x04\u0178\t\u0178\x04\u0179\t\u0179\x04\u017A\t\u017A" +
"\x04\u017B\t\u017B\x04\u017C\t\u017C\x04\u017D\t\u017D\x04\u017E\t\u017E" +
"\x04\u017F\t\u017F\x04\u0180\t\u0180\x04\u0181\t\u0181\x04\u0182\t\u0182" +
"\x04\u0183\t\u0183\x04\u0184\t\u0184\x04\u0185\t\u0185\x04\u0186\t\u0186" +
"\x04\u0187\t\u0187\x04\u0188\t\u0188\x04\u0189\t\u0189\x04\u018A\t\u018A" +
"\x04\u018B\t\u018B\x04\u018C\t\u018C\x04\u018D\t\u018D\x04\u018E\t\u018E" +
"\x04\u018F\t\u018F\x04\u0190\t\u0190\x04\u0191\t\u0191\x04\u0192\t\u0192" +
"\x04\u0193\t\u0193\x04\u0194\t\u0194\x04\u0195\t\u0195\x04\u0196\t\u0196" +
"\x04\u0197\t\u0197\x04\u0198\t\u0198\x04\u0199\t\u0199\x04\u019A\t\u019A" +
"\x04\u019B\t\u019B\x04\u019C\t\u019C\x04\u019D\t\u019D\x04\u019E\t\u019E" +
"\x04\u019F\t\u019F\x04\u01A0\t\u01A0\x04\u01A1\t\u01A1\x04\u01A2\t\u01A2" +
"\x04\u01A3\t\u01A3\x04\u01A4\t\u01A4\x04\u01A5\t\u01A5\x04\u01A6\t\u01A6" +
"\x04\u01A7\t\u01A7\x04\u01A8\t\u01A8\x04\u01A9\t\u01A9\x04\u01AA\t\u01AA" +
"\x04\u01AB\t\u01AB\x04\u01AC\t\u01AC\x04\u01AD\t\u01AD\x04\u01AE\t\u01AE" +
"\x04\u01AF\t\u01AF\x04\u01B0\t\u01B0\x04\u01B1\t\u01B1\x04\u01B2\t\u01B2" +
"\x04\u01B3\t\u01B3\x04\u01B4\t\u01B4\x04\u01B5\t\u01B5\x04\u01B6\t\u01B6" +
"\x04\u01B7\t\u01B7\x04\u01B8\t\u01B8\x04\u01B9\t\u01B9\x04\u01BA\t\u01BA" +
"\x04\u01BB\t\u01BB\x04\u01BC\t\u01BC\x04\u01BD\t\u01BD\x04\u01BE\t\u01BE" +
"\x04\u01BF\t\u01BF\x04\u01C0\t\u01C0\x04\u01C1\t\u01C1\x04\u01C2\t\u01C2" +
"\x04\u01C3\t\u01C3\x04\u01C4\t\u01C4\x04\u01C5\t\u01C5\x04\u01C6\t\u01C6" +
"\x04\u01C7\t\u01C7\x04\u01C8\t\u01C8\x04\u01C9\t\u01C9\x04\u01CA\t\u01CA" +
"\x04\u01CB\t\u01CB\x04\u01CC\t\u01CC\x04\u01CD\t\u01CD\x04\u01CE\t\u01CE" +
"\x04\u01CF\t\u01CF\x04\u01D0\t\u01D0\x04\u01D1\t\u01D1\x04\u01D2\t\u01D2" +
"\x04\u01D3\t\u01D3\x04\u01D4\t\u01D4\x04\u01D5\t\u01D5\x04\u01D6\t\u01D6" +
"\x04\u01D7\t\u01D7\x04\u01D8\t\u01D8\x04\u01D9\t\u01D9\x04\u01DA\t\u01DA" +
"\x04\u01DB\t\u01DB\x04\u01DC\t\u01DC\x04\u01DD\t\u01DD\x04\u01DE\t\u01DE" +
"\x04\u01DF\t\u01DF\x04\u01E0\t\u01E0\x04\u01E1\t\u01E1\x04\u01E2\t\u01E2" +
"\x04\u01E3\t\u01E3\x04\u01E4\t\u01E4\x04\u01E5\t\u01E5\x04\u01E6\t\u01E6" +
"\x04\u01E7\t\u01E7\x04\u01E8\t\u01E8\x04\u01E9\t\u01E9\x04\u01EA\t\u01EA" +
"\x04\u01EB\t\u01EB\x04\u01EC\t\u01EC\x04\u01ED\t\u01ED\x04\u01EE\t\u01EE" +
"\x04\u01EF\t\u01EF\x04\u01F0\t\u01F0\x04\u01F1\t\u01F1\x04\u01F2\t\u01F2" +
"\x04\u01F3\t\u01F3\x04\u01F4\t\u01F4\x04\u01F5\t\u01F5\x04\u01F6\t\u01F6" +
"\x04\u01F7\t\u01F7\x04\u01F8\t\u01F8\x04\u01F9\t\u01F9\x04\u01FA\t\u01FA" +
"\x04\u01FB\t\u01FB\x04\u01FC\t\u01FC\x04\u01FD\t\u01FD\x04\u01FE\t\u01FE" +
"\x04\u01FF\t\u01FF\x04\u0200\t\u0200\x04\u0201\t\u0201\x04\u0202\t\u0202" +
"\x04\u0203\t\u0203\x04\u0204\t\u0204\x04\u0205\t\u0205\x04\u0206\t\u0206" +
"\x04\u0207\t\u0207\x04\u0208\t\u0208\x04\u0209\t\u0209\x04\u020A\t\u020A" +
"\x04\u020B\t\u020B\x04\u020C\t\u020C\x04\u020D\t\u020D\x04\u020E\t\u020E" +
"\x04\u020F\t\u020F\x04\u0210\t\u0210\x04\u0211\t\u0211\x04\u0212\t\u0212" +
"\x04\u0213\t\u0213\x04\u0214\t\u0214\x04\u0215\t\u0215\x04\u0216\t\u0216" +
"\x04\u0217\t\u0217\x04\u0218\t\u0218\x04\u0219\t\u0219\x04\u021A\t\u021A" +
"\x04\u021B\t\u021B\x04\u021C\t\u021C\x04\u021D\t\u021D\x04\u021E\t\u021E" +
"\x04\u021F\t\u021F\x04\u0220\t\u0220\x04\u0221\t\u0221\x04\u0222\t\u0222" +
"\x04\u0223\t\u0223\x04\u0224\t\u0224\x04\u0225\t\u0225\x04\u0226\t\u0226" +
"\x04\u0227\t\u0227\x04\u0228\t\u0228\x04\u0229\t\u0229\x04\u022A\t\u022A" +
"\x04\u022B\t\u022B\x04\u022C\t\u022C\x04\u022D\t\u022D\x04\u022E\t\u022E" +
"\x04\u022F\t\u022F\x04\u0230\t\u0230\x04\u0231\t\u0231\x04\u0232\t\u0232" +
"\x04\u0233\t\u0233\x04\u0234\t\u0234\x04\u0235\t\u0235\x04\u0236\t\u0236" +
"\x04\u0237\t\u0237\x04\u0238\t\u0238\x04\u0239\t\u0239\x04\u023A\t\u023A" +
"\x04\u023B\t\u023B\x04\u023C\t\u023C\x04\u023D\t\u023D\x04\u023E\t\u023E" +
"\x04\u023F\t\u023F\x04\u0240\t\u0240\x04\u0241\t\u0241\x04\u0242\t\u0242" +
"\x04\u0243\t\u0243\x04\u0244\t\u0244\x04\u0245\t\u0245\x04\u0246\t\u0246" +
"\x04\u0247\t\u0247\x04\u0248\t\u0248\x04\u0249\t\u0249\x04\u024A\t\u024A" +
"\x04\u024B\t\u024B\x04\u024C\t\u024C\x04\u024D\t\u024D\x04\u024E\t\u024E" +
"\x04\u024F\t\u024F\x04\u0250\t\u0250\x04\u0251\t\u0251\x04\u0252\t\u0252" +
"\x04\u0253\t\u0253\x04\u0254\t\u0254\x04\u0255\t\u0255\x04\u0256\t\u0256" +
"\x04\u0257\t\u0257\x04\u0258\t\u0258\x03\x02\x06\x02\u04B3\n\x02\r\x02" +
"\x0E\x02\u04B4\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" +
"\x07\x03\u04BE\n\x03\f\x03\x0E\x03\u04C1\v\x03\x03\x03\x03\x03\x03\x03" +
"\x03\x03\x03\x03\x03\x04\x03\x04\x03\x04\x03\x04\x05\x04\u04CC\n\x04\x03" +
"\x04\x07\x04\u04CF\n\x04\f\x04\x0E\x04\u04D2\v\x04\x03\x04\x03\x04\x03" +
"\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03" +
"\x07\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\v\x03\v" +
"\x03\v\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0F\x03" +
"\x0F\x03\x10\x03\x10\x03\x11\x03\x11\x03\x12\x03\x12\x03\x13\x03\x13\x03" +
"\x14\x03\x14\x03\x15\x03\x15\x03\x16\x03\x16\x03\x17\x03\x17\x03\x18\x03" +
"\x18\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03" +
"\x1D\x03\x1D\x03\x1E\x03\x1E\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/\x030\x030\x03" +
"0\x030\x030\x030\x030\x030\x030\x031\x031\x031\x031\x031\x031\x032\x03" +
"2\x032\x032\x032\x032\x033\x033\x033\x033\x034\x034\x034\x034\x035\x03" +
"5\x035\x035\x036\x036\x036\x036\x036\x037\x037\x037\x037\x037\x037\x03" +
"8\x038\x038\x038\x038\x038\x038\x038\x038\x038\x038\x038\x038\x038\x03" +
"8\x038\x038\x038\x038\x038\x038\x038\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@\x03A\x03A\x03A\x03A\x03" +
"A\x03A\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03B\x03" +
"C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03C\x03" +
"C\x03C\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03D\x03E\x03E\x03E\x03E\x03" +
"E\x03E\x03E\x03F\x03F\x03F\x03F\x03F\x03F\x03F\x03G\x03G\x03G\x03G\x03" +
"H\x03H\x03H\x03H\x03H\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03I\x03J\x03" +
"J\x03J\x03J\x03J\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03K\x03L\x03L\x03" +
"L\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x03N\x03N\x03N\x03N\x03N\x03O\x03" +
"O\x03O\x03O\x03O\x03O\x03O\x03O\x03O\x03O\x03O\x03O\x03P\x03P\x03P\x03" +
"P\x03P\x03P\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03" +
"R\x03R\x03S\x03S\x03S\x03S\x03S\x03T\x03T\x03T\x03T\x03T\x03T\x03T\x03" +
"T\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03U\x03" +
"U\x03U\x03V\x03V\x03V\x03V\x03V\x03W\x03W\x03W\x03W\x03W\x03W\x03W\x03" +
"W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03" +
"X\x03X\x03X\x03X\x03X\x03X\x03Y\x03Y\x03Y\x03Y\x03Y\x03Y\x03Y\x03Y\x03" +
"Y\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_\x03_\x03_\x03`\x03`\x03`\x03`\x03`\x03`\x03" +
"`\x03`\x03a\x03a\x03a\x03a\x03a\x03a\x03a\x03b\x03b\x03b\x03b\x03b\x03" +
"b\x03b\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03c\x03d\x03d\x03" +
"d\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03e\x03f\x03" +
"f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03" +
"g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03h\x03" +
"h\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x03i\x03j\x03j\x03j\x03j\x03j\x03" +
"k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03k\x03" +
"l\x03l\x03l\x03l\x03l\x03l\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03m\x03" +
"m\x03m\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03n\x03o\x03" +
"o\x03o\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03p\x03p\x03p\x03q\x03q\x03" +
"q\x03q\x03q\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03r\x03s\x03" +
"s\x03s\x03s\x03s\x03s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03" +
"t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03" +
"u\x03u\x03u\x03u\x03u\x03u\x03u\x03u\x03v\x03v\x03v\x03v\x03v\x03v\x03" +
"v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03" +
"v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03v\x03w\x03w\x03" +
"w\x03w\x03w\x03w\x03w\x03w\x03w\x03w\x03w\x03w\x03w\x03x\x03x\x03x\x03" +
"x\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03x\x03y\x03y\x03y\x03y\x03" +
"y\x03y\x03y\x03y\x03y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03z\x03z\x03" +
"z\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}\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\x80" +
"\x03\x80\x03\x80\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x81\x03\x81" +
"\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03\x83\x03\x83\x03\x83" +
"\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x83\x03\x84\x03\x84" +
"\x03\x84\x03\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85\x03\x85" +
"\x03\x85\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\x03\x86\